Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-cdk/aws-autoscaling

Package Overview
Dependencies
Maintainers
4
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-autoscaling - npm Package Compare versions

Comparing version 0.14.1 to 0.15.0

test/example.images.lit.d.ts

10

lib/auto-scaling-group.js

@@ -34,3 +34,3 @@ "use strict";

});
this.connections = new ec2.Connections({ securityGroup: this.securityGroup });
this.connections = new ec2.Connections({ securityGroups: [this.securityGroup] });
this.securityGroups.push(this.securityGroup);

@@ -58,5 +58,5 @@ this.tags = new TagManager(this, { initialTags: props.tags });

launchConfig.addDependency(this.role);
const minSize = props.minSize || 1;
const maxSize = props.maxSize || 1;
const desiredCapacity = props.desiredCapacity || 1;
const minSize = props.minSize !== undefined ? props.minSize : 1;
const maxSize = props.maxSize !== undefined ? props.maxSize : 1;
const desiredCapacity = props.desiredCapacity !== undefined ? props.desiredCapacity : 1;
if (desiredCapacity < minSize || desiredCapacity > maxSize) {

@@ -272,2 +272,2 @@ throw new Error(`Should have minSize (${minSize}) <= desiredCapacity (${desiredCapacity}) <= maxSize (${maxSize})`);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zY2FsaW5nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXV0by1zY2FsaW5nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLDZEQUE4RDtBQUM5RCx3Q0FBeUM7QUFFekMsb0NBQXFDO0FBRXJDLG1FQUF5RDtBQUV6RDs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFXLE1BQU0sQ0FBQztBQThIaEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUE2QmpELFlBQVksTUFBcUIsRUFBRSxJQUFZLEVBQUUsS0FBNEI7UUFDM0UsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQVJMLGtCQUFhLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUdwQyxtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFDNUMsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBSzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUN4RSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssS0FBSztTQUNuRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUM7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QkFBaUIsRUFBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE9BQWU7SUFDeEMsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBRXpCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtRQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxJQUFJLENBQUM7S0FDakI7SUFDRCxJQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUU7UUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksRUFBRSxDQUFDO0tBQ2Y7SUFDRCxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUU7UUFDZixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUN6QjtJQUVELE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsQ0FBVTtJQUNwQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQUU7SUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVjMiA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1lYzInKTtcbmltcG9ydCBlbGIgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmcnKTtcbmltcG9ydCBlbGJ2MiA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJyk7XG5pbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IHNucyA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1zbnMnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcblxuaW1wb3J0IHsgY2xvdWRmb3JtYXRpb24gfSBmcm9tICcuL2F1dG9zY2FsaW5nLmdlbmVyYXRlZCc7XG5cbi8qKlxuICogTmFtZSB0YWcgY29uc3RhbnRcbiAqL1xuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9ICdOYW1lJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgRmxlZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvU2NhbGluZ0dyb3VwUHJvcHMge1xuICAvKipcbiAgICogVHlwZSBvZiBpbnN0YW5jZSB0byBsYXVuY2hcbiAgICovXG4gIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZTtcblxuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGluIHRoZSBmbGVldFxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBtaW5TaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgaW4gdGhlIGZsZWV0XG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgYW1vdW50IG9mIGluc3RhbmNlcyBpbiB0aGUgZmxlZXRcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZGVzaXJlZENhcGFjaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIFNTSCBrZXlwYWlyIHRvIGdyYW50IGFjY2VzcyB0byBpbnN0YW5jZXNcbiAgICogQGRlZmF1bHQgTm8gU1NIIGFjY2VzcyB3aWxsIGJlIHBvc3NpYmxlXG4gICAqL1xuICBrZXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBTUkgdG8gbGF1bmNoXG4gICAqL1xuICBtYWNoaW5lSW1hZ2U6IGVjMi5JTWFjaGluZUltYWdlU291cmNlO1xuXG4gIC8qKlxuICAgKiBWUEMgdG8gbGF1bmNoIHRoZXNlIGluc3RhbmNlcyBpbi5cbiAgICovXG4gIHZwYzogZWMyLlZwY05ldHdvcmtSZWY7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIGluc3RhbmNlcyB3aXRoaW4gdGhlIFZQQ1xuICAgKi9cbiAgdnBjUGxhY2VtZW50PzogZWMyLlZwY1BsYWNlbWVudFN0cmF0ZWd5O1xuXG4gIC8qKlxuICAgKiBTTlMgdG9waWMgdG8gc2VuZCBub3RpZmljYXRpb25zIGFib3V0IGZsZWV0IGNoYW5nZXNcbiAgICogQGRlZmF1bHQgTm8gZmxlZXQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzZW50LlxuICAgKi9cbiAgbm90aWZpY2F0aW9uc1RvcGljPzogc25zLlRvcGljUmVmO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZXMgY2FuIGluaXRpYXRlIGNvbm5lY3Rpb25zIHRvIGFueXdoZXJlIGJ5IGRlZmF1bHRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dBbGxPdXRib3VuZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoYXQgdG8gZG8gd2hlbiBhbiBBdXRvU2NhbGluZ0dyb3VwJ3MgaW5zdGFuY2UgY29uZmlndXJhdGlvbiBpcyBjaGFuZ2VkXG4gICAqXG4gICAqIFRoaXMgaXMgYXBwbGllZCB3aGVuIGFueSBvZiB0aGUgc2V0dGluZ3Mgb24gdGhlIEFTRyBhcmUgY2hhbmdlZCB0aGF0XG4gICAqIGFmZmVjdCBob3cgdGhlIGluc3RhbmNlcyBzaG91bGQgYmUgY3JlYXRlZCAoVlBDLCBpbnN0YW5jZSB0eXBlLCBzdGFydHVwXG4gICAqIHNjcmlwdHMsIGV0Yy4pLiBJdCBpbmRpY2F0ZXMgaG93IHRoZSBleGlzdGluZyBpbnN0YW5jZXMgc2hvdWxkIGJlXG4gICAqIHJlcGxhY2VkIHdpdGggbmV3IGluc3RhbmNlcyBtYXRjaGluZyB0aGUgbmV3IGNvbmZpZy4gQnkgZGVmYXVsdCwgbm90aGluZ1xuICAgKiBpcyBkb25lIGFuZCBvbmx5IG5ldyBpbnN0YW5jZXMgYXJlIGxhdW5jaGVkIHdpdGggdGhlIG5ldyBjb25maWcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFVwZGF0ZVR5cGUuTm9uZVxuICAgKi9cbiAgdXBkYXRlVHlwZT86IFVwZGF0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHJvbGxpbmcgdXBkYXRlc1xuICAgKlxuICAgKiBPbmx5IHVzZWQgaWYgdXBkYXRlVHlwZSA9PSBVcGRhdGVUeXBlLlJvbGxpbmdVcGRhdGUuXG4gICAqL1xuICByb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbj86IFJvbGxpbmdVcGRhdGVDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciByZXBsYWNpbmcgdXBkYXRlcy5cbiAgICpcbiAgICogT25seSB1c2VkIGlmIHVwZGF0ZVR5cGUgPT0gVXBkYXRlVHlwZS5SZXBsYWNpbmdVcGRhdGUuIFNwZWNpZmllcyBob3dcbiAgICogbWFueSBpbnN0YW5jZXMgbXVzdCBzaWduYWwgc3VjY2VzcyBmb3IgdGhlIHVwZGF0ZSB0byBzdWNjZWVkLlxuICAgKi9cbiAgcmVwbGFjaW5nVXBkYXRlTWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBBU0cgaGFzIHNjaGVkdWxlZCBhY3Rpb25zLCBkb24ndCByZXNldCB1bmNoYW5nZWQgZ3JvdXAgc2l6ZXNcbiAgICpcbiAgICogT25seSB1c2VkIGlmIHRoZSBBU0cgaGFzIHNjaGVkdWxlZCBhY3Rpb25zICh3aGljaCBtYXkgc2NhbGUgeW91ciBBU0cgdXBcbiAgICogb3IgZG93biByZWdhcmRsZXNzIG9mIGNkayBkZXBsb3ltZW50cykuIElmIHRydWUsIHRoZSBzaXplIG9mIHRoZSBncm91cFxuICAgKiB3aWxsIG9ubHkgYmUgcmVzZXQgaWYgaXQgaGFzIGJlZW4gY2hhbmdlZCBpbiB0aGUgQ0RLIGFwcC4gSWYgZmFsc2UsIHRoZVxuICAgKiBzaXplcyB3aWxsIGFsd2F5cyBiZSBjaGFuZ2VkIGJhY2sgdG8gd2hhdCB0aGV5IHdlcmUgaW4gdGhlIENESyBhcHBcbiAgICogb24gZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaWdub3JlVW5tb2RpZmllZFNpemVQcm9wZXJ0aWVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgUmVzb3VyY2VTaWduYWwgY2FsbHMgQ2xvdWRGb3JtYXRpb24gZXhwZWN0cyBiZWZvcmUgdGhlIHJlc291cmNlIGlzIGNvbnNpZGVyZWQgY3JlYXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZXNvdXJjZVNpZ25hbENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdG8gd2FpdCBmb3IgdGhlIHJlc291cmNlU2lnbmFsQ291bnRcbiAgICpcbiAgICogVGhlIG1heGltdW0gdmFsdWUgaXMgNDMyMDAgKDEyIGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwICg1IG1pbnV0ZXMpXG4gICAqL1xuICByZXNvdXJjZVNpZ25hbFRpbWVvdXRTZWM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVzb3VyY2UgdGFncyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgQVNHLlxuICAgKi9cbiAgdGFncz86IGNkay5UYWdzO1xufVxuXG4vKipcbiAqIEEgRmxlZXQgcmVwcmVzZW50cyBhIG1hbmFnZWQgc2V0IG9mIEVDMiBpbnN0YW5jZXNcbiAqXG4gKiBUaGUgRmxlZXQgbW9kZWxzIGEgbnVtYmVyIG9mIEF1dG9TY2FsaW5nR3JvdXBzLCBhIGxhdW5jaCBjb25maWd1cmF0aW9uLCBhXG4gKiBzZWN1cml0eSBncm91cCBhbmQgYW4gaW5zdGFuY2Ugcm9sZS5cbiAqXG4gKiBJdCBhbGxvd3MgYWRkaW5nIGFyYml0cmFyeSBjb21tYW5kcyB0byB0aGUgc3RhcnR1cCBzY3JpcHRzIG9mIHRoZSBpbnN0YW5jZXNcbiAqIGluIHRoZSBmbGVldC5cbiAqXG4gKiBUaGUgQVNHIHNwYW5zIGFsbCBhdmFpbGFiaWxpdHkgem9uZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRvU2NhbGluZ0dyb3VwIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCBpbXBsZW1lbnRzIGNkay5JVGFnZ2FibGUsIGVsYi5JTG9hZEJhbGFuY2VyVGFyZ2V0LCBlYzIuSUNvbm5lY3RhYmxlLFxuICBlbGJ2Mi5JQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJUYXJnZXQsIGVsYnYyLklOZXR3b3JrTG9hZEJhbGFuY2VyVGFyZ2V0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIE9TIGluc3RhbmNlcyBvZiB0aGlzIGZsZWV0IGFyZSBydW5uaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9zVHlwZTogZWMyLk9wZXJhdGluZ1N5c3RlbVR5cGU7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBzcGVjaWZ5IHNlY3VyaXR5IGdyb3VwIGNvbm5lY3Rpb25zIGZvciBpbnN0YW5jZXMgb2YgdGhpcyBmbGVldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBpbnN0YW5jZXMgb2YgdGhpcyBmbGVldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uUm9sZTtcblxuICAvKipcbiAgICogTWFuYWdlIHRhZ3MgZm9yIHRoaXMgY29uc3RydWN0IGFuZCBjaGlsZHJlblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhZ3M6IGNkay5UYWdNYW5hZ2VyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckRhdGFMaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0b1NjYWxpbmdHcm91cDogY2xvdWRmb3JtYXRpb24uQXV0b1NjYWxpbmdHcm91cFJlc291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5TZWN1cml0eUdyb3VwUmVmO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzOiBlYzIuU2VjdXJpdHlHcm91cFJlZltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZEJhbGFuY2VyTmFtZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0R3JvdXBBcm5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogQXV0b1NjYWxpbmdHcm91cFByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBuYW1lKTtcblxuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnSW5zdGFuY2VTZWN1cml0eUdyb3VwJywge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBwcm9wcy5hbGxvd0FsbE91dGJvdW5kICE9PSBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHsgc2VjdXJpdHlHcm91cDogdGhpcy5zZWN1cml0eUdyb3VwIH0pO1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cHMucHVzaCh0aGlzLnNlY3VyaXR5R3JvdXApO1xuICAgIHRoaXMudGFncyA9IG5ldyBUYWdNYW5hZ2VyKHRoaXMsIHtpbml0aWFsVGFnczogcHJvcHMudGFnc30pO1xuICAgIHRoaXMudGFncy5zZXRUYWcoTkFNRV9UQUcsIHRoaXMucGF0aCwgeyBvdmVyd3JpdGU6IGZhbHNlIH0pO1xuXG4gICAgdGhpcy5yb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdJbnN0YW5jZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWMyLmFtYXpvbmF3cy5jb20nKVxuICAgIH0pO1xuXG4gICAgY29uc3QgaWFtUHJvZmlsZSA9IG5ldyBpYW0uY2xvdWRmb3JtYXRpb24uSW5zdGFuY2VQcm9maWxlUmVzb3VyY2UodGhpcywgJ0luc3RhbmNlUHJvZmlsZScsIHtcbiAgICAgIHJvbGVzOiBbIHRoaXMucm9sZS5yb2xlTmFtZSBdXG4gICAgfSk7XG5cbiAgICAvLyB1c2UgZGVsYXllZCBldmFsdWF0aW9uXG4gICAgY29uc3QgbWFjaGluZUltYWdlID0gcHJvcHMubWFjaGluZUltYWdlLmdldEltYWdlKHRoaXMpO1xuICAgIGNvbnN0IHVzZXJEYXRhVG9rZW4gPSBuZXcgY2RrLlRva2VuKCgpID0+IG5ldyBjZGsuRm5CYXNlNjQoKG1hY2hpbmVJbWFnZS5vcy5jcmVhdGVVc2VyRGF0YSh0aGlzLnVzZXJEYXRhTGluZXMpKSkpO1xuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBzVG9rZW4gPSBuZXcgY2RrLlRva2VuKCgpID0+IHRoaXMuc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCkpO1xuXG4gICAgY29uc3QgbGF1bmNoQ29uZmlnID0gbmV3IGNsb3VkZm9ybWF0aW9uLkxhdW5jaENvbmZpZ3VyYXRpb25SZXNvdXJjZSh0aGlzLCAnTGF1bmNoQ29uZmlnJywge1xuICAgICAgaW1hZ2VJZDogbWFjaGluZUltYWdlLmltYWdlSWQsXG4gICAgICBrZXlOYW1lOiBwcm9wcy5rZXlOYW1lLFxuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKSxcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBzZWN1cml0eUdyb3Vwc1Rva2VuLFxuICAgICAgaWFtSW5zdGFuY2VQcm9maWxlOiBpYW1Qcm9maWxlLnJlZixcbiAgICAgIHVzZXJEYXRhOiB1c2VyRGF0YVRva2VuXG4gICAgfSk7XG5cbiAgICBsYXVuY2hDb25maWcuYWRkRGVwZW5kZW5jeSh0aGlzLnJvbGUpO1xuXG4gICAgY29uc3QgbWluU2l6ZSA9IHByb3BzLm1pblNpemUgfHwgMTtcbiAgICBjb25zdCBtYXhTaXplID0gcHJvcHMubWF4U2l6ZSB8fCAxO1xuICAgIGNvbnN0IGRlc2lyZWRDYXBhY2l0eSA9IHByb3BzLmRlc2lyZWRDYXBhY2l0eSB8fCAxO1xuXG4gICAgaWYgKGRlc2lyZWRDYXBhY2l0eSA8IG1pblNpemUgfHwgZGVzaXJlZENhcGFjaXR5ID4gbWF4U2l6ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTaG91bGQgaGF2ZSBtaW5TaXplICgke21pblNpemV9KSA8PSBkZXNpcmVkQ2FwYWNpdHkgKCR7ZGVzaXJlZENhcGFjaXR5fSkgPD0gbWF4U2l6ZSAoJHttYXhTaXplfSlgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc2dQcm9wczogY2xvdWRmb3JtYXRpb24uQXV0b1NjYWxpbmdHcm91cFJlc291cmNlUHJvcHMgPSB7XG4gICAgICBtaW5TaXplOiBtaW5TaXplLnRvU3RyaW5nKCksXG4gICAgICBtYXhTaXplOiBtYXhTaXplLnRvU3RyaW5nKCksXG4gICAgICBkZXNpcmVkQ2FwYWNpdHk6IGRlc2lyZWRDYXBhY2l0eS50b1N0cmluZygpLFxuICAgICAgbGF1bmNoQ29uZmlndXJhdGlvbk5hbWU6IGxhdW5jaENvbmZpZy5yZWYsXG4gICAgICBsb2FkQmFsYW5jZXJOYW1lczogbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLmxvYWRCYWxhbmNlck5hbWVzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRCYWxhbmNlck5hbWVzIDogdW5kZWZpbmVkKSxcbiAgICAgIHRhcmdldEdyb3VwQXJuczogbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLnRhcmdldEdyb3VwQXJucy5sZW5ndGggPiAwID8gdGhpcy50YXJnZXRHcm91cEFybnMgOiB1bmRlZmluZWQpLFxuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMubm90aWZpY2F0aW9uc1RvcGljKSB7XG4gICAgICBhc2dQcm9wcy5ub3RpZmljYXRpb25Db25maWd1cmF0aW9ucyA9IFtdO1xuICAgICAgYXNnUHJvcHMubm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbnMucHVzaCh7XG4gICAgICAgIHRvcGljQXJuOiBwcm9wcy5ub3RpZmljYXRpb25zVG9waWMudG9waWNBcm4sXG4gICAgICAgIG5vdGlmaWNhdGlvblR5cGVzOiBbXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfTEFVTkNIXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfTEFVTkNIX0VSUk9SXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfVEVSTUlOQVRFXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfVEVSTUlOQVRFX0VSUk9SXCJcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN1Ym5ldHMgPSBwcm9wcy52cGMuc3VibmV0cyhwcm9wcy52cGNQbGFjZW1lbnQpO1xuICAgIGFzZ1Byb3BzLnZwY1pvbmVJZGVudGlmaWVyID0gc3VibmV0cy5tYXAobiA9PiBuLnN1Ym5ldElkKTtcblxuICAgIHRoaXMuYXV0b1NjYWxpbmdHcm91cCA9IG5ldyBjbG91ZGZvcm1hdGlvbi5BdXRvU2NhbGluZ0dyb3VwUmVzb3VyY2UodGhpcywgJ0FTRycsIGFzZ1Byb3BzKTtcbiAgICB0aGlzLm9zVHlwZSA9IG1hY2hpbmVJbWFnZS5vcy50eXBlO1xuXG4gICAgdGhpcy5hcHBseVVwZGF0ZVBvbGljaWVzKHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHNlY3VyaXR5IGdyb3VwIHRvIGFsbCBpbnN0YW5jZXMgdmlhIHRoZSBsYXVuY2ggY29uZmlndXJhdGlvblxuICAgKiBzZWN1cml0eSBncm91cHMgYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwOiBUaGUgU2VjdXJpdHlHcm91cFJlZiB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRTZWN1cml0eUdyb3VwKHNlY3VyaXR5R3JvdXA6IGVjMi5TZWN1cml0eUdyb3VwUmVmKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cml0eUdyb3Vwcy5wdXNoKHNlY3VyaXR5R3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCB0byBhIGNsYXNzaWMgbG9hZCBiYWxhbmNlclxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRvQ2xhc3NpY0xCKGxvYWRCYWxhbmNlcjogZWxiLkxvYWRCYWxhbmNlcik6IHZvaWQge1xuICAgIHRoaXMubG9hZEJhbGFuY2VyTmFtZXMucHVzaChsb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRvIEVMQnYyIEFwcGxpY2F0aW9uIFRhcmdldCBHcm91cFxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRvQXBwbGljYXRpb25UYXJnZXRHcm91cCh0YXJnZXRHcm91cDogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCk6IGVsYnYyLkxvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICB0aGlzLnRhcmdldEdyb3VwQXJucy5wdXNoKHRhcmdldEdyb3VwLnRhcmdldEdyb3VwQXJuKTtcbiAgICB0YXJnZXRHcm91cC5yZWdpc3RlckNvbm5lY3RhYmxlKHRoaXMpO1xuICAgIHJldHVybiB7IHRhcmdldFR5cGU6IGVsYnYyLlRhcmdldFR5cGUuSW5zdGFuY2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggdG8gRUxCdjIgQXBwbGljYXRpb24gVGFyZ2V0IEdyb3VwXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9OZXR3b3JrVGFyZ2V0R3JvdXAodGFyZ2V0R3JvdXA6IGVsYnYyLk5ldHdvcmtUYXJnZXRHcm91cCk6IGVsYnYyLkxvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICB0aGlzLnRhcmdldEdyb3VwQXJucy5wdXNoKHRhcmdldEdyb3VwLnRhcmdldEdyb3VwQXJuKTtcbiAgICByZXR1cm4geyB0YXJnZXRUeXBlOiBlbGJ2Mi5UYXJnZXRUeXBlLkluc3RhbmNlIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkIGNvbW1hbmQgdG8gdGhlIHN0YXJ0dXAgc2NyaXB0IG9mIGZsZWV0IGluc3RhbmNlcy5cbiAgICogVGhlIGNvbW1hbmQgbXVzdCBiZSBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIHN1cHBvcnRlZCBieSB0aGUgZmxlZXQncyBPUyAoaS5lLiBMaW51eC9XaW5kb3dzKS5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YSguLi5zY3JpcHRMaW5lczogc3RyaW5nW10pIHtcbiAgICBzY3JpcHRMaW5lcy5mb3JFYWNoKHNjcmlwdExpbmUgPT4gdGhpcy51c2VyRGF0YUxpbmVzLnB1c2goc2NyaXB0TGluZSkpO1xuICB9XG5cbiAgcHVibGljIGF1dG9TY2FsaW5nR3JvdXBOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmF1dG9TY2FsaW5nR3JvdXAucmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByb2xlIGFzc3VtZWQgYnkgaW5zdGFuY2VzIG9mIHRoaXMgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIHRoaXMucm9sZS5hZGRUb1BvbGljeShzdGF0ZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IENsb3VkRm9ybWF0aW9uIHVwZGF0ZSBwb2xpY2llcyBmb3IgdGhlIEF1dG9TY2FsaW5nR3JvdXBcbiAgICovXG4gIHByaXZhdGUgYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wczogQXV0b1NjYWxpbmdHcm91cFByb3BzKSB7XG4gICAgaWYgKHByb3BzLnVwZGF0ZVR5cGUgPT09IFVwZGF0ZVR5cGUuUmVwbGFjaW5nVXBkYXRlKSB7XG4gICAgICB0aGlzLmFzZ1VwZGF0ZVBvbGljeS5hdXRvU2NhbGluZ1JlcGxhY2luZ1VwZGF0ZSA9IHsgd2lsbFJlcGxhY2U6IHRydWUgfTtcblxuICAgICAgaWYgKHByb3BzLnJlcGxhY2luZ1VwZGF0ZU1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gWWVzLCB0aGlzIGdvZXMgb24gQ3JlYXRpb25Qb2xpY3ksIG5vdCBhcyBhIHByb2Nlc3MgcGFyYW1ldGVyIHRvIFJlcGxhY2luZ1VwZGF0ZS5cbiAgICAgICAgLy8gSXQncyBhIGxpdHRsZSBjb25mdXNpbmcsIGJ1dCB0aGUgZG9jcyBzZWVtIHRvIGV4cGxpY2l0bHkgc3RhdGUgaXQgd2lsbCBvbmx5IGJlIHVzZWRcbiAgICAgICAgLy8gZHVyaW5nIHRoZSB1cGRhdGU/XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtY3JlYXRpb25wb2xpY3kuaHRtbFxuICAgICAgICB0aGlzLmFzZ0NyZWF0aW9uUG9saWN5LmF1dG9TY2FsaW5nQ3JlYXRpb25Qb2xpY3kgPSB7XG4gICAgICAgICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IHZhbGlkYXRlUGVyY2VudGFnZShwcm9wcy5yZXBsYWNpbmdVcGRhdGVNaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnVwZGF0ZVR5cGUgPT09IFVwZGF0ZVR5cGUuUm9sbGluZ1VwZGF0ZSkge1xuICAgICAgdGhpcy5hc2dVcGRhdGVQb2xpY3kuYXV0b1NjYWxpbmdSb2xsaW5nVXBkYXRlID0gcmVuZGVyUm9sbGluZ1VwZGF0ZUNvbmZpZyhwcm9wcy5yb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgLy8gdW5kZWZpbmVkIGlzIHRyZWF0ZWQgYXMgJ3RydWUnXG4gICAgaWYgKHByb3BzLmlnbm9yZVVubW9kaWZpZWRTaXplUHJvcGVydGllcyAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuYXNnVXBkYXRlUG9saWN5LmF1dG9TY2FsaW5nU2NoZWR1bGVkQWN0aW9uID0geyBpZ25vcmVVbm1vZGlmaWVkR3JvdXBTaXplUHJvcGVydGllczogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5yZXNvdXJjZVNpZ25hbENvdW50ICE9PSB1bmRlZmluZWQgfHwgcHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0U2VjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXNnQ3JlYXRpb25Qb2xpY3kucmVzb3VyY2VTaWduYWwgPSB7XG4gICAgICAgIGNvdW50OiBwcm9wcy5yZXNvdXJjZVNpZ25hbENvdW50LFxuICAgICAgICB0aW1lb3V0OiBwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXRTZWMgIT09IHVuZGVmaW5lZCA/IHJlbmRlcklzb0R1cmF0aW9uKHByb3BzLnJlc291cmNlU2lnbmFsVGltZW91dFNlYykgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW5kIHJldHVybiB0aGUgQVNHIHVwZGF0ZSBwb2xpY3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IGFzZ1VwZGF0ZVBvbGljeSgpIHtcbiAgICBpZiAodGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMudXBkYXRlUG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXV0b1NjYWxpbmdHcm91cC5vcHRpb25zLnVwZGF0ZVBvbGljeSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMudXBkYXRlUG9saWN5O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgcmV0dXJuIHRoZSBBU0cgY3JlYXRpb24gcG9saWN5XG4gICAqL1xuICBwcml2YXRlIGdldCBhc2dDcmVhdGlvblBvbGljeSgpIHtcbiAgICBpZiAodGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMuY3JlYXRpb25Qb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMuY3JlYXRpb25Qb2xpY3kgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0b1NjYWxpbmdHcm91cC5vcHRpb25zLmNyZWF0aW9uUG9saWN5O1xuICB9XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdXBkYXRlIHRvIHBlcmZvcm0gb24gaW5zdGFuY2VzIGluIHRoaXMgQXV0b1NjYWxpbmdHcm91cFxuICovXG5leHBvcnQgZW51bSBVcGRhdGVUeXBlIHtcbiAgLyoqXG4gICAqIERvbid0IGRvIGFueXRoaW5nXG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnRpcmUgQXV0b1NjYWxpbmdHcm91cFxuICAgKlxuICAgKiBCdWlsZHMgYSBuZXcgQXV0b1NjYWxpbmdHcm91cCBmaXJzdCwgdGhlbiBkZWxldGUgdGhlIG9sZCBvbmUuXG4gICAqL1xuICBSZXBsYWNpbmdVcGRhdGUgPSAnUmVwbGFjZScsXG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGluc3RhbmNlcyBpbiB0aGUgQXV0b1NjYWxpbmdHcm91cC5cbiAgICovXG4gIFJvbGxpbmdVcGRhdGUgPSAnUm9sbGluZ1VwZGF0ZScsXG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBzZXR0aW5ncyB3aGVuIGEgcm9sbGluZyB1cGRhdGUgaXMgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgQVdTIENsb3VkRm9ybWF0aW9uIHVwZGF0ZXMgYXQgb25jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgbWF4QmF0Y2hTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgbXVzdCBiZSBpbiBzZXJ2aWNlIGJlZm9yZSBtb3JlIGluc3RhbmNlcyBhcmUgcmVwbGFjZWQuXG4gICAqXG4gICAqIFRoaXMgbnVtYmVyIGFmZmVjdHMgdGhlIHNwZWVkIG9mIHRoZSByZXBsYWNlbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgbWluSW5zdGFuY2VzSW5TZXJ2aWNlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMgdGhhdCBtdXN0IHNpZ25hbCBzdWNjZXNzIGZvciBhbiB1cGRhdGUgdG8gc3VjY2VlZC5cbiAgICpcbiAgICogSWYgYW4gaW5zdGFuY2UgZG9lc24ndCBzZW5kIGEgc2lnbmFsIHdpdGhpbiB0aGUgdGltZSBzcGVjaWZpZWQgaW4gdGhlXG4gICAqIHBhdXNlVGltZSBwcm9wZXJ0eSwgQVdTIENsb3VkRm9ybWF0aW9uIGFzc3VtZXMgdGhhdCB0aGUgaW5zdGFuY2Ugd2Fzbid0XG4gICAqIHVwZGF0ZWQuXG4gICAqXG4gICAqIFRoaXMgbnVtYmVyIGFmZmVjdHMgdGhlIHN1Y2Nlc3Mgb2YgdGhlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBhbHNvIGVuYWJsZSB0aGVcbiAgICogd2FpdE9uUmVzb3VyY2VTaWduYWxzIGFuZCBwYXVzZVRpbWUgcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBtaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhdXNlIHRpbWUgYWZ0ZXIgbWFraW5nIGEgY2hhbmdlIHRvIGEgYmF0Y2ggb2YgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIHRvIGdpdmUgdGhvc2UgaW5zdGFuY2VzIHRpbWUgdG8gc3RhcnQgc29mdHdhcmUgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBTcGVjaWZ5IFBhdXNlVGltZSBpbiB0aGUgSVNPODYwMSBkdXJhdGlvbiBmb3JtYXQgKGluIHRoZSBmb3JtYXRcbiAgICogUFQjSCNNI1MsIHdoZXJlIGVhY2ggIyBpcyB0aGUgbnVtYmVyIG9mIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyxcbiAgICogcmVzcGVjdGl2ZWx5KS4gVGhlIG1heGltdW0gUGF1c2VUaW1lIGlzIG9uZSBob3VyIChQVDFIKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwIGlmIHRoZSB3YWl0T25SZXNvdXJjZVNpZ25hbHMgcHJvcGVydHkgaXMgdHJ1ZSwgb3RoZXJ3aXNlIDBcbiAgICovXG4gIHBhdXNlVGltZVNlYz86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIEF1dG8gU2NhbGluZyBncm91cCB3YWl0cyBvbiBzaWduYWxzIGZyb20gbmV3IGluc3RhbmNlcyBkdXJpbmcgYW4gdXBkYXRlLlxuICAgKlxuICAgKiBBV1MgQ2xvdWRGb3JtYXRpb24gbXVzdCByZWNlaXZlIGEgc2lnbmFsIGZyb20gZWFjaCBuZXcgaW5zdGFuY2Ugd2l0aGluXG4gICAqIHRoZSBzcGVjaWZpZWQgUGF1c2VUaW1lIGJlZm9yZSBjb250aW51aW5nIHRoZSB1cGRhdGUuXG4gICAqXG4gICAqIFRvIGhhdmUgaW5zdGFuY2VzIHdhaXQgZm9yIGFuIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgaGVhbHRoIGNoZWNrIGJlZm9yZVxuICAgKiB0aGV5IHNpZ25hbCBzdWNjZXNzLCBhZGQgYSBoZWFsdGgtY2hlY2sgdmVyaWZpY2F0aW9uIGJ5IHVzaW5nIHRoZVxuICAgKiBjZm4taW5pdCBoZWxwZXIgc2NyaXB0LiBGb3IgYW4gZXhhbXBsZSwgc2VlIHRoZSB2ZXJpZnlfaW5zdGFuY2VfaGVhbHRoXG4gICAqIGNvbW1hbmQgaW4gdGhlIEF1dG8gU2NhbGluZyByb2xsaW5nIHVwZGF0ZXMgc2FtcGxlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIGlmIHlvdSBzcGVjaWZpZWQgdGhlIG1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50IHByb3BlcnR5LCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHdhaXRPblJlc291cmNlU2lnbmFscz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgQXV0byBTY2FsaW5nIHByb2Nlc3NlcyB0byBzdXNwZW5kIGR1cmluZyBhIHN0YWNrIHVwZGF0ZS5cbiAgICpcbiAgICogU3VzcGVuZGluZyBwcm9jZXNzZXMgcHJldmVudHMgQXV0byBTY2FsaW5nIGZyb20gaW50ZXJmZXJpbmcgd2l0aCBhIHN0YWNrXG4gICAqIHVwZGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgSGVhbHRoQ2hlY2ssIFJlcGxhY2VVbmhlYWx0aHksIEFaUmViYWxhbmNlLCBBbGFybU5vdGlmaWNhdGlvbiwgU2NoZWR1bGVkQWN0aW9ucy5cbiAgICovXG4gIHN1c3BlbmRQcm9jZXNzZXM/OiBTY2FsaW5nUHJvY2Vzc1tdO1xufVxuXG5leHBvcnQgZW51bSBTY2FsaW5nUHJvY2VzcyB7XG4gIExhdW5jaCA9ICdMYXVuY2gnLFxuICBUZXJtaW5hdGUgPSAnVGVybWluYXRlJyxcbiAgSGVhbHRoQ2hlY2sgPSAnSGVhbHRoQ2hlY2snLFxuICBSZXBsYWNlVW5oZWFsdGh5ID0gJ1JlcGxhY2VVbmhlYWx0aHknLFxuICBBWlJlYmFsYW5jZSA9ICdBWlJlYmFsYW5jZScsXG4gIEFsYXJtTm90aWZpY2F0aW9uID0gJ0FsYXJtTm90aWZpY2F0aW9uJyxcbiAgU2NoZWR1bGVkQWN0aW9ucyA9ICdTY2hlZHVsZWRBY3Rpb25zJyxcbiAgQWRkVG9Mb2FkQmFsYW5jZXIgPSAnQWRkVG9Mb2FkQmFsYW5jZXInXG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSByb2xsaW5nIHVwZGF0ZSBjb25maWd1cmF0aW9uIGludG8gdGhlIGFwcHJvcHJpYXRlIG9iamVjdFxuICovXG5mdW5jdGlvbiByZW5kZXJSb2xsaW5nVXBkYXRlQ29uZmlnKGNvbmZpZzogUm9sbGluZ1VwZGF0ZUNvbmZpZ3VyYXRpb24gPSB7fSk6IGNkay5BdXRvU2NhbGluZ1JvbGxpbmdVcGRhdGUge1xuICBjb25zdCB3YWl0T25SZXNvdXJjZVNpZ25hbHMgPSBjb25maWcubWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQgIT09IHVuZGVmaW5lZCA/IHRydWUgOiBmYWxzZTtcbiAgY29uc3QgcGF1c2VUaW1lU2VjID0gY29uZmlnLnBhdXNlVGltZVNlYyAhPT0gdW5kZWZpbmVkID8gY29uZmlnLnBhdXNlVGltZVNlYyA6ICh3YWl0T25SZXNvdXJjZVNpZ25hbHMgPyAzMDAgOiAwKTtcblxuICByZXR1cm4ge1xuICAgIG1heEJhdGNoU2l6ZTogY29uZmlnLm1heEJhdGNoU2l6ZSxcbiAgICBtaW5JbnN0YW5jZXNJblNlcnZpY2U6IGNvbmZpZy5taW5JbnN0YW5jZXNJblNlcnZpY2UsXG4gICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IHZhbGlkYXRlUGVyY2VudGFnZShjb25maWcubWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQpLFxuICAgIHdhaXRPblJlc291cmNlU2lnbmFscyxcbiAgICBwYXVzZVRpbWU6IHJlbmRlcklzb0R1cmF0aW9uKHBhdXNlVGltZVNlYyksXG4gICAgc3VzcGVuZFByb2Nlc3NlczogY29uZmlnLnN1c3BlbmRQcm9jZXNzZXMgIT09IHVuZGVmaW5lZCA/IGNvbmZpZy5zdXNwZW5kUHJvY2Vzc2VzIDpcbiAgICAgIC8vIFJlY29tbWVuZGVkIGxpc3Qgb2YgcHJvY2Vzc2VzIHRvIHN1c3BlbmQgZnJvbSBoZXJlOlxuICAgICAgLy8gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9wcmVtaXVtc3VwcG9ydC9rbm93bGVkZ2UtY2VudGVyL2F1dG8tc2NhbGluZy1ncm91cC1yb2xsaW5nLXVwZGF0ZXMvXG4gICAgICBbU2NhbGluZ1Byb2Nlc3MuSGVhbHRoQ2hlY2ssIFNjYWxpbmdQcm9jZXNzLlJlcGxhY2VVbmhlYWx0aHksIFNjYWxpbmdQcm9jZXNzLkFaUmViYWxhbmNlLFxuICAgICAgICBTY2FsaW5nUHJvY2Vzcy5BbGFybU5vdGlmaWNhdGlvbiwgU2NhbGluZ1Byb2Nlc3MuU2NoZWR1bGVkQWN0aW9uc10sXG4gIH07XG59XG5cbmNsYXNzIFRhZ01hbmFnZXIgZXh0ZW5kcyBjZGsuVGFnTWFuYWdlciB7XG4gIHByb3RlY3RlZCB0YWdGb3JtYXRSZXNvbHZlKHRhZ0dyb3VwczogY2RrLlRhZ0dyb3Vwcyk6IGFueSB7XG4gICAgY29uc3QgdGFncyA9IHsuLi50YWdHcm91cHMubm9uU3RpY2t5VGFncywgLi4udGFnR3JvdXBzLmFuY2VzdG9yVGFncywgLi4udGFnR3JvdXBzLnN0aWNreVRhZ3N9O1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0YWdzKS5tYXAoIChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3BhZ2F0ZUF0TGF1bmNoID0gISF0YWdHcm91cHMucHJvcGFnYXRlVGFnc1trZXldIHx8ICEhdGFnR3JvdXBzLmFuY2VzdG9yVGFnc1trZXldO1xuICAgICAgcmV0dXJuIHtrZXksIHZhbHVlOiB0YWdzW2tleV0sIHByb3BhZ2F0ZUF0TGF1bmNofTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciBhIG51bWJlciBvZiBzZWNvbmRzIHRvIGEgUFRuWCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcklzb0R1cmF0aW9uKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHJldDogc3RyaW5nW10gPSBbXTtcblxuICBpZiAoc2Vjb25kcyA+PSAzNjAwKSB7XG4gICAgcmV0LnB1c2goYCR7TWF0aC5mbG9vcihzZWNvbmRzIC8gMzYwMCl9SGApO1xuICAgIHNlY29uZHMgJT0gMzYwMDtcbiAgfVxuICBpZiAoc2Vjb25kcyA+PSA2MCkge1xuICAgIHJldC5wdXNoKGAke01hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKX1NYCk7XG4gICAgc2Vjb25kcyAlPSA2MDtcbiAgfVxuICBpZiAoc2Vjb25kcyA+IDApIHtcbiAgICByZXQucHVzaChgJHtzZWNvbmRzfVNgKTtcbiAgfVxuXG4gIHJldHVybiAnUFQnICsgcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBlcmNlbnRhZ2UoeD86IG51bWJlcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQgfHwgKDAgPD0geCAmJiB4IDw9IDEwMCkpIHsgcmV0dXJuIHg7IH1cbiAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZDogYSBwZXJjZW50YWdlIDAuLjEwMCwgZ290OiAke3h9YCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zY2FsaW5nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXV0by1zY2FsaW5nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLDZEQUE4RDtBQUM5RCx3Q0FBeUM7QUFFekMsb0NBQXFDO0FBRXJDLG1FQUF5RDtBQUV6RDs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFXLE1BQU0sQ0FBQztBQThIaEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUE2QmpELFlBQVksTUFBcUIsRUFBRSxJQUFZLEVBQUUsS0FBNEI7UUFDM0UsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQVJMLGtCQUFhLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUdwQyxtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFDNUMsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBSzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUN4RSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssS0FBSztTQUNuRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUMs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RUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlYzIgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtZWMyJyk7XG5pbXBvcnQgZWxiID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5nJyk7XG5pbXBvcnQgZWxidjIgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MicpO1xuaW1wb3J0IGlhbSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1pYW0nKTtcbmltcG9ydCBzbnMgPSByZXF1aXJlKCdAYXdzLWNkay9hd3Mtc25zJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5cbmltcG9ydCB7IGNsb3VkZm9ybWF0aW9uIH0gZnJvbSAnLi9hdXRvc2NhbGluZy5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIE5hbWUgdGFnIGNvbnN0YW50XG4gKi9cbmNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSAnTmFtZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIEZsZWV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1NjYWxpbmdHcm91cFByb3BzIHtcbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5zdGFuY2UgdG8gbGF1bmNoXG4gICAqL1xuICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIG9mIGluc3RhbmNlcyBpbiB0aGUgZmxlZXRcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgbWluU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIGluIHRoZSBmbGVldFxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBtYXhTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGFtb3VudCBvZiBpbnN0YW5jZXMgaW4gdGhlIGZsZWV0XG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGRlc2lyZWRDYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogTmFtZSBvZiBTU0gga2V5cGFpciB0byBncmFudCBhY2Nlc3MgdG8gaW5zdGFuY2VzXG4gICAqIEBkZWZhdWx0IE5vIFNTSCBhY2Nlc3Mgd2lsbCBiZSBwb3NzaWJsZVxuICAgKi9cbiAga2V5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQU1JIHRvIGxhdW5jaFxuICAgKi9cbiAgbWFjaGluZUltYWdlOiBlYzIuSU1hY2hpbmVJbWFnZVNvdXJjZTtcblxuICAvKipcbiAgICogVlBDIHRvIGxhdW5jaCB0aGVzZSBpbnN0YW5jZXMgaW4uXG4gICAqL1xuICB2cGM6IGVjMi5WcGNOZXR3b3JrUmVmO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byBwbGFjZSBpbnN0YW5jZXMgd2l0aGluIHRoZSBWUENcbiAgICovXG4gIHZwY1BsYWNlbWVudD86IGVjMi5WcGNQbGFjZW1lbnRTdHJhdGVneTtcblxuICAvKipcbiAgICogU05TIHRvcGljIHRvIHNlbmQgbm90aWZpY2F0aW9ucyBhYm91dCBmbGVldCBjaGFuZ2VzXG4gICAqIEBkZWZhdWx0IE5vIGZsZWV0IGNoYW5nZSBub3RpZmljYXRpb25zIHdpbGwgYmUgc2VudC5cbiAgICovXG4gIG5vdGlmaWNhdGlvbnNUb3BpYz86IHNucy5Ub3BpY1JlZjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5zdGFuY2VzIGNhbiBpbml0aWF0ZSBjb25uZWN0aW9ucyB0byBhbnl3aGVyZSBieSBkZWZhdWx0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGFsbG93QWxsT3V0Ym91bmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGF0IHRvIGRvIHdoZW4gYW4gQXV0b1NjYWxpbmdHcm91cCdzIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZFxuICAgKlxuICAgKiBUaGlzIGlzIGFwcGxpZWQgd2hlbiBhbnkgb2YgdGhlIHNldHRpbmdzIG9uIHRoZSBBU0cgYXJlIGNoYW5nZWQgdGhhdFxuICAgKiBhZmZlY3QgaG93IHRoZSBpbnN0YW5jZXMgc2hvdWxkIGJlIGNyZWF0ZWQgKFZQQywgaW5zdGFuY2UgdHlwZSwgc3RhcnR1cFxuICAgKiBzY3JpcHRzLCBldGMuKS4gSXQgaW5kaWNhdGVzIGhvdyB0aGUgZXhpc3RpbmcgaW5zdGFuY2VzIHNob3VsZCBiZVxuICAgKiByZXBsYWNlZCB3aXRoIG5ldyBpbnN0YW5jZXMgbWF0Y2hpbmcgdGhlIG5ldyBjb25maWcuIEJ5IGRlZmF1bHQsIG5vdGhpbmdcbiAgICogaXMgZG9uZSBhbmQgb25seSBuZXcgaW5zdGFuY2VzIGFyZSBsYXVuY2hlZCB3aXRoIHRoZSBuZXcgY29uZmlnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBVcGRhdGVUeXBlLk5vbmVcbiAgICovXG4gIHVwZGF0ZVR5cGU/OiBVcGRhdGVUeXBlO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciByb2xsaW5nIHVwZGF0ZXNcbiAgICpcbiAgICogT25seSB1c2VkIGlmIHVwZGF0ZVR5cGUgPT0gVXBkYXRlVHlwZS5Sb2xsaW5nVXBkYXRlLlxuICAgKi9cbiAgcm9sbGluZ1VwZGF0ZUNvbmZpZ3VyYXRpb24/OiBSb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcmVwbGFjaW5nIHVwZGF0ZXMuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiB1cGRhdGVUeXBlID09IFVwZGF0ZVR5cGUuUmVwbGFjaW5nVXBkYXRlLiBTcGVjaWZpZXMgaG93XG4gICAqIG1hbnkgaW5zdGFuY2VzIG11c3Qgc2lnbmFsIHN1Y2Nlc3MgZm9yIHRoZSB1cGRhdGUgdG8gc3VjY2VlZC5cbiAgICovXG4gIHJlcGxhY2luZ1VwZGF0ZU1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgQVNHIGhhcyBzY2hlZHVsZWQgYWN0aW9ucywgZG9uJ3QgcmVzZXQgdW5jaGFuZ2VkIGdyb3VwIHNpemVzXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiB0aGUgQVNHIGhhcyBzY2hlZHVsZWQgYWN0aW9ucyAod2hpY2ggbWF5IHNjYWxlIHlvdXIgQVNHIHVwXG4gICAqIG9yIGRvd24gcmVnYXJkbGVzcyBvZiBjZGsgZGVwbG95bWVudHMpLiBJZiB0cnVlLCB0aGUgc2l6ZSBvZiB0aGUgZ3JvdXBcbiAgICogd2lsbCBvbmx5IGJlIHJlc2V0IGlmIGl0IGhhcyBiZWVuIGNoYW5nZWQgaW4gdGhlIENESyBhcHAuIElmIGZhbHNlLCB0aGVcbiAgICogc2l6ZXMgd2lsbCBhbHdheXMgYmUgY2hhbmdlZCBiYWNrIHRvIHdoYXQgdGhleSB3ZXJlIGluIHRoZSBDREsgYXBwXG4gICAqIG9uIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGlnbm9yZVVubW9kaWZpZWRTaXplUHJvcGVydGllcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IFJlc291cmNlU2lnbmFsIGNhbGxzIENsb3VkRm9ybWF0aW9uIGV4cGVjdHMgYmVmb3JlIHRoZSByZXNvdXJjZSBpcyBjb25zaWRlcmVkIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVzb3VyY2VTaWduYWxDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxlbmd0aCBvZiB0aW1lIHRvIHdhaXQgZm9yIHRoZSByZXNvdXJjZVNpZ25hbENvdW50XG4gICAqXG4gICAqIFRoZSBtYXhpbXVtIHZhbHVlIGlzIDQzMjAwICgxMiBob3VycykuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwMCAoNSBtaW51dGVzKVxuICAgKi9cbiAgcmVzb3VyY2VTaWduYWxUaW1lb3V0U2VjPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlc291cmNlIHRhZ3MgdG8gYXNzb2NpYXRlIHdpdGggdGhlIEFTRy5cbiAgICovXG4gIHRhZ3M/OiBjZGsuVGFncztcbn1cblxuLyoqXG4gKiBBIEZsZWV0IHJlcHJlc2VudHMgYSBtYW5hZ2VkIHNldCBvZiBFQzIgaW5zdGFuY2VzXG4gKlxuICogVGhlIEZsZWV0IG1vZGVscyBhIG51bWJlciBvZiBBdXRvU2NhbGluZ0dyb3VwcywgYSBsYXVuY2ggY29uZmlndXJhdGlvbiwgYVxuICogc2VjdXJpdHkgZ3JvdXAgYW5kIGFuIGluc3RhbmNlIHJvbGUuXG4gKlxuICogSXQgYWxsb3dzIGFkZGluZyBhcmJpdHJhcnkgY29tbWFuZHMgdG8gdGhlIHN0YXJ0dXAgc2NyaXB0cyBvZiB0aGUgaW5zdGFuY2VzXG4gKiBpbiB0aGUgZmxlZXQuXG4gKlxuICogVGhlIEFTRyBzcGFucyBhbGwgYXZhaWxhYmlsaXR5IHpvbmVzLlxuICovXG5leHBvcnQgY2xhc3MgQXV0b1NjYWxpbmdHcm91cCBleHRlbmRzIGNkay5Db25zdHJ1Y3QgaW1wbGVtZW50cyBjZGsuSVRhZ2dhYmxlLCBlbGIuSUxvYWRCYWxhbmNlclRhcmdldCwgZWMyLklDb25uZWN0YWJsZSxcbiAgZWxidjIuSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVGFyZ2V0LCBlbGJ2Mi5JTmV0d29ya0xvYWRCYWxhbmNlclRhcmdldCB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBPUyBpbnN0YW5jZXMgb2YgdGhpcyBmbGVldCBhcmUgcnVubmluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvc1R5cGU6IGVjMi5PcGVyYXRpbmdTeXN0ZW1UeXBlO1xuXG4gIC8qKlxuICAgKiBBbGxvd3Mgc3BlY2lmeSBzZWN1cml0eSBncm91cCBjb25uZWN0aW9ucyBmb3IgaW5zdGFuY2VzIG9mIHRoaXMgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgaW5zdGFuY2VzIG9mIHRoaXMgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGU7XG5cbiAgLyoqXG4gICAqIE1hbmFnZSB0YWdzIGZvciB0aGlzIGNvbnN0cnVjdCBhbmQgY2hpbGRyZW5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzOiBjZGsuVGFnTWFuYWdlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJEYXRhTGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dG9TY2FsaW5nR3JvdXA6IGNsb3VkZm9ybWF0aW9uLkF1dG9TY2FsaW5nR3JvdXBSZXNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWN1cml0eUdyb3VwOiBlYzIuU2VjdXJpdHlHcm91cFJlZjtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWN1cml0eUdyb3VwczogZWMyLlNlY3VyaXR5R3JvdXBSZWZbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRCYWxhbmNlck5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldEdyb3VwQXJuczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEF1dG9TY2FsaW5nR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ0luc3RhbmNlU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogcHJvcHMuYWxsb3dBbGxPdXRib3VuZCAhPT0gZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IGVjMi5Db25uZWN0aW9ucyh7IHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5zZWN1cml0eUdyb3VwXSB9KTtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXBzLnB1c2godGhpcy5zZWN1cml0eUdyb3VwKTtcbiAgICB0aGlzLnRhZ3MgPSBuZXcgVGFnTWFuYWdlcih0aGlzLCB7aW5pdGlhbFRhZ3M6IHByb3BzLnRhZ3N9KTtcbiAgICB0aGlzLnRhZ3Muc2V0VGFnKE5BTUVfVEFHLCB0aGlzLnBhdGgsIHsgb3ZlcndyaXRlOiBmYWxzZSB9KTtcblxuICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnSW5zdGFuY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VjMi5hbWF6b25hd3MuY29tJylcbiAgICB9KTtcblxuICAgIGNvbnN0IGlhbVByb2ZpbGUgPSBuZXcgaWFtLmNsb3VkZm9ybWF0aW9uLkluc3RhbmNlUHJvZmlsZVJlc291cmNlKHRoaXMsICdJbnN0YW5jZVByb2ZpbGUnLCB7XG4gICAgICByb2xlczogWyB0aGlzLnJvbGUucm9sZU5hbWUgXVxuICAgIH0pO1xuXG4gICAgLy8gdXNlIGRlbGF5ZWQgZXZhbHVhdGlvblxuICAgIGNvbnN0IG1hY2hpbmVJbWFnZSA9IHByb3BzLm1hY2hpbmVJbWFnZS5nZXRJbWFnZSh0aGlzKTtcbiAgICBjb25zdCB1c2VyRGF0YVRva2VuID0gbmV3IGNkay5Ub2tlbigoKSA9PiBuZXcgY2RrLkZuQmFzZTY0KChtYWNoaW5lSW1hZ2Uub3MuY3JlYXRlVXNlckRhdGEodGhpcy51c2VyRGF0YUxpbmVzKSkpKTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3Vwc1Rva2VuID0gbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLnNlY3VyaXR5R3JvdXBzLm1hcChzZyA9PiBzZy5zZWN1cml0eUdyb3VwSWQpKTtcblxuICAgIGNvbnN0IGxhdW5jaENvbmZpZyA9IG5ldyBjbG91ZGZvcm1hdGlvbi5MYXVuY2hDb25maWd1cmF0aW9uUmVzb3VyY2UodGhpcywgJ0xhdW5jaENvbmZpZycsIHtcbiAgICAgIGltYWdlSWQ6IG1hY2hpbmVJbWFnZS5pbWFnZUlkLFxuICAgICAga2V5TmFtZTogcHJvcHMua2V5TmFtZSxcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCksXG4gICAgICBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHNUb2tlbixcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZTogaWFtUHJvZmlsZS5yZWYsXG4gICAgICB1c2VyRGF0YTogdXNlckRhdGFUb2tlblxuICAgIH0pO1xuXG4gICAgbGF1bmNoQ29uZmlnLmFkZERlcGVuZGVuY3kodGhpcy5yb2xlKTtcblxuICAgIGNvbnN0IG1pblNpemUgPSBwcm9wcy5taW5TaXplICE9PSB1bmRlZmluZWQgPyBwcm9wcy5taW5TaXplIDogMTtcbiAgICBjb25zdCBtYXhTaXplID0gcHJvcHMubWF4U2l6ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHMubWF4U2l6ZSA6IDE7XG4gICAgY29uc3QgZGVzaXJlZENhcGFjaXR5ID0gcHJvcHMuZGVzaXJlZENhcGFjaXR5ICE9PSB1bmRlZmluZWQgPyBwcm9wcy5kZXNpcmVkQ2FwYWNpdHkgOiAxO1xuXG4gICAgaWYgKGRlc2lyZWRDYXBhY2l0eSA8IG1pblNpemUgfHwgZGVzaXJlZENhcGFjaXR5ID4gbWF4U2l6ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTaG91bGQgaGF2ZSBtaW5TaXplICgke21pblNpemV9KSA8PSBkZXNpcmVkQ2FwYWNpdHkgKCR7ZGVzaXJlZENhcGFjaXR5fSkgPD0gbWF4U2l6ZSAoJHttYXhTaXplfSlgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc2dQcm9wczogY2xvdWRmb3JtYXRpb24uQXV0b1NjYWxpbmdHcm91cFJlc291cmNlUHJvcHMgPSB7XG4gICAgICBtaW5TaXplOiBtaW5TaXplLnRvU3RyaW5nKCksXG4gICAgICBtYXhTaXplOiBtYXhTaXplLnRvU3RyaW5nKCksXG4gICAgICBkZXNpcmVkQ2FwYWNpdHk6IGRlc2lyZWRDYXBhY2l0eS50b1N0cmluZygpLFxuICAgICAgbGF1bmNoQ29uZmlndXJhdGlvbk5hbWU6IGxhdW5jaENvbmZpZy5yZWYsXG4gICAgICBsb2FkQmFsYW5jZXJOYW1lczogbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLmxvYWRCYWxhbmNlck5hbWVzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRCYWxhbmNlck5hbWVzIDogdW5kZWZpbmVkKSxcbiAgICAgIHRhcmdldEdyb3VwQXJuczogbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLnRhcmdldEdyb3VwQXJucy5sZW5ndGggPiAwID8gdGhpcy50YXJnZXRHcm91cEFybnMgOiB1bmRlZmluZWQpLFxuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMubm90aWZpY2F0aW9uc1RvcGljKSB7XG4gICAgICBhc2dQcm9wcy5ub3RpZmljYXRpb25Db25maWd1cmF0aW9ucyA9IFtdO1xuICAgICAgYXNnUHJvcHMubm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbnMucHVzaCh7XG4gICAgICAgIHRvcGljQXJuOiBwcm9wcy5ub3RpZmljYXRpb25zVG9waWMudG9waWNBcm4sXG4gICAgICAgIG5vdGlmaWNhdGlvblR5cGVzOiBbXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfTEFVTkNIXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfTEFVTkNIX0VSUk9SXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfVEVSTUlOQVRFXCIsXG4gICAgICAgICAgXCJhdXRvc2NhbGluZzpFQzJfSU5TVEFOQ0VfVEVSTUlOQVRFX0VSUk9SXCJcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN1Ym5ldHMgPSBwcm9wcy52cGMuc3VibmV0cyhwcm9wcy52cGNQbGFjZW1lbnQpO1xuICAgIGFzZ1Byb3BzLnZwY1pvbmVJZGVudGlmaWVyID0gc3VibmV0cy5tYXAobiA9PiBuLnN1Ym5ldElkKTtcblxuICAgIHRoaXMuYXV0b1NjYWxpbmdHcm91cCA9IG5ldyBjbG91ZGZvcm1hdGlvbi5BdXRvU2NhbGluZ0dyb3VwUmVzb3VyY2UodGhpcywgJ0FTRycsIGFzZ1Byb3BzKTtcbiAgICB0aGlzLm9zVHlwZSA9IG1hY2hpbmVJbWFnZS5vcy50eXBlO1xuXG4gICAgdGhpcy5hcHBseVVwZGF0ZVBvbGljaWVzKHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHNlY3VyaXR5IGdyb3VwIHRvIGFsbCBpbnN0YW5jZXMgdmlhIHRoZSBsYXVuY2ggY29uZmlndXJhdGlvblxuICAgKiBzZWN1cml0eSBncm91cHMgYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwOiBUaGUgU2VjdXJpdHlHcm91cFJlZiB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRTZWN1cml0eUdyb3VwKHNlY3VyaXR5R3JvdXA6IGVjMi5TZWN1cml0eUdyb3VwUmVmKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cml0eUdyb3Vwcy5wdXNoKHNlY3VyaXR5R3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCB0byBhIGNsYXNzaWMgbG9hZCBiYWxhbmNlclxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRvQ2xhc3NpY0xCKGxvYWRCYWxhbmNlcjogZWxiLkxvYWRCYWxhbmNlcik6IHZvaWQge1xuICAgIHRoaXMubG9hZEJhbGFuY2VyTmFtZXMucHVzaChsb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRvIEVMQnYyIEFwcGxpY2F0aW9uIFRhcmdldCBHcm91cFxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRvQXBwbGljYXRpb25UYXJnZXRHcm91cCh0YXJnZXRHcm91cDogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCk6IGVsYnYyLkxvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICB0aGlzLnRhcmdldEdyb3VwQXJucy5wdXNoKHRhcmdldEdyb3VwLnRhcmdldEdyb3VwQXJuKTtcbiAgICB0YXJnZXRHcm91cC5yZWdpc3RlckNvbm5lY3RhYmxlKHRoaXMpO1xuICAgIHJldHVybiB7IHRhcmdldFR5cGU6IGVsYnYyLlRhcmdldFR5cGUuSW5zdGFuY2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggdG8gRUxCdjIgQXBwbGljYXRpb24gVGFyZ2V0IEdyb3VwXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9OZXR3b3JrVGFyZ2V0R3JvdXAodGFyZ2V0R3JvdXA6IGVsYnYyLk5ldHdvcmtUYXJnZXRHcm91cCk6IGVsYnYyLkxvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICB0aGlzLnRhcmdldEdyb3VwQXJucy5wdXNoKHRhcmdldEdyb3VwLnRhcmdldEdyb3VwQXJuKTtcbiAgICByZXR1cm4geyB0YXJnZXRUeXBlOiBlbGJ2Mi5UYXJnZXRUeXBlLkluc3RhbmNlIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkIGNvbW1hbmQgdG8gdGhlIHN0YXJ0dXAgc2NyaXB0IG9mIGZsZWV0IGluc3RhbmNlcy5cbiAgICogVGhlIGNvbW1hbmQgbXVzdCBiZSBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIHN1cHBvcnRlZCBieSB0aGUgZmxlZXQncyBPUyAoaS5lLiBMaW51eC9XaW5kb3dzKS5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YSguLi5zY3JpcHRMaW5lczogc3RyaW5nW10pIHtcbiAgICBzY3JpcHRMaW5lcy5mb3JFYWNoKHNjcmlwdExpbmUgPT4gdGhpcy51c2VyRGF0YUxpbmVzLnB1c2goc2NyaXB0TGluZSkpO1xuICB9XG5cbiAgcHVibGljIGF1dG9TY2FsaW5nR3JvdXBOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmF1dG9TY2FsaW5nR3JvdXAucmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByb2xlIGFzc3VtZWQgYnkgaW5zdGFuY2VzIG9mIHRoaXMgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIHRoaXMucm9sZS5hZGRUb1BvbGljeShzdGF0ZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IENsb3VkRm9ybWF0aW9uIHVwZGF0ZSBwb2xpY2llcyBmb3IgdGhlIEF1dG9TY2FsaW5nR3JvdXBcbiAgICovXG4gIHByaXZhdGUgYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wczogQXV0b1NjYWxpbmdHcm91cFByb3BzKSB7XG4gICAgaWYgKHByb3BzLnVwZGF0ZVR5cGUgPT09IFVwZGF0ZVR5cGUuUmVwbGFjaW5nVXBkYXRlKSB7XG4gICAgICB0aGlzLmFzZ1VwZGF0ZVBvbGljeS5hdXRvU2NhbGluZ1JlcGxhY2luZ1VwZGF0ZSA9IHsgd2lsbFJlcGxhY2U6IHRydWUgfTtcblxuICAgICAgaWYgKHByb3BzLnJlcGxhY2luZ1VwZGF0ZU1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gWWVzLCB0aGlzIGdvZXMgb24gQ3JlYXRpb25Qb2xpY3ksIG5vdCBhcyBhIHByb2Nlc3MgcGFyYW1ldGVyIHRvIFJlcGxhY2luZ1VwZGF0ZS5cbiAgICAgICAgLy8gSXQncyBhIGxpdHRsZSBjb25mdXNpbmcsIGJ1dCB0aGUgZG9jcyBzZWVtIHRvIGV4cGxpY2l0bHkgc3RhdGUgaXQgd2lsbCBvbmx5IGJlIHVzZWRcbiAgICAgICAgLy8gZHVyaW5nIHRoZSB1cGRhdGU/XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtY3JlYXRpb25wb2xpY3kuaHRtbFxuICAgICAgICB0aGlzLmFzZ0NyZWF0aW9uUG9saWN5LmF1dG9TY2FsaW5nQ3JlYXRpb25Qb2xpY3kgPSB7XG4gICAgICAgICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IHZhbGlkYXRlUGVyY2VudGFnZShwcm9wcy5yZXBsYWNpbmdVcGRhdGVNaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnVwZGF0ZVR5cGUgPT09IFVwZGF0ZVR5cGUuUm9sbGluZ1VwZGF0ZSkge1xuICAgICAgdGhpcy5hc2dVcGRhdGVQb2xpY3kuYXV0b1NjYWxpbmdSb2xsaW5nVXBkYXRlID0gcmVuZGVyUm9sbGluZ1VwZGF0ZUNvbmZpZyhwcm9wcy5yb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgLy8gdW5kZWZpbmVkIGlzIHRyZWF0ZWQgYXMgJ3RydWUnXG4gICAgaWYgKHByb3BzLmlnbm9yZVVubW9kaWZpZWRTaXplUHJvcGVydGllcyAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuYXNnVXBkYXRlUG9saWN5LmF1dG9TY2FsaW5nU2NoZWR1bGVkQWN0aW9uID0geyBpZ25vcmVVbm1vZGlmaWVkR3JvdXBTaXplUHJvcGVydGllczogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5yZXNvdXJjZVNpZ25hbENvdW50ICE9PSB1bmRlZmluZWQgfHwgcHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0U2VjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXNnQ3JlYXRpb25Qb2xpY3kucmVzb3VyY2VTaWduYWwgPSB7XG4gICAgICAgIGNvdW50OiBwcm9wcy5yZXNvdXJjZVNpZ25hbENvdW50LFxuICAgICAgICB0aW1lb3V0OiBwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXRTZWMgIT09IHVuZGVmaW5lZCA/IHJlbmRlcklzb0R1cmF0aW9uKHByb3BzLnJlc291cmNlU2lnbmFsVGltZW91dFNlYykgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW5kIHJldHVybiB0aGUgQVNHIHVwZGF0ZSBwb2xpY3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IGFzZ1VwZGF0ZVBvbGljeSgpIHtcbiAgICBpZiAodGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMudXBkYXRlUG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXV0b1NjYWxpbmdHcm91cC5vcHRpb25zLnVwZGF0ZVBvbGljeSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMudXBkYXRlUG9saWN5O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgcmV0dXJuIHRoZSBBU0cgY3JlYXRpb24gcG9saWN5XG4gICAqL1xuICBwcml2YXRlIGdldCBhc2dDcmVhdGlvblBvbGljeSgpIHtcbiAgICBpZiAodGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMuY3JlYXRpb25Qb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hdXRvU2NhbGluZ0dyb3VwLm9wdGlvbnMuY3JlYXRpb25Qb2xpY3kgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0b1NjYWxpbmdHcm91cC5vcHRpb25zLmNyZWF0aW9uUG9saWN5O1xuICB9XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdXBkYXRlIHRvIHBlcmZvcm0gb24gaW5zdGFuY2VzIGluIHRoaXMgQXV0b1NjYWxpbmdHcm91cFxuICovXG5leHBvcnQgZW51bSBVcGRhdGVUeXBlIHtcbiAgLyoqXG4gICAqIERvbid0IGRvIGFueXRoaW5nXG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnRpcmUgQXV0b1NjYWxpbmdHcm91cFxuICAgKlxuICAgKiBCdWlsZHMgYSBuZXcgQXV0b1NjYWxpbmdHcm91cCBmaXJzdCwgdGhlbiBkZWxldGUgdGhlIG9sZCBvbmUuXG4gICAqL1xuICBSZXBsYWNpbmdVcGRhdGUgPSAnUmVwbGFjZScsXG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGluc3RhbmNlcyBpbiB0aGUgQXV0b1NjYWxpbmdHcm91cC5cbiAgICovXG4gIFJvbGxpbmdVcGRhdGUgPSAnUm9sbGluZ1VwZGF0ZScsXG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBzZXR0aW5ncyB3aGVuIGEgcm9sbGluZyB1cGRhdGUgaXMgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xsaW5nVXBkYXRlQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgQVdTIENsb3VkRm9ybWF0aW9uIHVwZGF0ZXMgYXQgb25jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgbWF4QmF0Y2hTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgbXVzdCBiZSBpbiBzZXJ2aWNlIGJlZm9yZSBtb3JlIGluc3RhbmNlcyBhcmUgcmVwbGFjZWQuXG4gICAqXG4gICAqIFRoaXMgbnVtYmVyIGFmZmVjdHMgdGhlIHNwZWVkIG9mIHRoZSByZXBsYWNlbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgbWluSW5zdGFuY2VzSW5TZXJ2aWNlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMgdGhhdCBtdXN0IHNpZ25hbCBzdWNjZXNzIGZvciBhbiB1cGRhdGUgdG8gc3VjY2VlZC5cbiAgICpcbiAgICogSWYgYW4gaW5zdGFuY2UgZG9lc24ndCBzZW5kIGEgc2lnbmFsIHdpdGhpbiB0aGUgdGltZSBzcGVjaWZpZWQgaW4gdGhlXG4gICAqIHBhdXNlVGltZSBwcm9wZXJ0eSwgQVdTIENsb3VkRm9ybWF0aW9uIGFzc3VtZXMgdGhhdCB0aGUgaW5zdGFuY2Ugd2Fzbid0XG4gICAqIHVwZGF0ZWQuXG4gICAqXG4gICAqIFRoaXMgbnVtYmVyIGFmZmVjdHMgdGhlIHN1Y2Nlc3Mgb2YgdGhlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBhbHNvIGVuYWJsZSB0aGVcbiAgICogd2FpdE9uUmVzb3VyY2VTaWduYWxzIGFuZCBwYXVzZVRpbWUgcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBtaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhdXNlIHRpbWUgYWZ0ZXIgbWFraW5nIGEgY2hhbmdlIHRvIGEgYmF0Y2ggb2YgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIHRvIGdpdmUgdGhvc2UgaW5zdGFuY2VzIHRpbWUgdG8gc3RhcnQgc29mdHdhcmUgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBTcGVjaWZ5IFBhdXNlVGltZSBpbiB0aGUgSVNPODYwMSBkdXJhdGlvbiBmb3JtYXQgKGluIHRoZSBmb3JtYXRcbiAgICogUFQjSCNNI1MsIHdoZXJlIGVhY2ggIyBpcyB0aGUgbnVtYmVyIG9mIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyxcbiAgICogcmVzcGVjdGl2ZWx5KS4gVGhlIG1heGltdW0gUGF1c2VUaW1lIGlzIG9uZSBob3VyIChQVDFIKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwIGlmIHRoZSB3YWl0T25SZXNvdXJjZVNpZ25hbHMgcHJvcGVydHkgaXMgdHJ1ZSwgb3RoZXJ3aXNlIDBcbiAgICovXG4gIHBhdXNlVGltZVNlYz86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIEF1dG8gU2NhbGluZyBncm91cCB3YWl0cyBvbiBzaWduYWxzIGZyb20gbmV3IGluc3RhbmNlcyBkdXJpbmcgYW4gdXBkYXRlLlxuICAgKlxuICAgKiBBV1MgQ2xvdWRGb3JtYXRpb24gbXVzdCByZWNlaXZlIGEgc2lnbmFsIGZyb20gZWFjaCBuZXcgaW5zdGFuY2Ugd2l0aGluXG4gICAqIHRoZSBzcGVjaWZpZWQgUGF1c2VUaW1lIGJlZm9yZSBjb250aW51aW5nIHRoZSB1cGRhdGUuXG4gICAqXG4gICAqIFRvIGhhdmUgaW5zdGFuY2VzIHdhaXQgZm9yIGFuIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgaGVhbHRoIGNoZWNrIGJlZm9yZVxuICAgKiB0aGV5IHNpZ25hbCBzdWNjZXNzLCBhZGQgYSBoZWFsdGgtY2hlY2sgdmVyaWZpY2F0aW9uIGJ5IHVzaW5nIHRoZVxuICAgKiBjZm4taW5pdCBoZWxwZXIgc2NyaXB0LiBGb3IgYW4gZXhhbXBsZSwgc2VlIHRoZSB2ZXJpZnlfaW5zdGFuY2VfaGVhbHRoXG4gICAqIGNvbW1hbmQgaW4gdGhlIEF1dG8gU2NhbGluZyByb2xsaW5nIHVwZGF0ZXMgc2FtcGxlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIGlmIHlvdSBzcGVjaWZpZWQgdGhlIG1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50IHByb3BlcnR5LCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHdhaXRPblJlc291cmNlU2lnbmFscz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgQXV0byBTY2FsaW5nIHByb2Nlc3NlcyB0byBzdXNwZW5kIGR1cmluZyBhIHN0YWNrIHVwZGF0ZS5cbiAgICpcbiAgICogU3VzcGVuZGluZyBwcm9jZXNzZXMgcHJldmVudHMgQXV0byBTY2FsaW5nIGZyb20gaW50ZXJmZXJpbmcgd2l0aCBhIHN0YWNrXG4gICAqIHVwZGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgSGVhbHRoQ2hlY2ssIFJlcGxhY2VVbmhlYWx0aHksIEFaUmViYWxhbmNlLCBBbGFybU5vdGlmaWNhdGlvbiwgU2NoZWR1bGVkQWN0aW9ucy5cbiAgICovXG4gIHN1c3BlbmRQcm9jZXNzZXM/OiBTY2FsaW5nUHJvY2Vzc1tdO1xufVxuXG5leHBvcnQgZW51bSBTY2FsaW5nUHJvY2VzcyB7XG4gIExhdW5jaCA9ICdMYXVuY2gnLFxuICBUZXJtaW5hdGUgPSAnVGVybWluYXRlJyxcbiAgSGVhbHRoQ2hlY2sgPSAnSGVhbHRoQ2hlY2snLFxuICBSZXBsYWNlVW5oZWFsdGh5ID0gJ1JlcGxhY2VVbmhlYWx0aHknLFxuICBBWlJlYmFsYW5jZSA9ICdBWlJlYmFsYW5jZScsXG4gIEFsYXJtTm90aWZpY2F0aW9uID0gJ0FsYXJtTm90aWZpY2F0aW9uJyxcbiAgU2NoZWR1bGVkQWN0aW9ucyA9ICdTY2hlZHVsZWRBY3Rpb25zJyxcbiAgQWRkVG9Mb2FkQmFsYW5jZXIgPSAnQWRkVG9Mb2FkQmFsYW5jZXInXG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSByb2xsaW5nIHVwZGF0ZSBjb25maWd1cmF0aW9uIGludG8gdGhlIGFwcHJvcHJpYXRlIG9iamVjdFxuICovXG5mdW5jdGlvbiByZW5kZXJSb2xsaW5nVXBkYXRlQ29uZmlnKGNvbmZpZzogUm9sbGluZ1VwZGF0ZUNvbmZpZ3VyYXRpb24gPSB7fSk6IGNkay5BdXRvU2NhbGluZ1JvbGxpbmdVcGRhdGUge1xuICBjb25zdCB3YWl0T25SZXNvdXJjZVNpZ25hbHMgPSBjb25maWcubWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQgIT09IHVuZGVmaW5lZCA/IHRydWUgOiBmYWxzZTtcbiAgY29uc3QgcGF1c2VUaW1lU2VjID0gY29uZmlnLnBhdXNlVGltZVNlYyAhPT0gdW5kZWZpbmVkID8gY29uZmlnLnBhdXNlVGltZVNlYyA6ICh3YWl0T25SZXNvdXJjZVNpZ25hbHMgPyAzMDAgOiAwKTtcblxuICByZXR1cm4ge1xuICAgIG1heEJhdGNoU2l6ZTogY29uZmlnLm1heEJhdGNoU2l6ZSxcbiAgICBtaW5JbnN0YW5jZXNJblNlcnZpY2U6IGNvbmZpZy5taW5JbnN0YW5jZXNJblNlcnZpY2UsXG4gICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IHZhbGlkYXRlUGVyY2VudGFnZShjb25maWcubWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQpLFxuICAgIHdhaXRPblJlc291cmNlU2lnbmFscyxcbiAgICBwYXVzZVRpbWU6IHJlbmRlcklzb0R1cmF0aW9uKHBhdXNlVGltZVNlYyksXG4gICAgc3VzcGVuZFByb2Nlc3NlczogY29uZmlnLnN1c3BlbmRQcm9jZXNzZXMgIT09IHVuZGVmaW5lZCA/IGNvbmZpZy5zdXNwZW5kUHJvY2Vzc2VzIDpcbiAgICAgIC8vIFJlY29tbWVuZGVkIGxpc3Qgb2YgcHJvY2Vzc2VzIHRvIHN1c3BlbmQgZnJvbSBoZXJlOlxuICAgICAgLy8gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9wcmVtaXVtc3VwcG9ydC9rbm93bGVkZ2UtY2VudGVyL2F1dG8tc2NhbGluZy1ncm91cC1yb2xsaW5nLXVwZGF0ZXMvXG4gICAgICBbU2NhbGluZ1Byb2Nlc3MuSGVhbHRoQ2hlY2ssIFNjYWxpbmdQcm9jZXNzLlJlcGxhY2VVbmhlYWx0aHksIFNjYWxpbmdQcm9jZXNzLkFaUmViYWxhbmNlLFxuICAgICAgICBTY2FsaW5nUHJvY2Vzcy5BbGFybU5vdGlmaWNhdGlvbiwgU2NhbGluZ1Byb2Nlc3MuU2NoZWR1bGVkQWN0aW9uc10sXG4gIH07XG59XG5cbmNsYXNzIFRhZ01hbmFnZXIgZXh0ZW5kcyBjZGsuVGFnTWFuYWdlciB7XG4gIHByb3RlY3RlZCB0YWdGb3JtYXRSZXNvbHZlKHRhZ0dyb3VwczogY2RrLlRhZ0dyb3Vwcyk6IGFueSB7XG4gICAgY29uc3QgdGFncyA9IHsuLi50YWdHcm91cHMubm9uU3RpY2t5VGFncywgLi4udGFnR3JvdXBzLmFuY2VzdG9yVGFncywgLi4udGFnR3JvdXBzLnN0aWNreVRhZ3N9O1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0YWdzKS5tYXAoIChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3BhZ2F0ZUF0TGF1bmNoID0gISF0YWdHcm91cHMucHJvcGFnYXRlVGFnc1trZXldIHx8ICEhdGFnR3JvdXBzLmFuY2VzdG9yVGFnc1trZXldO1xuICAgICAgcmV0dXJuIHtrZXksIHZhbHVlOiB0YWdzW2tleV0sIHByb3BhZ2F0ZUF0TGF1bmNofTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciBhIG51bWJlciBvZiBzZWNvbmRzIHRvIGEgUFRuWCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcklzb0R1cmF0aW9uKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHJldDogc3RyaW5nW10gPSBbXTtcblxuICBpZiAoc2Vjb25kcyA+PSAzNjAwKSB7XG4gICAgcmV0LnB1c2goYCR7TWF0aC5mbG9vcihzZWNvbmRzIC8gMzYwMCl9SGApO1xuICAgIHNlY29uZHMgJT0gMzYwMDtcbiAgfVxuICBpZiAoc2Vjb25kcyA+PSA2MCkge1xuICAgIHJldC5wdXNoKGAke01hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKX1NYCk7XG4gICAgc2Vjb25kcyAlPSA2MDtcbiAgfVxuICBpZiAoc2Vjb25kcyA+IDApIHtcbiAgICByZXQucHVzaChgJHtzZWNvbmRzfVNgKTtcbiAgfVxuXG4gIHJldHVybiAnUFQnICsgcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBlcmNlbnRhZ2UoeD86IG51bWJlcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQgfHwgKDAgPD0geCAmJiB4IDw9IDEwMCkpIHsgcmV0dXJuIHg7IH1cbiAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZDogYSBwZXJjZW50YWdlIDAuLjEwMCwgZ290OiAke3h9YCk7XG59XG4iXX0=
{
"name": "@aws-cdk/aws-autoscaling",
"version": "0.14.1",
"version": "0.15.0",
"description": "The CDK Construct Library for AWS::AutoScaling",

@@ -55,9 +55,18 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.14.1",
"cdk-build-tools": "^0.14.1",
"cdk-integ-tools": "^0.14.1",
"cfn2ts": "^0.14.1",
"pkglint": "^0.14.1"
"@aws-cdk/assert": "^0.15.0",
"cdk-build-tools": "^0.15.0",
"cdk-integ-tools": "^0.15.0",
"cfn2ts": "^0.15.0",
"pkglint": "^0.15.0"
},
"dependencies": {
"@aws-cdk/aws-ec2": "^0.15.0",
"@aws-cdk/aws-elasticloadbalancing": "^0.15.0",
"@aws-cdk/aws-elasticloadbalancingv2": "^0.15.0",
"@aws-cdk/aws-iam": "^0.15.0",
"@aws-cdk/aws-sns": "^0.15.0",
"@aws-cdk/cdk": "^0.15.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-ec2": "^0.14.1",

@@ -69,4 +78,3 @@ "@aws-cdk/aws-elasticloadbalancing": "^0.14.1",

"@aws-cdk/cdk": "^0.14.1"
},
"homepage": "https://github.com/awslabs/aws-cdk"
}
}

@@ -26,29 +26,21 @@ ## The CDK Construct Library for AWS Auto-Scaling

### AMIs
### Machine Images (AMIs)
AMIs control the OS that gets launched when you start your instance.
AMIs control the OS that gets launched when you start your EC2 instance. The EC2
library contains constructs to select the AMI you want to use.
Depending on the type of AMI, you select it a different way.
The latest version of Windows images are regionally published under labels,
so you can select Windows images like this:
The latest version of Amazon Linux and Microsoft Windows images are
selectable by instantiating one of these classes:
new ec2.WindowsImage(WindowsVersion.WindowsServer2016EnglishNanoBase)
[example of creating images](test/example.images.lit.ts)
You can select the latest Amazon Linux image like this:
> NOTE: The Amazon Linux images selected will be cached in your `cdk.json`, so that your
> AutoScalingGroups don't automatically change out from under you when you're making unrelated
> changes. To update to the latest version of Amazon Linux, remove the cache entry from the `context`
> section of your `cdk.json`.
>
> We will add command-line options to make this step easier in the future.
new ec2.AmazonLinuxImage()
Other Linux images are unfortunately not currently published this way, so you have
to supply a region-to-AMI map when creating a Linux image:
machineImage: new ec2.GenericLinuxImage({
'us-east-1': 'ami-97785bed',
'eu-west-1': 'ami-12345678',
// ...
})
> NOTE: Selecting Linux images will change when the information is published in an automatically
> consumable way.
### Allowing Connections

@@ -55,0 +47,0 @@

import { Test } from 'nodeunit';
declare const _default: {
'default fleet'(test: Test): void;
'can set minSize, maxSize, desiredCapacity to 0'(test: Test): void;
'addToRolePolicy can be used to add statements to the role policy'(test: Test): void;

@@ -5,0 +6,0 @@ 'can configure replacing update'(test: Test): void;

@@ -134,2 +134,20 @@ "use strict";

},
'can set minSize, maxSize, desiredCapacity to 0'(test) {
const stack = new cdk.Stack(undefined, 'MyStack', { env: { region: 'us-east-1', account: '1234' } });
const vpc = mockVpc(stack);
new autoscaling.AutoScalingGroup(stack, 'MyFleet', {
instanceType: new ec2.InstanceTypePair(ec2.InstanceClass.M4, ec2.InstanceSize.Micro),
machineImage: new ec2.AmazonLinuxImage(),
vpc,
minSize: 0,
maxSize: 0,
desiredCapacity: 0
});
assert_1.expect(stack).to(assert_1.haveResource("AWS::AutoScaling::AutoScalingGroup", {
MinSize: "0",
MaxSize: "0",
DesiredCapacity: "0",
}));
test.done();
},
'addToRolePolicy can be used to add statements to the role policy'(test) {

@@ -302,2 +320,2 @@ const stack = new cdk.Stack(undefined, 'MyStack', { env: { region: 'us-east-1', account: '1234' } });

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdXRvLXNjYWxpbmctZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmF1dG8tc2NhbGluZy1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQXFFO0FBQ3JFLHdDQUF5QztBQUN6Qyx3Q0FBeUM7QUFDekMsb0NBQXFDO0FBRXJDLHNDQUF1QztBQW9UdkMsU0FBUyxPQUFPLENBQUMsS0FBZ0I7SUFDL0IsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO1FBQzNDLEtBQUssRUFBRSxRQUFRO1FBQ2YsaUJBQWlCLEVBQUUsQ0FBRSxLQUFLLENBQUU7UUFDNUIsZUFBZSxFQUFFLENBQUUsTUFBTSxDQUFFO1FBQzNCLGdCQUFnQixFQUFFLENBQUUsTUFBTSxDQUFFO1FBQzVCLGlCQUFpQixFQUFFLEVBQUU7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBZ0I7SUFDekMsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDaEQsZUFBZSxFQUFFLGFBQWE7S0FDL0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQTlURCxpQkFBUztJQUNQLGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2pELFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FB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LEVBQUM7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBRTNELE9BQU87UUFDUCxlQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFZLENBQUMsb0NBQW9DLEVBQUU7WUFDbEUsSUFBSSxFQUFFO2dCQUNKO29CQUNFLEdBQUcsRUFBRSxXQUFXO29CQUNoQixLQUFLLEVBQUUsTUFBTTtvQkFDYixpQkFBaUIsRUFBRSxJQUFJO2lCQUN4QjtnQkFDRDtvQkFDRSxHQUFHLEVBQUUsTUFBTTtvQkFDWCxLQUFLLEVBQUUsU0FBUztvQkFDaEIsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEI7Z0JBQ0Q7b0JBQ0UsR0FBRyxFQUFFLFVBQVU7b0JBQ2YsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLGlCQUFpQixFQUFFLEtBQUs7aUJBQ3pCO2FBQ0Y7U0FDRixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhwZWN0LCBoYXZlUmVzb3VyY2UsIFJlc291cmNlUGFydCB9IGZyb20gJ0Bhd3MtY2RrL2Fzc2VydCc7XG5pbXBvcnQgZWMyID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWVjMicpO1xuaW1wb3J0IGlhbSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1pYW0nKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgYXV0b3NjYWxpbmcgPSByZXF1aXJlKCcuLi9saWInKTtcblxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG5leHBvcnQgPSB7XG4gICdkZWZhdWx0IGZsZWV0Jyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKHVuZGVmaW5lZCwgJ015U3RhY2snLCB7IGVudjogeyByZWdpb246ICd1cy1lYXN0LTEnLCBhY2NvdW50OiAnMTIzNCcgfX0pO1xuICAgIGNvbnN0IHZwYyA9IG1vY2tWcGMoc3RhY2spO1xuXG4gICAgbmV3IGF1dG9zY2FsaW5nLkF1dG9TY2FsaW5nR3JvdXAoc3RhY2ssICdNeUZsZWV0Jywge1xuICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgZWMyLkluc3RhbmNlVHlwZVBhaXIoZWMyLkluc3RhbmNlQ2xhc3MuTTQsIGVjMi5JbnN0YW5jZVNpemUuTWljcm8pLFxuICAgICAgbWFjaGluZUltYWdlOiBuZXcgZWMyLkFtYXpvbkxpbnV4SW1hZ2UoKSxcbiAgICAgIHZwY1xuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0YWNrKS50b01hdGNoKHtcbiAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgXCJNeUZsZWV0SW5zdGFuY2VTZWN1cml0eUdyb3VwNzc0RTgyMzRcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RUMyOjpTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiR3JvdXBEZXNjcmlwdGlvblwiOiBcIk15RmxlZXQvSW5zdGFuY2VTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBFZ3Jlc3NcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJDaWRySXBcIjogXCIwLjAuMC4wLzBcIixcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IFwiQWxsb3cgYWxsIG91dGJvdW5kIHRyYWZmaWMgYnkgZGVmYXVsdFwiLFxuICAgICAgICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiBcIi0xXCIsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IFtdLFxuICAgICAgICAgICAgXCJUYWdzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjogXCJNeUZsZWV0XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcblxuICAgICAgICAgICAgXCJWcGNJZFwiOiBcIm15LXZwY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk15RmxlZXRJbnN0YW5jZVJvbGUyNUE4NEFCOFwiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpJQU06OlJvbGVcIixcbiAgICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJBc3N1bWVSb2xlUG9saWN5RG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgICBcIlN0YXRlbWVudFwiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICBcIkFjdGlvblwiOiBcInN0czpBc3N1bWVSb2xlXCIsXG4gICAgICAgICAgICBcIkVmZmVjdFwiOiBcIkFsbG93XCIsXG4gICAgICAgICAgICBcIlByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICAgIFwiU2VydmljZVwiOiBcImVjMi5hbWF6b25hd3MuY29tXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFwiVmVyc2lvblwiOiBcIjIwMTItMTAtMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk15RmxlZXRJbnN0YW5jZVByb2ZpbGU3MEE1ODQ5NlwiOiB7XG4gICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGVcIixcbiAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIlJvbGVzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIlJlZlwiOiBcIk15RmxlZXRJbnN0YW5jZVJvbGUyNUE4NEFCOFwiXG4gICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk15RmxlZXRMYXVuY2hDb25maWc1RDdGOTgwMVwiOiB7XG4gICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6QXV0b1NjYWxpbmc6OkxhdW5jaENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgXCJSZWZcIjogXCJNeUZsZWV0SW5zdGFuY2VQcm9maWxlNzBBNTg0OTZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IFwiZHVtbXlcIixcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiBcIm00Lm1pY3JvXCIsXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgIFwiTXlGbGVldEluc3RhbmNlU2VjdXJpdHlHcm91cDc3NEU4MjM0XCIsXG4gICAgICAgICAgICBcIkdyb3VwSWRcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgIFwiRm46OkJhc2U2NFwiOiBcIiMhL2Jpbi9iYXNoXFxuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVwZW5kc09uXCI6IFtcbiAgICAgICAgICBcIk15RmxlZXRJbnN0YW5jZVJvbGUyNUE4NEFCOFwiXG4gICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNeUZsZWV0QVNHODhFNTU4ODZcIjoge1xuICAgICAgICBcIlR5cGVcIjogXCJBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwXCIsXG4gICAgICAgIFwiVXBkYXRlUG9saWN5XCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nU2NoZWR1bGVkQWN0aW9uXCI6IHtcbiAgICAgICAgICBcIklnbm9yZVVubW9kaWZpZWRHcm91cFNpemVQcm9wZXJ0aWVzXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjogXCIxXCIsXG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgXCJSZWZcIjogXCJNeUZsZWV0TGF1bmNoQ29uZmlnNUQ3Rjk4MDFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJLZXlcIjogXCJOYW1lXCIsXG4gICAgICAgICAgICAgIFwiUHJvcGFnYXRlQXRMYXVuY2hcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiBcIk15RmxlZXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG5cbiAgICAgICAgICBcIk1heFNpemVcIjogXCIxXCIsXG4gICAgICAgICAgXCJNaW5TaXplXCI6IFwiMVwiLFxuICAgICAgICAgIFwiVlBDWm9uZUlkZW50aWZpZXJcIjogW1xuICAgICAgICAgICAgXCJwcmkxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FkZFRvUm9sZVBvbGljeSBjYW4gYmUgdXNlZCB0byBhZGQgc3RhdGVtZW50cyB0byB0aGUgcm9sZSBwb2xpY3knKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sodW5kZWZpbmVkLCAnTXlTdGFjaycsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0JyB9fSk7XG4gICAgY29uc3QgdnBjID0gbW9ja1ZwYyhzdGFjayk7XG5cbiAgICBjb25zdCBmbGVldCA9IG5ldyBhdXRvc2NhbGluZy5BdXRvU2NhbGluZ0dyb3VwKHN0YWNrLCAnTXlGbGVldCcsIHtcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGVjMi5JbnN0YW5jZVR5cGVQYWlyKGVjMi5JbnN0YW5jZUNsYXNzLk00LCBlYzIuSW5zdGFuY2VTaXplLk1pY3JvKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogbmV3IGVjMi5BbWF6b25MaW51eEltYWdlKCksXG4gICAgICB2cGNcbiAgICB9KTtcblxuICAgIGZsZWV0LmFkZFRvUm9sZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAuYWRkQWN0aW9uKCd0ZXN0OlNwZWNpYWxOYW1lJylcbiAgICAgIC5hZGRBbGxSZXNvdXJjZXMoKSk7XG5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIEFjdGlvbjogXCJ0ZXN0OlNwZWNpYWxOYW1lXCIsXG4gICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgIFJlc291cmNlOiBcIipcIlxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICAgIH0sXG4gICAgfSkpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJlcGxhY2luZyB1cGRhdGUnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgdXBkYXRlVHlwZTogYXV0b3NjYWxpbmcuVXBkYXRlVHlwZS5SZXBsYWNpbmdVcGRhdGUsXG4gICAgICByZXBsYWNpbmdVcGRhdGVNaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudDogNTBcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZShcIkFXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXBcIiwge1xuICAgIFVwZGF0ZVBvbGljeToge1xuICAgICAgQXV0b1NjYWxpbmdSZXBsYWNpbmdVcGRhdGU6IHtcbiAgICAgIFdpbGxSZXBsYWNlOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBDcmVhdGlvblBvbGljeToge1xuICAgICAgQXV0b1NjYWxpbmdDcmVhdGlvblBvbGljeToge1xuICAgICAgTWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IDUwXG4gICAgICB9XG4gICAgfVxuICAgIH0sIFJlc291cmNlUGFydC5Db21wbGV0ZURlZmluaXRpb24pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJvbGxpbmcgdXBkYXRlJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sodW5kZWZpbmVkLCAnTXlTdGFjaycsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0JyB9fSk7XG4gICAgY29uc3QgdnBjID0gbW9ja1ZwYyhzdGFjayk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGF1dG9zY2FsaW5nLkF1dG9TY2FsaW5nR3JvdXAoc3RhY2ssICdNeUZsZWV0Jywge1xuICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgZWMyLkluc3RhbmNlVHlwZVBhaXIoZWMyLkluc3RhbmNlQ2xhc3MuTTQsIGVjMi5JbnN0YW5jZVNpemUuTWljcm8pLFxuICAgICAgbWFjaGluZUltYWdlOiBuZXcgZWMyLkFtYXpvbkxpbnV4SW1hZ2UoKSxcbiAgICAgIHZwYyxcbiAgICAgIHVwZGF0ZVR5cGU6IGF1dG9zY2FsaW5nLlVwZGF0ZVR5cGUuUm9sbGluZ1VwZGF0ZSxcbiAgICAgIHJvbGxpbmdVcGRhdGVDb25maWd1cmF0aW9uOiB7XG4gICAgICBtaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudDogNTAsXG4gICAgICBwYXVzZVRpbWVTZWM6IDM0NVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlKFwiQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cFwiLCB7XG4gICAgVXBkYXRlUG9saWN5OiB7XG4gICAgICBcIkF1dG9TY2FsaW5nUm9sbGluZ1VwZGF0ZVwiOiB7XG4gICAgICBcIk1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50XCI6IDUwLFxuICAgICAgXCJXYWl0T25SZXNvdXJjZVNpZ25hbHNcIjogdHJ1ZSxcbiAgICAgIFwiUGF1c2VUaW1lXCI6IFwiUFQ1TTQ1U1wiLFxuICAgICAgXCJTdXNwZW5kUHJvY2Vzc2VzXCI6IFsgXCJIZWFsdGhDaGVja1wiLCBcIlJlcGxhY2VVbmhlYWx0aHlcIiwgXCJBWlJlYmFsYW5jZVwiLCBcIkFsYXJtTm90aWZpY2F0aW9uXCIsIFwiU2NoZWR1bGVkQWN0aW9uc1wiIF1cbiAgICAgIH0sXG4gICAgfVxuICAgIH0sIFJlc291cmNlUGFydC5Db21wbGV0ZURlZmluaXRpb24pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJlc291cmNlIHNpZ25hbHMnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgcmVzb3VyY2VTaWduYWxDb3VudDogNSxcbiAgICAgIHJlc291cmNlU2lnbmFsVGltZW91dFNlYzogNjY2XG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoXCJBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwXCIsIHtcbiAgICBDcmVhdGlvblBvbGljeToge1xuICAgICAgUmVzb3VyY2VTaWduYWw6IHtcbiAgICAgIENvdW50OiA1LFxuICAgICAgVGltZW91dDogJ1BUMTFNNlMnXG4gICAgICB9LFxuICAgIH1cbiAgICB9LCBSZXNvdXJjZVBhcnQuQ29tcGxldGVEZWZpbml0aW9uKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcbiAgJ2NhbiBhZGQgU2VjdXJpdHkgR3JvdXAgdG8gRmxlZXQnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBhc2cgPSBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgIH0pO1xuICAgIGFzZy5hZGRTZWN1cml0eUdyb3VwKG1vY2tTZWN1cml0eUdyb3VwKHN0YWNrKSk7XG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoXCJBV1M6OkF1dG9TY2FsaW5nOjpMYXVuY2hDb25maWd1cmF0aW9uXCIsIHtcbiAgICAgIFNlY3VyaXR5R3JvdXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJNeUZsZWV0SW5zdGFuY2VTZWN1cml0eUdyb3VwNzc0RTgyMzRcIixcbiAgICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICAnbW9zdC1zZWN1cmUnXSxcbiAgICB9KSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG4gICdjYW4gc2V0IHRhZ3MnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBhc2cgPSBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgdXBkYXRlVHlwZTogYXV0b3NjYWxpbmcuVXBkYXRlVHlwZS5Sb2xsaW5nVXBkYXRlLFxuICAgICAgcm9sbGluZ1VwZGF0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IDUwLFxuICAgICAgICBwYXVzZVRpbWVTZWM6IDM0NVxuICAgICAgfSxcbiAgICAgIHRhZ3M6IHtzdXBlcmZvb2Q6ICdhY2FpJ30sXG4gICAgfSk7XG4gICAgYXNnLnRhZ3Muc2V0VGFnKCdub3RzdXBlcicsICdjYXJhbWVsJywge3Byb3BhZ2F0ZTogZmFsc2V9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZShcIkFXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXBcIiwge1xuICAgICAgVGFnczogW1xuICAgICAgICB7XG4gICAgICAgICAgS2V5OiAnc3VwZXJmb29kJyxcbiAgICAgICAgICBWYWx1ZTogJ2FjYWknLFxuICAgICAgICAgIFByb3BhZ2F0ZUF0TGF1bmNoOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgS2V5OiAnTmFtZScsXG4gICAgICAgICAgVmFsdWU6ICdNeUZsZWV0JyxcbiAgICAgICAgICBQcm9wYWdhdGVBdExhdW5jaDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEtleTogJ25vdHN1cGVyJyxcbiAgICAgICAgICBWYWx1ZTogJ2NhcmFtZWwnLFxuICAgICAgICAgIFByb3BhZ2F0ZUF0TGF1bmNoOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9KSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBtb2NrVnBjKHN0YWNrOiBjZGsuU3RhY2spIHtcbiAgcmV0dXJuIGVjMi5WcGNOZXR3b3JrLmltcG9ydChzdGFjaywgJ015VnBjJywge1xuICAgIHZwY0lkOiAnbXktdnBjJyxcbiAgICBhdmFpbGFiaWxpdHlab25lczogWyAnYXoxJyBdLFxuICAgIHB1YmxpY1N1Ym5ldElkczogWyAncHViMScgXSxcbiAgICBwcml2YXRlU3VibmV0SWRzOiBbICdwcmkxJyBdLFxuICAgIGlzb2xhdGVkU3VibmV0SWRzOiBbXSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1vY2tTZWN1cml0eUdyb3VwKHN0YWNrOiBjZGsuU3RhY2spIHtcbiAgcmV0dXJuIGVjMi5TZWN1cml0eUdyb3VwUmVmLmltcG9ydChzdGFjaywgJ015U0cnLCB7XG4gICAgc2VjdXJpdHlHcm91cElkOiAnbW9zdC1zZWN1cmUnLFxuICB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdXRvLXNjYWxpbmctZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmF1dG8tc2NhbGluZy1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQXFFO0FBQ3JFLHdDQUF5QztBQUN6Qyx3Q0FBeUM7QUFDekMsb0NBQXFDO0FBRXJDLHNDQUF1QztBQTJVdkMsU0FBUyxPQUFPLENBQUMsS0FBZ0I7SUFDL0IsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO1FBQzNDLEtBQUssRUFBRSxRQUFRO1FBQ2YsaUJBQWlCLEVBQUUsQ0FBRSxLQUFLLENBQUU7UUFDNUIsZUFBZSxFQUFFLENBQUUsTUFBTSxDQUFFO1FBQzNCLGdCQUFnQixFQUFFLENBQUUsTUFBTSxDQUFFO1FBQzVCLGlCQUFpQixFQUFFLEVBQUU7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBZ0I7SUFDekMsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDaEQsZUFBZSxFQUFFLGFBQWE7S0FDL0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXJWRCxpQkFBUztJQUNQLGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2pELFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FB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QUFFLFdBQVc7b0JBQ2hCLEtBQUssRUFBRSxNQUFNO29CQUNiLGlCQUFpQixFQUFFLElBQUk7aUJBQ3hCO2dCQUNEO29CQUNFLEdBQUcsRUFBRSxNQUFNO29CQUNYLEtBQUssRUFBRSxTQUFTO29CQUNoQixpQkFBaUIsRUFBRSxJQUFJO2lCQUN4QjtnQkFDRDtvQkFDRSxHQUFHLEVBQUUsVUFBVTtvQkFDZixLQUFLLEVBQUUsU0FBUztvQkFDaEIsaUJBQWlCLEVBQUUsS0FBSztpQkFDekI7YUFDRjtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZSwgUmVzb3VyY2VQYXJ0IH0gZnJvbSAnQGF3cy1jZGsvYXNzZXJ0JztcbmltcG9ydCBlYzIgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtZWMyJyk7XG5pbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCBhdXRvc2NhbGluZyA9IHJlcXVpcmUoJy4uL2xpYicpO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1rZXktcXVvdGVzXG5cbmV4cG9ydCA9IHtcbiAgJ2RlZmF1bHQgZmxlZXQnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sodW5kZWZpbmVkLCAnTXlTdGFjaycsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0JyB9fSk7XG4gICAgY29uc3QgdnBjID0gbW9ja1ZwYyhzdGFjayk7XG5cbiAgICBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjXG4gICAgfSk7XG5cbiAgICBleHBlY3Qoc3RhY2spLnRvTWF0Y2goe1xuICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICBcIk15RmxlZXRJbnN0YW5jZVNlY3VyaXR5R3JvdXA3NzRFODIzNFwiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJHcm91cERlc2NyaXB0aW9uXCI6IFwiTXlGbGVldC9JbnN0YW5jZVNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cEVncmVzc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIkNpZHJJcFwiOiBcIjAuMC4wLjAvMFwiLFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjogXCJBbGxvdyBhbGwgb3V0Ym91bmQgdHJhZmZpYyBieSBkZWZhdWx0XCIsXG4gICAgICAgICAgICAgICAgXCJJcFByb3RvY29sXCI6IFwiLTFcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjogW10sXG4gICAgICAgICAgICBcIlRhZ3NcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjogXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiBcIk15RmxlZXRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuXG4gICAgICAgICAgICBcIlZwY0lkXCI6IFwibXktdnBjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTXlGbGVldEluc3RhbmNlUm9sZTI1QTg0QUI4XCI6IHtcbiAgICAgICAgICBcIlR5cGVcIjogXCJBV1M6OklBTTo6Um9sZVwiLFxuICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcIkFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudFwiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdGVtZW50XCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiQWN0aW9uXCI6IFwic3RzOkFzc3VtZVJvbGVcIixcbiAgICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICAgIFwiUHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgICAgXCJTZXJ2aWNlXCI6IFwiZWMyLmFtYXpvbmF3cy5jb21cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJWZXJzaW9uXCI6IFwiMjAxMi0xMC0xN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTXlGbGVldEluc3RhbmNlUHJvZmlsZTcwQTU4NDk2XCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiUm9sZXNcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiUmVmXCI6IFwiTXlGbGVldEluc3RhbmNlUm9sZTI1QTg0QUI4XCJcbiAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTXlGbGVldExhdW5jaENvbmZpZzVEN0Y5ODAxXCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpBdXRvU2NhbGluZzo6TGF1bmNoQ29uZmlndXJhdGlvblwiLFxuICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICBcIlJlZlwiOiBcIk15RmxlZXRJbnN0YW5jZVByb2ZpbGU3MEE1ODQ5NlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltYWdlSWRcIjogXCJkdW1teVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IFwibTQubWljcm9cIixcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJNeUZsZWV0SW5zdGFuY2VTZWN1cml0eUdyb3VwNzc0RTgyMzRcIixcbiAgICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgXCJGbjo6QmFzZTY0XCI6IFwiIyEvYmluL2Jhc2hcXG5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXBlbmRzT25cIjogW1xuICAgICAgICAgIFwiTXlGbGVldEluc3RhbmNlUm9sZTI1QTg0QUI4XCJcbiAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIk15RmxlZXRBU0c4OEU1NTg4NlwiOiB7XG4gICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXBcIixcbiAgICAgICAgXCJVcGRhdGVQb2xpY3lcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdTY2hlZHVsZWRBY3Rpb25cIjoge1xuICAgICAgICAgIFwiSWdub3JlVW5tb2RpZmllZEdyb3VwU2l6ZVByb3BlcnRpZXNcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIkRlc2lyZWRDYXBhY2l0eVwiOiBcIjFcIixcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHtcbiAgICAgICAgICBcIlJlZlwiOiBcIk15RmxlZXRMYXVuY2hDb25maWc1RDdGOTgwMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcIktleVwiOiBcIk5hbWVcIixcbiAgICAgICAgICAgICAgXCJQcm9wYWdhdGVBdExhdW5jaFwiOiB0cnVlLFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IFwiTXlGbGVldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcblxuICAgICAgICAgIFwiTWF4U2l6ZVwiOiBcIjFcIixcbiAgICAgICAgICBcIk1pblNpemVcIjogXCIxXCIsXG4gICAgICAgICAgXCJWUENab25lSWRlbnRpZmllclwiOiBbXG4gICAgICAgICAgICBcInByaTFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnY2FuIHNldCBtaW5TaXplLCBtYXhTaXplLCBkZXNpcmVkQ2FwYWNpdHkgdG8gMCcodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIG5ldyBhdXRvc2NhbGluZy5BdXRvU2NhbGluZ0dyb3VwKHN0YWNrLCAnTXlGbGVldCcsIHtcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGVjMi5JbnN0YW5jZVR5cGVQYWlyKGVjMi5JbnN0YW5jZUNsYXNzLk00LCBlYzIuSW5zdGFuY2VTaXplLk1pY3JvKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogbmV3IGVjMi5BbWF6b25MaW51eEltYWdlKCksXG4gICAgICB2cGMsXG4gICAgICBtaW5TaXplOiAwLFxuICAgICAgbWF4U2l6ZTogMCxcbiAgICAgIGRlc2lyZWRDYXBhY2l0eTogMFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoXCJBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwXCIsIHtcbiAgICAgICAgTWluU2l6ZTogXCIwXCIsXG4gICAgICAgIE1heFNpemU6IFwiMFwiLFxuICAgICAgICBEZXNpcmVkQ2FwYWNpdHk6IFwiMFwiLFxuICAgICAgfVxuICAgICkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FkZFRvUm9sZVBvbGljeSBjYW4gYmUgdXNlZCB0byBhZGQgc3RhdGVtZW50cyB0byB0aGUgcm9sZSBwb2xpY3knKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sodW5kZWZpbmVkLCAnTXlTdGFjaycsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0JyB9fSk7XG4gICAgY29uc3QgdnBjID0gbW9ja1ZwYyhzdGFjayk7XG5cbiAgICBjb25zdCBmbGVldCA9IG5ldyBhdXRvc2NhbGluZy5BdXRvU2NhbGluZ0dyb3VwKHN0YWNrLCAnTXlGbGVldCcsIHtcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGVjMi5JbnN0YW5jZVR5cGVQYWlyKGVjMi5JbnN0YW5jZUNsYXNzLk00LCBlYzIuSW5zdGFuY2VTaXplLk1pY3JvKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogbmV3IGVjMi5BbWF6b25MaW51eEltYWdlKCksXG4gICAgICB2cGNcbiAgICB9KTtcblxuICAgIGZsZWV0LmFkZFRvUm9sZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAuYWRkQWN0aW9uKCd0ZXN0OlNwZWNpYWxOYW1lJylcbiAgICAgIC5hZGRBbGxSZXNvdXJjZXMoKSk7XG5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIEFjdGlvbjogXCJ0ZXN0OlNwZWNpYWxOYW1lXCIsXG4gICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgIFJlc291cmNlOiBcIipcIlxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICAgIH0sXG4gICAgfSkpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJlcGxhY2luZyB1cGRhdGUnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgdXBkYXRlVHlwZTogYXV0b3NjYWxpbmcuVXBkYXRlVHlwZS5SZXBsYWNpbmdVcGRhdGUsXG4gICAgICByZXBsYWNpbmdVcGRhdGVNaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudDogNTBcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZShcIkFXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXBcIiwge1xuICAgIFVwZGF0ZVBvbGljeToge1xuICAgICAgQXV0b1NjYWxpbmdSZXBsYWNpbmdVcGRhdGU6IHtcbiAgICAgIFdpbGxSZXBsYWNlOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBDcmVhdGlvblBvbGljeToge1xuICAgICAgQXV0b1NjYWxpbmdDcmVhdGlvblBvbGljeToge1xuICAgICAgTWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IDUwXG4gICAgICB9XG4gICAgfVxuICAgIH0sIFJlc291cmNlUGFydC5Db21wbGV0ZURlZmluaXRpb24pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJvbGxpbmcgdXBkYXRlJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sodW5kZWZpbmVkLCAnTXlTdGFjaycsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0JyB9fSk7XG4gICAgY29uc3QgdnBjID0gbW9ja1ZwYyhzdGFjayk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGF1dG9zY2FsaW5nLkF1dG9TY2FsaW5nR3JvdXAoc3RhY2ssICdNeUZsZWV0Jywge1xuICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgZWMyLkluc3RhbmNlVHlwZVBhaXIoZWMyLkluc3RhbmNlQ2xhc3MuTTQsIGVjMi5JbnN0YW5jZVNpemUuTWljcm8pLFxuICAgICAgbWFjaGluZUltYWdlOiBuZXcgZWMyLkFtYXpvbkxpbnV4SW1hZ2UoKSxcbiAgICAgIHZwYyxcbiAgICAgIHVwZGF0ZVR5cGU6IGF1dG9zY2FsaW5nLlVwZGF0ZVR5cGUuUm9sbGluZ1VwZGF0ZSxcbiAgICAgIHJvbGxpbmdVcGRhdGVDb25maWd1cmF0aW9uOiB7XG4gICAgICBtaW5TdWNjZXNzZnVsSW5zdGFuY2VzUGVyY2VudDogNTAsXG4gICAgICBwYXVzZVRpbWVTZWM6IDM0NVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlKFwiQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cFwiLCB7XG4gICAgVXBkYXRlUG9saWN5OiB7XG4gICAgICBcIkF1dG9TY2FsaW5nUm9sbGluZ1VwZGF0ZVwiOiB7XG4gICAgICBcIk1pblN1Y2Nlc3NmdWxJbnN0YW5jZXNQZXJjZW50XCI6IDUwLFxuICAgICAgXCJXYWl0T25SZXNvdXJjZVNpZ25hbHNcIjogdHJ1ZSxcbiAgICAgIFwiUGF1c2VUaW1lXCI6IFwiUFQ1TTQ1U1wiLFxuICAgICAgXCJTdXNwZW5kUHJvY2Vzc2VzXCI6IFsgXCJIZWFsdGhDaGVja1wiLCBcIlJlcGxhY2VVbmhlYWx0aHlcIiwgXCJBWlJlYmFsYW5jZVwiLCBcIkFsYXJtTm90aWZpY2F0aW9uXCIsIFwiU2NoZWR1bGVkQWN0aW9uc1wiIF1cbiAgICAgIH0sXG4gICAgfVxuICAgIH0sIFJlc291cmNlUGFydC5Db21wbGV0ZURlZmluaXRpb24pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjYW4gY29uZmlndXJlIHJlc291cmNlIHNpZ25hbHMnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgcmVzb3VyY2VTaWduYWxDb3VudDogNSxcbiAgICAgIHJlc291cmNlU2lnbmFsVGltZW91dFNlYzogNjY2XG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoXCJBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwXCIsIHtcbiAgICBDcmVhdGlvblBvbGljeToge1xuICAgICAgUmVzb3VyY2VTaWduYWw6IHtcbiAgICAgIENvdW50OiA1LFxuICAgICAgVGltZW91dDogJ1BUMTFNNlMnXG4gICAgICB9LFxuICAgIH1cbiAgICB9LCBSZXNvdXJjZVBhcnQuQ29tcGxldGVEZWZpbml0aW9uKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcbiAgJ2NhbiBhZGQgU2VjdXJpdHkgR3JvdXAgdG8gRmxlZXQnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBhc2cgPSBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgIH0pO1xuICAgIGFzZy5hZGRTZWN1cml0eUdyb3VwKG1vY2tTZWN1cml0eUdyb3VwKHN0YWNrKSk7XG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoXCJBV1M6OkF1dG9TY2FsaW5nOjpMYXVuY2hDb25maWd1cmF0aW9uXCIsIHtcbiAgICAgIFNlY3VyaXR5R3JvdXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJNeUZsZWV0SW5zdGFuY2VTZWN1cml0eUdyb3VwNzc0RTgyMzRcIixcbiAgICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICAnbW9zdC1zZWN1cmUnXSxcbiAgICB9KSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG4gICdjYW4gc2V0IHRhZ3MnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayh1bmRlZmluZWQsICdNeVN0YWNrJywgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQnIH19KTtcbiAgICBjb25zdCB2cGMgPSBtb2NrVnBjKHN0YWNrKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBhc2cgPSBuZXcgYXV0b3NjYWxpbmcuQXV0b1NjYWxpbmdHcm91cChzdGFjaywgJ015RmxlZXQnLCB7XG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlUGFpcihlYzIuSW5zdGFuY2VDbGFzcy5NNCwgZWMyLkluc3RhbmNlU2l6ZS5NaWNybyksXG4gICAgICBtYWNoaW5lSW1hZ2U6IG5ldyBlYzIuQW1hem9uTGludXhJbWFnZSgpLFxuICAgICAgdnBjLFxuICAgICAgdXBkYXRlVHlwZTogYXV0b3NjYWxpbmcuVXBkYXRlVHlwZS5Sb2xsaW5nVXBkYXRlLFxuICAgICAgcm9sbGluZ1VwZGF0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgbWluU3VjY2Vzc2Z1bEluc3RhbmNlc1BlcmNlbnQ6IDUwLFxuICAgICAgICBwYXVzZVRpbWVTZWM6IDM0NVxuICAgICAgfSxcbiAgICAgIHRhZ3M6IHtzdXBlcmZvb2Q6ICdhY2FpJ30sXG4gICAgfSk7XG4gICAgYXNnLnRhZ3Muc2V0VGFnKCdub3RzdXBlcicsICdjYXJhbWVsJywge3Byb3BhZ2F0ZTogZmFsc2V9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZShcIkFXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXBcIiwge1xuICAgICAgVGFnczogW1xuICAgICAgICB7XG4gICAgICAgICAgS2V5OiAnc3VwZXJmb29kJyxcbiAgICAgICAgICBWYWx1ZTogJ2FjYWknLFxuICAgICAgICAgIFByb3BhZ2F0ZUF0TGF1bmNoOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgS2V5OiAnTmFtZScsXG4gICAgICAgICAgVmFsdWU6ICdNeUZsZWV0JyxcbiAgICAgICAgICBQcm9wYWdhdGVBdExhdW5jaDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEtleTogJ25vdHN1cGVyJyxcbiAgICAgICAgICBWYWx1ZTogJ2NhcmFtZWwnLFxuICAgICAgICAgIFByb3BhZ2F0ZUF0TGF1bmNoOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9KSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBtb2NrVnBjKHN0YWNrOiBjZGsuU3RhY2spIHtcbiAgcmV0dXJuIGVjMi5WcGNOZXR3b3JrLmltcG9ydChzdGFjaywgJ015VnBjJywge1xuICAgIHZwY0lkOiAnbXktdnBjJyxcbiAgICBhdmFpbGFiaWxpdHlab25lczogWyAnYXoxJyBdLFxuICAgIHB1YmxpY1N1Ym5ldElkczogWyAncHViMScgXSxcbiAgICBwcml2YXRlU3VibmV0SWRzOiBbICdwcmkxJyBdLFxuICAgIGlzb2xhdGVkU3VibmV0SWRzOiBbXSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1vY2tTZWN1cml0eUdyb3VwKHN0YWNrOiBjZGsuU3RhY2spIHtcbiAgcmV0dXJuIGVjMi5TZWN1cml0eUdyb3VwUmVmLmltcG9ydChzdGFjaywgJ015U0cnLCB7XG4gICAgc2VjdXJpdHlHcm91cElkOiAnbW9zdC1zZWN1cmUnLFxuICB9KTtcbn1cbiJdfQ==

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc