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

@aws-cdk/aws-cognito

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

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

Comparing version 0.28.0 to 0.29.0

6

lib/user-pool-client.d.ts

@@ -1,2 +0,2 @@

import cdk = require('@aws-cdk/cdk');
import { Construct, Resource } from '@aws-cdk/cdk';
import { IUserPool } from './user-pool';

@@ -44,5 +44,5 @@ /**

*/
export declare class UserPoolClient extends cdk.Construct {
export declare class UserPoolClient extends Resource {
readonly clientId: string;
constructor(scope: cdk.Construct, id: string, props: UserPoolClientProps);
constructor(scope: Construct, id: string, props: UserPoolClientProps);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("@aws-cdk/cdk");
const cdk_1 = require("@aws-cdk/cdk");
const cognito_generated_1 = require("./cognito.generated");

@@ -26,3 +26,3 @@ /**

*/
class UserPoolClient extends cdk.Construct {
class UserPoolClient extends cdk_1.Resource {
constructor(scope, id, props) {

@@ -40,2 +40,2 @@ super(scope, id);

exports.UserPoolClient = UserPoolClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItcG9vbC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvQ0FBcUM7QUFDckMsMkRBQXdEO0FBR3hEOztHQUVHO0FBQ0gsSUFBWSxRQWVYO0FBZkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsNENBQWdDLENBQUE7SUFFaEM7O09BRUc7SUFDSCxvREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILCtDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFmVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQWVuQjtBQTJCRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBRy9DLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGNBQWMsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0QsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ3JDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBZEQsd0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgeyBDZm5Vc2VyUG9vbENsaWVudCB9IGZyb20gJy4vY29nbml0by5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgSVVzZXJQb29sIH0gZnJvbSAnLi91c2VyLXBvb2wnO1xuXG4vKipcbiAqIFR5cGVzIG9mIGF1dGhlbnRpY2F0aW9uIGZsb3dcbiAqL1xuZXhwb3J0IGVudW0gQXV0aEZsb3cge1xuICAvKipcbiAgICogRW5hYmxlIGZsb3cgZm9yIHNlcnZlci1zaWRlIG9yIGFkbWluIGF1dGhlbnRpY2F0aW9uIChubyBjbGllbnQgYXBwKVxuICAgKi9cbiAgQWRtaW5Ob1NycCA9ICdBRE1JTl9OT19TUlBfQVVUSCcsXG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjdXN0b20gYXV0aGVudGljYXRpb24gZmxvd1xuICAgKi9cbiAgQ3VzdG9tRmxvd09ubHkgPSAnQ1VTVE9NX0FVVEhfRkxPV19PTkxZJyxcblxuICAvKipcbiAgICogRW5hYmxlIGF1dGggdXNpbmcgdXNlcm5hbWUgJiBwYXNzd29yZFxuICAgKi9cbiAgVXNlclBhc3N3b3JkID0gJ1VTRVJfUEFTU1dPUkRfQVVUSCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbENsaWVudFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGNsaWVudFxuICAgKiBAZGVmYXVsdCBjbG91ZGZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVzZXJQb29sIHJlc291cmNlIHRoaXMgY2xpZW50IHdpbGwgaGF2ZSBhY2Nlc3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBjbGllbnQgc2VjcmV0XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZVNlY3JldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZW5hYmxlZCBhdXRoZW50aWNhdGlvbiBmbG93c1xuICAgKiBAZGVmYXVsdCBubyBlbmFibGVkIGZsb3dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkQXV0aEZsb3dzPzogQXV0aEZsb3dbXVxufVxuXG4vKipcbiAqIERlZmluZSBhIFVzZXJQb29sIEFwcCBDbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJQb29sQ2xpZW50IGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjbGllbnRJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlclBvb2xDbGllbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB1c2VyUG9vbENsaWVudCA9IG5ldyBDZm5Vc2VyUG9vbENsaWVudCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjbGllbnROYW1lOiBwcm9wcy5jbGllbnROYW1lLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHByb3BzLmdlbmVyYXRlU2VjcmV0LFxuICAgICAgdXNlclBvb2xJZDogcHJvcHMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGV4cGxpY2l0QXV0aEZsb3dzOiBwcm9wcy5lbmFibGVkQXV0aEZsb3dzXG4gICAgfSk7XG4gICAgdGhpcy5jbGllbnRJZCA9IHVzZXJQb29sQ2xpZW50LnVzZXJQb29sQ2xpZW50SWQ7XG4gIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItcG9vbC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBbUQ7QUFDbkQsMkRBQXdEO0FBR3hEOztHQUVHO0FBQ0gsSUFBWSxRQWVYO0FBZkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsNENBQWdDLENBQUE7SUFFaEM7O09BRUc7SUFDSCxvREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILCtDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFmVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQWVuQjtBQTJCRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLGNBQVE7SUFHMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sY0FBYyxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM3RCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDckMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFkRCx3Q0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCwgUmVzb3VyY2UgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgQ2ZuVXNlclBvb2xDbGllbnQgfSBmcm9tICcuL2NvZ25pdG8uZ2VuZXJhdGVkJztcbmltcG9ydCB7IElVc2VyUG9vbCB9IGZyb20gJy4vdXNlci1wb29sJztcblxuLyoqXG4gKiBUeXBlcyBvZiBhdXRoZW50aWNhdGlvbiBmbG93XG4gKi9cbmV4cG9ydCBlbnVtIEF1dGhGbG93IHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmbG93IGZvciBzZXJ2ZXItc2lkZSBvciBhZG1pbiBhdXRoZW50aWNhdGlvbiAobm8gY2xpZW50IGFwcClcbiAgICovXG4gIEFkbWluTm9TcnAgPSAnQURNSU5fTk9fU1JQX0FVVEgnLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgY3VzdG9tIGF1dGhlbnRpY2F0aW9uIGZsb3dcbiAgICovXG4gIEN1c3RvbUZsb3dPbmx5ID0gJ0NVU1RPTV9BVVRIX0ZMT1dfT05MWScsXG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhdXRoIHVzaW5nIHVzZXJuYW1lICYgcGFzc3dvcmRcbiAgICovXG4gIFVzZXJQYXNzd29yZCA9ICdVU0VSX1BBU1NXT1JEX0FVVEgnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBvb2xDbGllbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBjbGllbnRcbiAgICogQGRlZmF1bHQgY2xvdWRmb3JtYXRpb24gZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVc2VyUG9vbCByZXNvdXJjZSB0aGlzIGNsaWVudCB3aWxsIGhhdmUgYWNjZXNzIHRvXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbDogSVVzZXJQb29sO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGdlbmVyYXRlIGEgY2xpZW50IHNlY3JldFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVTZWNyZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGVuYWJsZWQgYXV0aGVudGljYXRpb24gZmxvd3NcbiAgICogQGRlZmF1bHQgbm8gZW5hYmxlZCBmbG93c1xuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZEF1dGhGbG93cz86IEF1dGhGbG93W11cbn1cblxuLyoqXG4gKiBEZWZpbmUgYSBVc2VyUG9vbCBBcHAgQ2xpZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUG9vbENsaWVudCBleHRlbmRzIFJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVzZXJQb29sQ2xpZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdXNlclBvb2xDbGllbnQgPSBuZXcgQ2ZuVXNlclBvb2xDbGllbnQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2xpZW50TmFtZTogcHJvcHMuY2xpZW50TmFtZSxcbiAgICAgIGdlbmVyYXRlU2VjcmV0OiBwcm9wcy5nZW5lcmF0ZVNlY3JldCxcbiAgICAgIHVzZXJQb29sSWQ6IHByb3BzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBleHBsaWNpdEF1dGhGbG93czogcHJvcHMuZW5hYmxlZEF1dGhGbG93c1xuICAgIH0pO1xuICAgIHRoaXMuY2xpZW50SWQgPSB1c2VyUG9vbENsaWVudC51c2VyUG9vbENsaWVudElkO1xuICB9XG59Il19
import lambda = require('@aws-cdk/aws-lambda');
import cdk = require('@aws-cdk/cdk');
import { Construct, IResource, Resource } from '@aws-cdk/cdk';
/**

@@ -217,3 +217,3 @@ * Standard attributes

}
export interface IUserPool extends cdk.IConstruct {
export interface IUserPool extends IResource {
/**

@@ -244,3 +244,3 @@ * The physical ID of this user pool resource

*/
export declare class UserPool extends cdk.Construct implements IUserPool {
export declare class UserPool extends Resource implements IUserPool {
/**

@@ -252,3 +252,3 @@ * Import an existing user pool resource

*/
static import(scope: cdk.Construct, id: string, props: UserPoolImportProps): IUserPool;
static import(scope: Construct, id: string, props: UserPoolImportProps): IUserPool;
/**

@@ -271,3 +271,3 @@ * The physical ID of this user pool resource

private triggers;
constructor(scope: cdk.Construct, id: string, props: UserPoolProps);
constructor(scope: Construct, id: string, props?: UserPoolProps);
/**

@@ -274,0 +274,0 @@ * Attach 'Create Auth Challenge' trigger

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const iam = require("@aws-cdk/aws-iam");
const cdk = require("@aws-cdk/cdk");
const cdk_1 = require("@aws-cdk/cdk");
const cognito_generated_1 = require("./cognito.generated");

@@ -132,4 +132,4 @@ /**

*/
class UserPool extends cdk.Construct {
constructor(scope, id, props) {
class UserPool extends cdk_1.Resource {
constructor(scope, id, props = {}) {
super(scope, id);

@@ -183,3 +183,3 @@ this.triggers = {};

autoVerifiedAttributes: props.autoVerifiedAttributes,
lambdaConfig: new cdk.Token(() => this.triggers)
lambdaConfig: new cdk_1.Token(() => this.triggers)
});

@@ -208,3 +208,3 @@ this.userPoolId = userPool.userPoolId;

this.addLambdaPermission(fn, 'CreateAuthChallenge');
this.triggers = Object.assign({}, this.triggers, { createAuthChallenge: fn.functionArn });
this.triggers = { ...this.triggers, createAuthChallenge: fn.functionArn };
}

@@ -219,3 +219,3 @@ /**

this.addLambdaPermission(fn, 'CustomMessage');
this.triggers = Object.assign({}, this.triggers, { customMessage: fn.functionArn });
this.triggers = { ...this.triggers, customMessage: fn.functionArn };
}

@@ -230,3 +230,3 @@ /**

this.addLambdaPermission(fn, 'DefineAuthChallenge');
this.triggers = Object.assign({}, this.triggers, { defineAuthChallenge: fn.functionArn });
this.triggers = { ...this.triggers, defineAuthChallenge: fn.functionArn };
}

@@ -241,3 +241,3 @@ /**

this.addLambdaPermission(fn, 'PostAuthentication');
this.triggers = Object.assign({}, this.triggers, { postAuthentication: fn.functionArn });
this.triggers = { ...this.triggers, postAuthentication: fn.functionArn };
}

@@ -252,3 +252,3 @@ /**

this.addLambdaPermission(fn, 'PostConfirmation');
this.triggers = Object.assign({}, this.triggers, { postConfirmation: fn.functionArn });
this.triggers = { ...this.triggers, postConfirmation: fn.functionArn };
}

@@ -263,3 +263,3 @@ /**

this.addLambdaPermission(fn, 'PreAuthentication');
this.triggers = Object.assign({}, this.triggers, { preAuthentication: fn.functionArn });
this.triggers = { ...this.triggers, preAuthentication: fn.functionArn };
}

@@ -274,3 +274,3 @@ /**

this.addLambdaPermission(fn, 'PreSignUp');
this.triggers = Object.assign({}, this.triggers, { preSignUp: fn.functionArn });
this.triggers = { ...this.triggers, preSignUp: fn.functionArn };
}

@@ -285,10 +285,10 @@ /**

this.addLambdaPermission(fn, 'VerifyAuthChallengeResponse');
this.triggers = Object.assign({}, this.triggers, { verifyAuthChallengeResponse: fn.functionArn });
this.triggers = { ...this.triggers, verifyAuthChallengeResponse: fn.functionArn };
}
export() {
return {
userPoolId: new cdk.CfnOutput(this, 'UserPoolId', { value: this.userPoolId }).makeImportValue().toString(),
userPoolArn: new cdk.CfnOutput(this, 'UserPoolArn', { value: this.userPoolArn }).makeImportValue().toString(),
userPoolProviderName: new cdk.CfnOutput(this, 'UserPoolProviderName', { value: this.userPoolProviderName }).makeImportValue().toString(),
userPoolProviderUrl: new cdk.CfnOutput(this, 'UserPoolProviderUrl', { value: this.userPoolProviderUrl }).makeImportValue().toString()
userPoolId: new cdk_1.CfnOutput(this, 'UserPoolId', { value: this.userPoolId }).makeImportValue().toString(),
userPoolArn: new cdk_1.CfnOutput(this, 'UserPoolArn', { value: this.userPoolArn }).makeImportValue().toString(),
userPoolProviderName: new cdk_1.CfnOutput(this, 'UserPoolProviderName', { value: this.userPoolProviderName }).makeImportValue().toString(),
userPoolProviderUrl: new cdk_1.CfnOutput(this, 'UserPoolProviderUrl', { value: this.userPoolProviderUrl }).makeImportValue().toString()
};

@@ -308,3 +308,3 @@ }

*/
class ImportedUserPool extends cdk.Construct {
class ImportedUserPool extends cdk_1.Construct {
constructor(scope, id, props) {

@@ -322,2 +322,2 @@ super(scope, id);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLG9DQUFxQztBQUNyQywyREFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNILElBQVksaUJBOEdYO0FBOUdELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7Ozs7T0FJRztJQUNILDRDQUF1QixDQUFBO0lBRXZCOzs7T0FHRztJQUNILG9DQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gsK0NBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7OztPQUlHO0lBQ0gsNkNBQXdCLENBQUE7SUFFeEI7Ozs7O09BS0c7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7Ozs7T0FLRztJQUNILCtDQUEwQixDQUFBO0lBRTFCOzs7T0FHRztJQUNILGtDQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7T0FLRztJQUNILGlEQUE0QixDQUFBO0lBRTVCOzs7Ozs7T0FNRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkRBQXdDLENBQUE7SUFFeEM7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCw2Q0FBd0IsQ0FBQTtJQUV4Qjs7O09BR0c7SUFDSCx3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBOUdXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBOEc1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQW9CWDtBQXBCRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCxtREFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFD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WUFDdEMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1TUQsNEJBNE1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFpQixTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBcUIxQyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFtQixLQUEwQjtRQUN2RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRDRDLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBR3ZGLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpYW0gPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtaWFtJyk7XG5pbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHsgQ2ZuVXNlclBvb2wgfSBmcm9tICcuL2NvZ25pdG8uZ2VuZXJhdGVkJztcblxuLyoqXG4gKiBTdGFuZGFyZCBhdHRyaWJ1dGVzXG4gKiBTcGVjaWZpZWQgZm9sbG93aW5nIHRoZSBPcGVuSUQgQ29ubmVjdCBzcGVjXG4gKiBAc2VlIGh0dHBzOi8vb3BlbmlkLm5ldC9zcGVjcy9vcGVuaWQtY29ubmVjdC1jb3JlLTFfMC5odG1sI1N0YW5kYXJkQ2xhaW1zXG4gKi9cbmV4cG9ydCBlbnVtIFVzZXJQb29sQXR0cmlidXRlIHtcbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgcHJlZmVycmVkIHBvc3RhbCBhZGRyZXNzLlxuICAgKi9cbiAgQWRkcmVzcyA9ICdhZGRyZXNzJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBiaXJ0aGRheSwgcmVwcmVzZW50ZWQgYXMgYW4gSVNPIDg2MDE6MjAwNCBbSVNPODYwMeKAkTIwMDRdIFlZWVktTU0tREQgZm9ybWF0LlxuICAgKiBUaGUgeWVhciBNQVkgYmUgMDAwMCwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIG9taXR0ZWQuXG4gICAqIFRvIHJlcHJlc2VudCBvbmx5IHRoZSB5ZWFyLCBZWVlZIGZvcm1hdCBpcyBhbGxvd2VkLlxuICAgKi9cbiAgQmlydGhkYXRlID0gJ2JpcnRoZGF0ZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgcHJlZmVycmVkIGUtbWFpbCBhZGRyZXNzLlxuICAgKiBJdHMgdmFsdWUgTVVTVCBjb25mb3JtIHRvIHRoZSBSRkMgNTMyMiBbUkZDNTMyMl0gYWRkci1zcGVjIHN5bnRheC5cbiAgICovXG4gIEVtYWlsID0gJ2VtYWlsJyxcblxuICAvKipcbiAgICogU3VybmFtZShzKSBvciBsYXN0IG5hbWUocykgb2YgdGhlIEVuZC1Vc2VyLlxuICAgKiBOb3RlIHRoYXQgaW4gc29tZSBjdWx0dXJlcywgcGVvcGxlIGNhbiBoYXZlIG11bHRpcGxlIGZhbWlseSBuYW1lcyBvciBubyBmYW1pbHkgbmFtZTtcbiAgICogYWxsIGNhbiBiZSBwcmVzZW50LCB3aXRoIHRoZSBuYW1lcyBiZWluZyBzZXBhcmF0ZWQgYnkgc3BhY2UgY2hhcmFjdGVycy5cbiAgICovXG4gIEZhbWlseU5hbWUgPSAnZmFtaWx5X25hbWUnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGdlbmRlci5cbiAgICovXG4gIEdlbmRlciA9ICdnZW5kZXInLFxuXG4gIC8qKlxuICAgKiBHaXZlbiBuYW1lKHMpIG9yIGZpcnN0IG5hbWUocykgb2YgdGhlIEVuZC1Vc2VyLlxuICAgKiBOb3RlIHRoYXQgaW4gc29tZSBjdWx0dXJlcywgcGVvcGxlIGNhbiBoYXZlIG11bHRpcGxlIGdpdmVuIG5hbWVzO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgR2l2ZW5OYW1lID0gJ2dpdmVuX25hbWUnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGxvY2FsZSwgcmVwcmVzZW50ZWQgYXMgYSBCQ1A0NyBbUkZDNTY0Nl0gbGFuZ3VhZ2UgdGFnLlxuICAgKiBUaGlzIGlzIHR5cGljYWxseSBhbiBJU08gNjM5LTEgQWxwaGEtMiBbSVNPNjM54oCRMV0gbGFuZ3VhZ2UgY29kZSBpbiBsb3dlcmNhc2VcbiAgICogYW5kIGFuIElTTyAzMTY2LTEgQWxwaGEtMiBbSVNPMzE2NuKAkTFdIGNvdW50cnkgY29kZSBpbiB1cHBlcmNhc2UsIHNlcGFyYXRlZCBieSBhIGRhc2guXG4gICAqIEZvciBleGFtcGxlLCBlbi1VUyBvciBmci1DQS5cbiAgICovXG4gIExvY2FsZSA9ICdsb2NhbGUnLFxuXG4gIC8qKlxuICAgKiBNaWRkbGUgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgbWlkZGxlIG5hbWVzO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKiBBbHNvIG5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBtaWRkbGUgbmFtZXMgYXJlIG5vdCB1c2VkLlxuICAgKi9cbiAgTWlkZGxlTmFtZSA9ICdtaWRkbGVfbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgZnVsbCBuYW1lIGluIGRpc3BsYXlhYmxlIGZvcm0gaW5jbHVkaW5nIGFsbCBuYW1lIHBhcnRzLFxuICAgKiBwb3NzaWJseSBpbmNsdWRpbmcgdGl0bGVzIGFuZCBzdWZmaXhlcywgb3JkZXJlZCBhY2NvcmRpbmcgdG8gdGhlIEVuZC1Vc2VyJ3MgbG9jYWxlIGFuZCBwcmVmZXJlbmNlcy5cbiAgICovXG4gIE5hbWUgPSAnbmFtZScsXG5cbiAgLyoqXG4gICAqIENhc3VhbCBuYW1lIG9mIHRoZSBFbmQtVXNlciB0aGF0IG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBnaXZlbl9uYW1lLlxuICAgKiBGb3IgaW5zdGFuY2UsIGEgbmlja25hbWUgdmFsdWUgb2YgTWlrZSBtaWdodCBiZSByZXR1cm5lZCBhbG9uZ3NpZGUgYSBnaXZlbl9uYW1lIHZhbHVlIG9mIE1pY2hhZWwuXG4gICAqL1xuICBOaWNrbmFtZSA9ICduaWNrbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgcHJlZmVycmVkIHRlbGVwaG9uZSBudW1iZXIuXG4gICAqIEUuMTY0IFtFLjE2NF0gaXMgUkVDT01NRU5ERUQgYXMgdGhlIGZvcm1hdCBvZiB0aGlzIENsYWltLCBmb3IgZXhhbXBsZSwgKzEgKDQyNSkgNTU1LTEyMTIgb3IgKzU2ICgyKSA2ODcgMjQwMC5cbiAgICogSWYgdGhlIHBob25lIG51bWJlciBjb250YWlucyBhbiBleHRlbnNpb24sIGl0IGlzIFJFQ09NTUVOREVEIHRoYXQgdGhlIGV4dGVuc2lvbiBiZSByZXByZXNlbnRlZCB1c2luZyB0aGVcbiAgICogUkZDIDM5NjYgW1JGQzM5NjZdIGV4dGVuc2lvbiBzeW50YXgsIGZvciBleGFtcGxlLCArMSAoNjA0KSA1NTUtMTIzNDtleHQ9NTY3OC5cbiAgICovXG4gIFBob25lTnVtYmVyID0gJ3Bob25lX251bWJlcicsXG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgRW5kLVVzZXIncyBwcm9maWxlIHBpY3R1cmUuXG4gICAqIFRoaXMgVVJMIE1VU1QgcmVmZXIgdG8gYW4gaW1hZ2UgZmlsZSAoZm9yIGV4YW1wbGUsIGEgUE5HLCBKUEVHLCBvciBHSUYgaW1hZ2UgZmlsZSksXG4gICAqIHJhdGhlciB0aGFuIHRvIGEgV2ViIHBhZ2UgY29udGFpbmluZyBhbiBpbWFnZS5cbiAgICogTm90ZSB0aGF0IHRoaXMgVVJMIFNIT1VMRCBzcGVjaWZpY2FsbHkgcmVmZXJlbmNlIGEgcHJvZmlsZSBwaG90byBvZiB0aGUgRW5kLVVzZXJcbiAgICogc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgd2hlbiBkZXNjcmliaW5nIHRoZSBFbmQtVXNlciwgcmF0aGVyIHRoYW4gYW4gYXJiaXRyYXJ5IHBob3RvIHRha2VuIGJ5IHRoZSBFbmQtVXNlclxuICAgKi9cbiAgUGljdHVyZSA9ICdwaWN0dXJlJyxcblxuICAvKipcbiAgICogU2hvcnRoYW5kIG5hbWUgYnkgd2hpY2ggdGhlIEVuZC1Vc2VyIHdpc2hlcyB0byBiZSByZWZlcnJlZCB0by5cbiAgICovXG4gIFByZWZlcnJlZFVzZXJuYW1lID0gJ3ByZWZlcnJlZF91c2VybmFtZScsXG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgRW5kLVVzZXIncyBwcm9maWxlIHBhZ2UuIFRoZSBjb250ZW50cyBvZiB0aGlzIFdlYiBwYWdlIFNIT1VMRCBiZSBhYm91dCB0aGUgRW5kLVVzZXIuXG4gICAqL1xuICBQcm9maWxlID0gJ3Byb2ZpbGUnLFxuXG4gIC8qKlxuICAgKiBUaGUgRW5kLVVzZXIncyB0aW1lIHpvbmVcbiAgICovXG4gIFRpbWV6b25lID0gJ3RpbWV6b25lJyxcblxuICAvKipcbiAgICogVGltZSB0aGUgRW5kLVVzZXIncyBpbmZvcm1hdGlvbiB3YXMgbGFzdCB1cGRhdGVkLlxuICAgKiBJdHMgdmFsdWUgaXMgYSBKU09OIG51bWJlciByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzIGZyb20gMTk3MC0wMS0wMVQwOjA6MFpcbiAgICogYXMgbWVhc3VyZWQgaW4gVVRDIHVudGlsIHRoZSBkYXRlL3RpbWUuXG4gICAqL1xuICBVcGRhdGVkQXQgPSAndXBkYXRlZF9hdCcsXG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgRW5kLVVzZXIncyBXZWIgcGFnZSBvciBibG9nLlxuICAgKiBUaGlzIFdlYiBwYWdlIFNIT1VMRCBjb250YWluIGluZm9ybWF0aW9uIHB1Ymxpc2hlZCBieSB0aGUgRW5kLVVzZXIgb3IgYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIEVuZC1Vc2VyIGlzIGFmZmlsaWF0ZWQgd2l0aC5cbiAgICovXG4gIFdlYnNpdGUgPSAnd2Vic2l0ZSdcbn1cblxuLyoqXG4gKiBNZXRob2RzIG9mIHVzZXIgc2lnbi1pblxuICovXG5leHBvcnQgZW51bSBTaWduSW5UeXBlIHtcbiAgLyoqXG4gICAqIEVuZC11c2VyIHdpbGwgc2lnbiBpbiB3aXRoIGEgdXNlcm5hbWUsIHdpdGggb3B0aW9uYWwgYWxpYXNlc1xuICAgKi9cbiAgVXNlcm5hbWUsXG5cbiAgLyoqXG4gICAqIEVuZC11c2VyIHdpbGwgc2lnbiBpbiB1c2luZyBhbiBlbWFpbCBhZGRyZXNzXG4gICAqL1xuICBFbWFpbCxcblxuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHVzaW5nIGEgcGhvbmUgbnVtYmVyXG4gICAqL1xuICBQaG9uZSxcblxuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHVzaW5nIGVpdGhlciBhbiBlbWFpbCBhZGRyZXNzIG9yIHBob25lIG51bWJlclxuICAgKi9cbiAgRW1haWxPclBob25lXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBvb2xUcmlnZ2VycyB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jcmVhdGUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQXV0aENoYWxsZW5nZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIE1lc3NhZ2UgQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWN1c3RvbS1tZXNzYWdlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbU1lc3NhZ2U/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtZGVmaW5lLWF1dGgtY2hhbGxlbmdlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGRlZmluZUF1dGhDaGFsbGVuZ2U/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHBvc3QtYXV0aGVudGljYXRpb24gQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcG9zdEF1dGhlbnRpY2F0aW9uPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBwb3N0LWNvbmZpcm1hdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcG9zdC1jb25maXJtYXRpb24uaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcG9zdENvbmZpcm1hdGlvbj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcHJlLWF1dGhlbnRpY2F0aW9uIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlQXV0aGVudGljYXRpb24/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHByZS1yZWdpc3RyYXRpb24gQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXByZS1zaWduLXVwLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHByZVNpZ25VcD86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgcmVzcG9uc2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtdmVyaWZ5LWF1dGgtY2hhbGxlbmdlLXJlc3BvbnNlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEluZGV4IHNpZ25hdHVyZVxuICAgKi9cbiAgW3RyaWdnZXI6IHN0cmluZ106IGxhbWJkYS5JRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBvb2xQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB1c2VyIHBvb2xcbiAgICogQGRlZmF1bHQgdW5pcXVlIElEXG4gICAqL1xuICByZWFkb25seSBwb29sTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgZm9yIHVzZXIgcmVnaXN0cmF0aW9uICYgc2lnbiBpbi5cbiAgICogQWxsb3dzIGVpdGhlciB1c2VybmFtZSB3aXRoIGFsaWFzZXMgT1Igc2lnbiBpbiB3aXRoIGVtYWlsLCBwaG9uZSwgb3IgYm90aC5cbiAgICogQGRlZmF1bHQgU2lnbkluVHlwZS5VU0VSTkFNRVxuICAgKi9cbiAgcmVhZG9ubHkgc2lnbkluVHlwZT86IFNpZ25JblR5cGU7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgdG8gYWxsb3cgYXMgdXNlcm5hbWUgYWxpYXMuXG4gICAqIE9ubHkgdmFsaWQgaWYgc2lnbkluVHlwZSBpcyBVU0VSTkFNRVxuICAgKiBAZGVmYXVsdCBubyBhbGlhc1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXM/OiBVc2VyUG9vbEF0dHJpYnV0ZVtdO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGVzIHdoaWNoIENvZ25pdG8gd2lsbCBhdXRvbWF0aWNhbGx5IHNlbmQgYSB2ZXJpZmljYXRpb24gbWVzc2FnZSB0by5cbiAgICogTXVzdCBiZSBlaXRoZXIgRU1BSUwsIFBIT05FLCBvciBib3RoLlxuICAgKiBAZGVmYXVsdCBubyBhdXRvIHZlcmlmaWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1ZlcmlmaWVkQXR0cmlidXRlcz86IFVzZXJQb29sQXR0cmlidXRlW107XG5cbiAgLyoqXG4gICAqIExhbWJkYSBmdW5jdGlvbnMgdG8gdXNlIGZvciBzdXBwb3J0ZWQgQ29nbml0byB0cmlnZ2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVRyaWdnZXJzPzogVXNlclBvb2xUcmlnZ2Vycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbEltcG9ydFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiBhbiBleGlzdGluZyB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgaW1wb3J0ZWQgdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdmlkZXIgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbFByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXNlclBvb2wgZXh0ZW5kcyBjZGsuSUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIHVzZXIgcG9vbCByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIG5hbWUgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBVUkwgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwb3J0cyBhIFVzZXIgUG9vbCBmcm9tIHRoaXMgc3RhY2tcbiAgICogQHJldHVybnMgdXNlciBwb29sIHByb3BzIHRoYXQgY2FuIGJlIGltcG9ydGVkIGludG8gYW5vdGhlciBzdGFja1xuICAgKi9cbiAgZXhwb3J0KCk6IFVzZXJQb29sSW1wb3J0UHJvcHM7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgQ29nbml0byBVc2VyIFBvb2xcbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJQb29sIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCBpbXBsZW1lbnRzIElVc2VyUG9vbCB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgdXNlciBwb29sIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIHByb3BzIEltcG9ydGVkIHVzZXIgcG9vbCBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGltcG9ydChzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVzZXJQb29sSW1wb3J0UHJvcHMpOiBJVXNlclBvb2wge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRVc2VyUG9vbChzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgcG9vbCBwcm92aWRlciBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBwb29sIHByb3ZpZGVyIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICBwcml2YXRlIHRyaWdnZXJzOiBDZm5Vc2VyUG9vbC5MYW1iZGFDb25maWdQcm9wZXJ0eSA9IHsgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVzZXJQb29sUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IGFsaWFzQXR0cmlidXRlczogVXNlclBvb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgdXNlcm5hbWVBdHRyaWJ1dGVzOiBVc2VyUG9vbEF0dHJpYnV0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzICE9IG51bGwgJiYgcHJvcHMuc2lnbkluVHlwZSAhPT0gU2lnbkluVHlwZS5Vc2VybmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMnIGNhbiBvbmx5IGJlIHNldCB3aXRoIGEgc2lnbkluVHlwZSBvZiAnVVNFUk5BTUUnYCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzXG4gICAgICAmJiAhcHJvcHMudXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMuZXZlcnkoYSA9PiB7XG4gICAgICAgIHJldHVybiBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5FbWFpbCB8fCBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5QaG9uZU51bWJlciB8fCBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5QcmVmZXJyZWRVc2VybmFtZTtcbiAgICAgIH0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCd1c2VybmFtZUFsaWFzQXR0cmlidXRlcycgY2FuIG9ubHkgaW5jbHVkZSBFTUFJTCwgUEhPTkVfTlVNQkVSLCBvciBQUkVGRVJSRURfVVNFUk5BTUVgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuYXV0b1ZlcmlmaWVkQXR0cmlidXRlc1xuICAgICAgJiYgIXByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXMuZXZlcnkoYSA9PiBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5FbWFpbCB8fCBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5QaG9uZU51bWJlcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ2F1dG9WZXJpZmllZEF0dHJpYnV0ZXMnIGNhbiBvbmx5IGluY2x1ZGUgRU1BSUwgb3IgUEhPTkVfTlVNQkVSYCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwcm9wcy5zaWduSW5UeXBlKSB7XG4gICAgICBjYXNlIFNpZ25JblR5cGUuVXNlcm5hbWU6XG4gICAgICAgIGFsaWFzQXR0cmlidXRlcyA9IHByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTaWduSW5UeXBlLkVtYWlsOlxuICAgICAgICB1c2VybmFtZUF0dHJpYnV0ZXMgPSBbVXNlclBvb2xBdHRyaWJ1dGUuRW1haWxdO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTaWduSW5UeXBlLlBob25lOlxuICAgICAgICB1c2VybmFtZUF0dHJpYnV0ZXMgPSBbVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXJdO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTaWduSW5UeXBlLkVtYWlsT3JQaG9uZTpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLkVtYWlsLCBVc2VyUG9vbEF0dHJpYnV0ZS5QaG9uZU51bWJlcl07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhbGlhc0F0dHJpYnV0ZXMgPSBwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmxhbWJkYVRyaWdnZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMocHJvcHMubGFtYmRhVHJpZ2dlcnMpKSB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBwcm9wcy5sYW1iZGFUcmlnZ2Vyc1t0XTtcbiAgICAgICAgaWYgKHRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbih0cmlnZ2VyIGFzIGxhbWJkYS5JRnVuY3Rpb24sIHQpO1xuICAgICAgICAgICh0aGlzLnRyaWdnZXJzIGFzIGFueSlbdF0gPSAodHJpZ2dlciBhcyBsYW1iZGEuSUZ1bmN0aW9uKS5mdW5jdGlvbkFybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHVzZXJQb29sID0gbmV3IENmblVzZXJQb29sKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHVzZXJQb29sTmFtZTogcHJvcHMucG9vbE5hbWUgfHwgdGhpcy5ub2RlLnVuaXF1ZUlkLFxuICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzLFxuICAgICAgYWxpYXNBdHRyaWJ1dGVzLFxuICAgICAgYXV0b1ZlcmlmaWVkQXR0cmlidXRlczogcHJvcHMuYXV0b1ZlcmlmaWVkQXR0cmlidXRlcyxcbiAgICAgIGxhbWJkYUNvbmZpZzogbmV3IGNkay5Ub2tlbigoKSA9PiB0aGlzLnRyaWdnZXJzKVxuICAgIH0pO1xuICAgIHRoaXMudXNlclBvb2xJZCA9IHVzZXJQb29sLnVzZXJQb29sSWQ7XG4gICAgdGhpcy51c2VyUG9vbEFybiA9IHVzZXJQb29sLnVzZXJQb29sQXJuO1xuICAgIHRoaXMudXNlclBvb2xQcm92aWRlck5hbWUgPSB1c2VyUG9vbC51c2VyUG9vbFByb3ZpZGVyTmFtZTtcbiAgICB0aGlzLnVzZXJQb29sUHJvdmlkZXJVcmwgPSB1c2VyUG9vbC51c2VyUG9vbFByb3ZpZGVyVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnQ3JlYXRlIEF1dGggQ2hhbGxlbmdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jcmVhdGUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvbkNyZWF0ZUF1dGhDaGFsbGVuZ2UoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdDcmVhdGVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgY3JlYXRlQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ0N1c3RvbSBNZXNzYWdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jdXN0b20tbWVzc2FnZS5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tTWVzc2FnZShmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ0N1c3RvbU1lc3NhZ2UnKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBjdXN0b21NZXNzYWdlOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnRGVmaW5lIEF1dGggQ2hhbGxlbmdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1kZWZpbmUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvbkRlZmluZUF1dGhDaGFsbGVuZ2UoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdEZWZpbmVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgZGVmaW5lQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQXV0aGVudGljYXRpb24nIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblBvc3RBdXRoZW50aWNhdGlvbihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1Bvc3RBdXRoZW50aWNhdGlvbicpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHBvc3RBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQ29uZmlybWF0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWNvbmZpcm1hdGlvbi5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uUG9zdENvbmZpcm1hdGlvbihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1Bvc3RDb25maXJtYXRpb24nKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwb3N0Q29uZmlybWF0aW9uOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnUHJlIEF1dGhlbnRpY2F0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblByZUF1dGhlbnRpY2F0aW9uKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlQXV0aGVudGljYXRpb24nKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwcmVBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1ByZSBTaWduIFVwJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtc2lnbi11cC5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uUHJlU2lnblVwKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlU2lnblVwJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcHJlU2lnblVwOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnVmVyaWZ5IEF1dGggQ2hhbGxlbmdlIFJlc3BvbnNlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS12ZXJpZnktYXV0aC1jaGFsbGVuZ2UtcmVzcG9uc2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZShmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1ZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZScpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIHB1YmxpYyBleHBvcnQoKTogVXNlclBvb2xJbXBvcnRQcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJQb29sSWQ6IG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbElkJywgeyB2YWx1ZTogdGhpcy51c2VyUG9vbElkIH0pLm1ha2VJbXBvcnRWYWx1ZSgpLnRvU3RyaW5nKCksXG4gICAgICB1c2VyUG9vbEFybjogbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sQXJuJywgeyB2YWx1ZTogdGhpcy51c2VyUG9vbEFybiB9KS5tYWtlSW1wb3J0VmFsdWUoKS50b1N0cmluZygpLFxuICAgICAgdXNlclBvb2xQcm92aWRlck5hbWU6IG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbFByb3ZpZGVyTmFtZScsIHsgdmFsdWU6IHRoaXMudXNlclBvb2xQcm92aWRlck5hbWUgfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKSxcbiAgICAgIHVzZXJQb29sUHJvdmlkZXJVcmw6IG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbFByb3ZpZGVyVXJsJywgeyB2YWx1ZTogdGhpcy51c2VyUG9vbFByb3ZpZGVyVXJsIH0pLm1ha2VJbXBvcnRWYWx1ZSgpLnRvU3RyaW5nKClcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMYW1iZGFQZXJtaXNzaW9uKGZuOiBsYW1iZGEuSUZ1bmN0aW9uLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemUgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcbiAgICBmbi5hZGRQZXJtaXNzaW9uKGAke25vcm1hbGl6ZX1Db2duaXRvYCwge1xuICAgICAgcHJpbmNpcGFsOiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2NvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHNvdXJjZUFybjogdGhpcy51c2VyUG9vbEFyblxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogRGVmaW5lIGEgdXNlciBwb29sIHdoaWNoIGhhcyBiZWVuIGRlY2xhcmVkIGluIGFub3RoZXIgc3RhY2tcbiAqL1xuY2xhc3MgSW1wb3J0ZWRVc2VyUG9vbCBleHRlbmRzIGNkay5Db25zdHJ1Y3QgaW1wbGVtZW50cyBJVXNlclBvb2wge1xuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgaW1wb3J0ZWQgdXNlciBwb29sXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIG5hbWUgb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogVXNlclBvb2xJbXBvcnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJQb29sSWQgPSBwcm9wcy51c2VyUG9vbElkO1xuICAgIHRoaXMudXNlclBvb2xBcm4gPSBwcm9wcy51c2VyUG9vbEFybjtcbiAgICB0aGlzLnVzZXJQb29sUHJvdmlkZXJOYW1lID0gcHJvcHMudXNlclBvb2xQcm92aWRlck5hbWU7XG4gICAgdGhpcy51c2VyUG9vbFByb3ZpZGVyVXJsID0gcHJvcHMudXNlclBvb2xQcm92aWRlclVybDtcbiAgfVxuXG4gIHB1YmxpYyBleHBvcnQoKTogVXNlclBvb2xJbXBvcnRQcm9wcyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLHNDQUFnRjtBQUNoRiwyREFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNILElBQVksaUJBOEdYO0FBOUdELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7Ozs7T0FJRztJQUNILDRDQUF1QixDQUFBO0lBRXZCOzs7T0FHRztJQUNILG9DQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gsK0NBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7OztPQUlHO0lBQ0gsNkNBQXdCLENBQUE7SUFFeEI7Ozs7O09BS0c7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7Ozs7T0FLRztJQUNILCtDQUEwQixDQUFBO0lBRTFCOzs7T0FHRztJQUNILGtDQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7T0FLRztJQUNILGlEQUE0QixDQUFBO0lBRTVCOzs7Ozs7T0FNRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkRBQXdDLENBQUE7SUFFeEM7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCw2Q0FBd0IsQ0FBQTtJQUV4Qjs7O09BR0c7SUFDSCx3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBOUdXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBOEc1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQW9CWDtBQXBCRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCxtREFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFD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RyxTQUFTLFNBQVMsRUFBRTtZQUN0QyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUM7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVNRCw0QkE0TUM7QUFFRDs7R0FFRztBQUNILE1BQU0sZ0JBQWlCLFNBQVEsZUFBUztJQXFCdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBbUIsS0FBMEI7UUFDbkYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUR3QyxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUduRixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGxhbWJkYSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnKTtcbmltcG9ydCB7IENmbk91dHB1dCwgQ29uc3RydWN0LCBJUmVzb3VyY2UsIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2Nkayc7XG5pbXBvcnQgeyBDZm5Vc2VyUG9vbCB9IGZyb20gJy4vY29nbml0by5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIFN0YW5kYXJkIGF0dHJpYnV0ZXNcbiAqIFNwZWNpZmllZCBmb2xsb3dpbmcgdGhlIE9wZW5JRCBDb25uZWN0IHNwZWNcbiAqIEBzZWUgaHR0cHM6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LWNvcmUtMV8wLmh0bWwjU3RhbmRhcmRDbGFpbXNcbiAqL1xuZXhwb3J0IGVudW0gVXNlclBvb2xBdHRyaWJ1dGUge1xuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgcG9zdGFsIGFkZHJlc3MuXG4gICAqL1xuICBBZGRyZXNzID0gJ2FkZHJlc3MnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGJpcnRoZGF5LCByZXByZXNlbnRlZCBhcyBhbiBJU08gODYwMToyMDA0IFtJU084NjAx4oCRMjAwNF0gWVlZWS1NTS1ERCBmb3JtYXQuXG4gICAqIFRoZSB5ZWFyIE1BWSBiZSAwMDAwLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgb21pdHRlZC5cbiAgICogVG8gcmVwcmVzZW50IG9ubHkgdGhlIHllYXIsIFlZWVkgZm9ybWF0IGlzIGFsbG93ZWQuXG4gICAqL1xuICBCaXJ0aGRhdGUgPSAnYmlydGhkYXRlJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgZS1tYWlsIGFkZHJlc3MuXG4gICAqIEl0cyB2YWx1ZSBNVVNUIGNvbmZvcm0gdG8gdGhlIFJGQyA1MzIyIFtSRkM1MzIyXSBhZGRyLXNwZWMgc3ludGF4LlxuICAgKi9cbiAgRW1haWwgPSAnZW1haWwnLFxuXG4gIC8qKlxuICAgKiBTdXJuYW1lKHMpIG9yIGxhc3QgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgZmFtaWx5IG5hbWVzIG9yIG5vIGZhbWlseSBuYW1lO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgRmFtaWx5TmFtZSA9ICdmYW1pbHlfbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgZ2VuZGVyLlxuICAgKi9cbiAgR2VuZGVyID0gJ2dlbmRlcicsXG5cbiAgLyoqXG4gICAqIEdpdmVuIG5hbWUocykgb3IgZmlyc3QgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgZ2l2ZW4gbmFtZXM7XG4gICAqIGFsbCBjYW4gYmUgcHJlc2VudCwgd2l0aCB0aGUgbmFtZXMgYmVpbmcgc2VwYXJhdGVkIGJ5IHNwYWNlIGNoYXJhY3RlcnMuXG4gICAqL1xuICBHaXZlbk5hbWUgPSAnZ2l2ZW5fbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgbG9jYWxlLCByZXByZXNlbnRlZCBhcyBhIEJDUDQ3IFtSRkM1NjQ2XSBsYW5ndWFnZSB0YWcuXG4gICAqIFRoaXMgaXMgdHlwaWNhbGx5IGFuIElTTyA2MzktMSBBbHBoYS0yIFtJU082MznigJExXSBsYW5ndWFnZSBjb2RlIGluIGxvd2VyY2FzZVxuICAgKiBhbmQgYW4gSVNPIDMxNjYtMSBBbHBoYS0yIFtJU08zMTY24oCRMV0gY291bnRyeSBjb2RlIGluIHVwcGVyY2FzZSwgc2VwYXJhdGVkIGJ5IGEgZGFzaC5cbiAgICogRm9yIGV4YW1wbGUsIGVuLVVTIG9yIGZyLUNBLlxuICAgKi9cbiAgTG9jYWxlID0gJ2xvY2FsZScsXG5cbiAgLyoqXG4gICAqIE1pZGRsZSBuYW1lKHMpIG9mIHRoZSBFbmQtVXNlci5cbiAgICogTm90ZSB0aGF0IGluIHNvbWUgY3VsdHVyZXMsIHBlb3BsZSBjYW4gaGF2ZSBtdWx0aXBsZSBtaWRkbGUgbmFtZXM7XG4gICAqIGFsbCBjYW4gYmUgcHJlc2VudCwgd2l0aCB0aGUgbmFtZXMgYmVpbmcgc2VwYXJhdGVkIGJ5IHNwYWNlIGNoYXJhY3RlcnMuXG4gICAqIEFsc28gbm90ZSB0aGF0IGluIHNvbWUgY3VsdHVyZXMsIG1pZGRsZSBuYW1lcyBhcmUgbm90IHVzZWQuXG4gICAqL1xuICBNaWRkbGVOYW1lID0gJ21pZGRsZV9uYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBmdWxsIG5hbWUgaW4gZGlzcGxheWFibGUgZm9ybSBpbmNsdWRpbmcgYWxsIG5hbWUgcGFydHMsXG4gICAqIHBvc3NpYmx5IGluY2x1ZGluZyB0aXRsZXMgYW5kIHN1ZmZpeGVzLCBvcmRlcmVkIGFjY29yZGluZyB0byB0aGUgRW5kLVVzZXIncyBsb2NhbGUgYW5kIHByZWZlcmVuY2VzLlxuICAgKi9cbiAgTmFtZSA9ICduYW1lJyxcblxuICAvKipcbiAgICogQ2FzdWFsIG5hbWUgb2YgdGhlIEVuZC1Vc2VyIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGdpdmVuX25hbWUuXG4gICAqIEZvciBpbnN0YW5jZSwgYSBuaWNrbmFtZSB2YWx1ZSBvZiBNaWtlIG1pZ2h0IGJlIHJldHVybmVkIGFsb25nc2lkZSBhIGdpdmVuX25hbWUgdmFsdWUgb2YgTWljaGFlbC5cbiAgICovXG4gIE5pY2tuYW1lID0gJ25pY2tuYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgdGVsZXBob25lIG51bWJlci5cbiAgICogRS4xNjQgW0UuMTY0XSBpcyBSRUNPTU1FTkRFRCBhcyB0aGUgZm9ybWF0IG9mIHRoaXMgQ2xhaW0sIGZvciBleGFtcGxlLCArMSAoNDI1KSA1NTUtMTIxMiBvciArNTYgKDIpIDY4NyAyNDAwLlxuICAgKiBJZiB0aGUgcGhvbmUgbnVtYmVyIGNvbnRhaW5zIGFuIGV4dGVuc2lvbiwgaXQgaXMgUkVDT01NRU5ERUQgdGhhdCB0aGUgZXh0ZW5zaW9uIGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZVxuICAgKiBSRkMgMzk2NiBbUkZDMzk2Nl0gZXh0ZW5zaW9uIHN5bnRheCwgZm9yIGV4YW1wbGUsICsxICg2MDQpIDU1NS0xMjM0O2V4dD01Njc4LlxuICAgKi9cbiAgUGhvbmVOdW1iZXIgPSAncGhvbmVfbnVtYmVyJyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIHByb2ZpbGUgcGljdHVyZS5cbiAgICogVGhpcyBVUkwgTVVTVCByZWZlciB0byBhbiBpbWFnZSBmaWxlIChmb3IgZXhhbXBsZSwgYSBQTkcsIEpQRUcsIG9yIEdJRiBpbWFnZSBmaWxlKSxcbiAgICogcmF0aGVyIHRoYW4gdG8gYSBXZWIgcGFnZSBjb250YWluaW5nIGFuIGltYWdlLlxuICAgKiBOb3RlIHRoYXQgdGhpcyBVUkwgU0hPVUxEIHNwZWNpZmljYWxseSByZWZlcmVuY2UgYSBwcm9maWxlIHBob3RvIG9mIHRoZSBFbmQtVXNlclxuICAgKiBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB3aGVuIGRlc2NyaWJpbmcgdGhlIEVuZC1Vc2VyLCByYXRoZXIgdGhhbiBhbiBhcmJpdHJhcnkgcGhvdG8gdGFrZW4gYnkgdGhlIEVuZC1Vc2VyXG4gICAqL1xuICBQaWN0dXJlID0gJ3BpY3R1cmUnLFxuXG4gIC8qKlxuICAgKiBTaG9ydGhhbmQgbmFtZSBieSB3aGljaCB0aGUgRW5kLVVzZXIgd2lzaGVzIHRvIGJlIHJlZmVycmVkIHRvLlxuICAgKi9cbiAgUHJlZmVycmVkVXNlcm5hbWUgPSAncHJlZmVycmVkX3VzZXJuYW1lJyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIHByb2ZpbGUgcGFnZS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgV2ViIHBhZ2UgU0hPVUxEIGJlIGFib3V0IHRoZSBFbmQtVXNlci5cbiAgICovXG4gIFByb2ZpbGUgPSAncHJvZmlsZScsXG5cbiAgLyoqXG4gICAqIFRoZSBFbmQtVXNlcidzIHRpbWUgem9uZVxuICAgKi9cbiAgVGltZXpvbmUgPSAndGltZXpvbmUnLFxuXG4gIC8qKlxuICAgKiBUaW1lIHRoZSBFbmQtVXNlcidzIGluZm9ybWF0aW9uIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEl0cyB2YWx1ZSBpcyBhIEpTT04gbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZnJvbSAxOTcwLTAxLTAxVDA6MDowWlxuICAgKiBhcyBtZWFzdXJlZCBpbiBVVEMgdW50aWwgdGhlIGRhdGUvdGltZS5cbiAgICovXG4gIFVwZGF0ZWRBdCA9ICd1cGRhdGVkX2F0JyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIFdlYiBwYWdlIG9yIGJsb2cuXG4gICAqIFRoaXMgV2ViIHBhZ2UgU0hPVUxEIGNvbnRhaW4gaW5mb3JtYXRpb24gcHVibGlzaGVkIGJ5IHRoZSBFbmQtVXNlciBvciBhbiBvcmdhbml6YXRpb24gdGhhdCB0aGUgRW5kLVVzZXIgaXMgYWZmaWxpYXRlZCB3aXRoLlxuICAgKi9cbiAgV2Vic2l0ZSA9ICd3ZWJzaXRlJ1xufVxuXG4vKipcbiAqIE1ldGhvZHMgb2YgdXNlciBzaWduLWluXG4gKi9cbmV4cG9ydCBlbnVtIFNpZ25JblR5cGUge1xuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHdpdGggYSB1c2VybmFtZSwgd2l0aCBvcHRpb25hbCBhbGlhc2VzXG4gICAqL1xuICBVc2VybmFtZSxcblxuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHVzaW5nIGFuIGVtYWlsIGFkZHJlc3NcbiAgICovXG4gIEVtYWlsLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgYSBwaG9uZSBudW1iZXJcbiAgICovXG4gIFBob25lLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgZWl0aGVyIGFuIGVtYWlsIGFkZHJlc3Mgb3IgcGhvbmUgbnVtYmVyXG4gICAqL1xuICBFbWFpbE9yUGhvbmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbFRyaWdnZXJzIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWNyZWF0ZS1hdXRoLWNoYWxsZW5nZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBdXRoQ2hhbGxlbmdlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBjdXN0b20gTWVzc2FnZSBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtY3VzdG9tLW1lc3NhZ2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1kZWZpbmUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5lQXV0aENoYWxsZW5nZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcG9zdC1hdXRoZW50aWNhdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcG9zdC1hdXRoZW50aWNhdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwb3N0QXV0aGVudGljYXRpb24/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHBvc3QtY29uZmlybWF0aW9uIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWNvbmZpcm1hdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwb3N0Q29uZmlybWF0aW9uPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBwcmUtYXV0aGVudGljYXRpb24gQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXByZS1hdXRoZW50aWNhdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwcmVBdXRoZW50aWNhdGlvbj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcHJlLXJlZ2lzdHJhdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcHJlLXNpZ24tdXAuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlU2lnblVwPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSByZXNwb25zZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS12ZXJpZnktYXV0aC1jaGFsbGVuZ2UtcmVzcG9uc2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogSW5kZXggc2lnbmF0dXJlXG4gICAqL1xuICBbdHJpZ2dlcjogc3RyaW5nXTogbGFtYmRhLklGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHVzZXIgcG9vbFxuICAgKiBAZGVmYXVsdCB1bmlxdWUgSURcbiAgICovXG4gIHJlYWRvbmx5IHBvb2xOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBmb3IgdXNlciByZWdpc3RyYXRpb24gJiBzaWduIGluLlxuICAgKiBBbGxvd3MgZWl0aGVyIHVzZXJuYW1lIHdpdGggYWxpYXNlcyBPUiBzaWduIGluIHdpdGggZW1haWwsIHBob25lLCBvciBib3RoLlxuICAgKiBAZGVmYXVsdCBTaWduSW5UeXBlLlVTRVJOQU1FXG4gICAqL1xuICByZWFkb25seSBzaWduSW5UeXBlPzogU2lnbkluVHlwZTtcblxuICAvKipcbiAgICogQXR0cmlidXRlcyB0byBhbGxvdyBhcyB1c2VybmFtZSBhbGlhcy5cbiAgICogT25seSB2YWxpZCBpZiBzaWduSW5UeXBlIGlzIFVTRVJOQU1FXG4gICAqIEBkZWZhdWx0IG5vIGFsaWFzXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZUFsaWFzQXR0cmlidXRlcz86IFVzZXJQb29sQXR0cmlidXRlW107XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgd2hpY2ggQ29nbml0byB3aWxsIGF1dG9tYXRpY2FsbHkgc2VuZCBhIHZlcmlmaWNhdGlvbiBtZXNzYWdlIHRvLlxuICAgKiBNdXN0IGJlIGVpdGhlciBFTUFJTCwgUEhPTkUsIG9yIGJvdGguXG4gICAqIEBkZWZhdWx0IG5vIGF1dG8gdmVyaWZpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzPzogVXNlclBvb2xBdHRyaWJ1dGVbXTtcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9ucyB0byB1c2UgZm9yIHN1cHBvcnRlZCBDb2duaXRvIHRyaWdnZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhVHJpZ2dlcnM/OiBVc2VyUG9vbFRyaWdnZXJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb29sSW1wb3J0UHJvcHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUG9vbCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIHVzZXIgcG9vbCByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIG5hbWUgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBVUkwgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwb3J0cyBhIFVzZXIgUG9vbCBmcm9tIHRoaXMgc3RhY2tcbiAgICogQHJldHVybnMgdXNlciBwb29sIHByb3BzIHRoYXQgY2FuIGJlIGltcG9ydGVkIGludG8gYW5vdGhlciBzdGFja1xuICAgKi9cbiAgZXhwb3J0KCk6IFVzZXJQb29sSW1wb3J0UHJvcHM7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgQ29nbml0byBVc2VyIFBvb2xcbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJQb29sIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVXNlclBvb2wge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHVzZXIgcG9vbCByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBwcm9wcyBJbXBvcnRlZCB1c2VyIHBvb2wgcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVzZXJQb29sSW1wb3J0UHJvcHMpOiBJVXNlclBvb2wge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRVc2VyUG9vbChzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgcG9vbCBwcm92aWRlciBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBwb29sIHByb3ZpZGVyIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICBwcml2YXRlIHRyaWdnZXJzOiBDZm5Vc2VyUG9vbC5MYW1iZGFDb25maWdQcm9wZXJ0eSA9IHsgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlclBvb2xQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGxldCBhbGlhc0F0dHJpYnV0ZXM6IFVzZXJQb29sQXR0cmlidXRlW10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHVzZXJuYW1lQXR0cmlidXRlczogVXNlclBvb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcyAhPSBudWxsICYmIHByb3BzLnNpZ25JblR5cGUgIT09IFNpZ25JblR5cGUuVXNlcm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ3VzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzJyBjYW4gb25seSBiZSBzZXQgd2l0aCBhIHNpZ25JblR5cGUgb2YgJ1VTRVJOQU1FJ2ApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlc1xuICAgICAgJiYgIXByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzLmV2ZXJ5KGEgPT4ge1xuICAgICAgICByZXR1cm4gYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuRW1haWwgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXIgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUHJlZmVycmVkVXNlcm5hbWU7XG4gICAgICB9KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMnIGNhbiBvbmx5IGluY2x1ZGUgRU1BSUwsIFBIT05FX05VTUJFUiwgb3IgUFJFRkVSUkVEX1VTRVJOQU1FYCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXNcbiAgICAgICYmICFwcm9wcy5hdXRvVmVyaWZpZWRBdHRyaWJ1dGVzLmV2ZXJ5KGEgPT4gYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuRW1haWwgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzJyBjYW4gb25seSBpbmNsdWRlIEVNQUlMIG9yIFBIT05FX05VTUJFUmApO1xuICAgIH1cblxuICAgIHN3aXRjaCAocHJvcHMuc2lnbkluVHlwZSkge1xuICAgICAgY2FzZSBTaWduSW5UeXBlLlVzZXJuYW1lOlxuICAgICAgICBhbGlhc0F0dHJpYnV0ZXMgPSBwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5FbWFpbDpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLkVtYWlsXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5QaG9uZTpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLlBob25lTnVtYmVyXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5FbWFpbE9yUGhvbmU6XG4gICAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyA9IFtVc2VyUG9vbEF0dHJpYnV0ZS5FbWFpbCwgVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXJdO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYWxpYXNBdHRyaWJ1dGVzID0gcHJvcHMudXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXM7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5sYW1iZGFUcmlnZ2Vycykge1xuICAgICAgZm9yIChjb25zdCB0IG9mIE9iamVjdC5rZXlzKHByb3BzLmxhbWJkYVRyaWdnZXJzKSkge1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gcHJvcHMubGFtYmRhVHJpZ2dlcnNbdF07XG4gICAgICAgIGlmICh0cmlnZ2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24odHJpZ2dlciBhcyBsYW1iZGEuSUZ1bmN0aW9uLCB0KTtcbiAgICAgICAgICAodGhpcy50cmlnZ2VycyBhcyBhbnkpW3RdID0gKHRyaWdnZXIgYXMgbGFtYmRhLklGdW5jdGlvbikuZnVuY3Rpb25Bcm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB1c2VyUG9vbCA9IG5ldyBDZm5Vc2VyUG9vbCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICB1c2VyUG9vbE5hbWU6IHByb3BzLnBvb2xOYW1lIHx8IHRoaXMubm9kZS51bmlxdWVJZCxcbiAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyxcbiAgICAgIGFsaWFzQXR0cmlidXRlcyxcbiAgICAgIGF1dG9WZXJpZmllZEF0dHJpYnV0ZXM6IHByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXMsXG4gICAgICBsYW1iZGFDb25maWc6IG5ldyBUb2tlbigoKSA9PiB0aGlzLnRyaWdnZXJzKVxuICAgIH0pO1xuICAgIHRoaXMudXNlclBvb2xJZCA9IHVzZXJQb29sLnVzZXJQb29sSWQ7XG4gICAgdGhpcy51c2VyUG9vbEFybiA9IHVzZXJQb29sLnVzZXJQb29sQXJuO1xuICAgIHRoaXMudXNlclBvb2xQcm92aWRlck5hbWUgPSB1c2VyUG9vbC51c2VyUG9vbFByb3ZpZGVyTmFtZTtcbiAgICB0aGlzLnVzZXJQb29sUHJvdmlkZXJVcmwgPSB1c2VyUG9vbC51c2VyUG9vbFByb3ZpZGVyVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnQ3JlYXRlIEF1dGggQ2hhbGxlbmdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jcmVhdGUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvbkNyZWF0ZUF1dGhDaGFsbGVuZ2UoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdDcmVhdGVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgY3JlYXRlQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ0N1c3RvbSBNZXNzYWdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jdXN0b20tbWVzc2FnZS5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tTWVzc2FnZShmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ0N1c3RvbU1lc3NhZ2UnKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBjdXN0b21NZXNzYWdlOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnRGVmaW5lIEF1dGggQ2hhbGxlbmdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1kZWZpbmUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvbkRlZmluZUF1dGhDaGFsbGVuZ2UoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdEZWZpbmVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgZGVmaW5lQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQXV0aGVudGljYXRpb24nIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblBvc3RBdXRoZW50aWNhdGlvbihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1Bvc3RBdXRoZW50aWNhdGlvbicpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHBvc3RBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQ29uZmlybWF0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWNvbmZpcm1hdGlvbi5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uUG9zdENvbmZpcm1hdGlvbihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1Bvc3RDb25maXJtYXRpb24nKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwb3N0Q29uZmlybWF0aW9uOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnUHJlIEF1dGhlbnRpY2F0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblByZUF1dGhlbnRpY2F0aW9uKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlQXV0aGVudGljYXRpb24nKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwcmVBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1ByZSBTaWduIFVwJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtc2lnbi11cC5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIG9uUHJlU2lnblVwKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlU2lnblVwJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcHJlU2lnblVwOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnVmVyaWZ5IEF1dGggQ2hhbGxlbmdlIFJlc3BvbnNlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS12ZXJpZnktYXV0aC1jaGFsbGVuZ2UtcmVzcG9uc2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBvblZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZShmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1ZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZScpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIHB1YmxpYyBleHBvcnQoKTogVXNlclBvb2xJbXBvcnRQcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJQb29sSWQ6IG5ldyBDZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sSWQnLCB7IHZhbHVlOiB0aGlzLnVzZXJQb29sSWQgfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKSxcbiAgICAgIHVzZXJQb29sQXJuOiBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbEFybicsIHsgdmFsdWU6IHRoaXMudXNlclBvb2xBcm4gfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKSxcbiAgICAgIHVzZXJQb29sUHJvdmlkZXJOYW1lOiBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbFByb3ZpZGVyTmFtZScsIHsgdmFsdWU6IHRoaXMudXNlclBvb2xQcm92aWRlck5hbWUgfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKSxcbiAgICAgIHVzZXJQb29sUHJvdmlkZXJVcmw6IG5ldyBDZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sUHJvdmlkZXJVcmwnLCB7IHZhbHVlOiB0aGlzLnVzZXJQb29sUHJvdmlkZXJVcmwgfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFkZExhbWJkYVBlcm1pc3Npb24oZm46IGxhbWJkYS5JRnVuY3Rpb24sIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vcm1hbGl6ZSA9IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICAgIGZuLmFkZFBlcm1pc3Npb24oYCR7bm9ybWFsaXplfUNvZ25pdG9gLCB7XG4gICAgICBwcmluY2lwYWw6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnY29nbml0by1pZHAuYW1hem9uYXdzLmNvbScpLFxuICAgICAgc291cmNlQXJuOiB0aGlzLnVzZXJQb29sQXJuXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmUgYSB1c2VyIHBvb2wgd2hpY2ggaGFzIGJlZW4gZGVjbGFyZWQgaW4gYW5vdGhlciBzdGFja1xuICovXG5jbGFzcyBJbXBvcnRlZFVzZXJQb29sIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVVzZXJQb29sIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiBhbiBleGlzdGluZyB1c2VyIHBvb2xcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbFByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbFByb3ZpZGVyVXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogVXNlclBvb2xJbXBvcnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJQb29sSWQgPSBwcm9wcy51c2VyUG9vbElkO1xuICAgIHRoaXMudXNlclBvb2xBcm4gPSBwcm9wcy51c2VyUG9vbEFybjtcbiAgICB0aGlzLnVzZXJQb29sUHJvdmlkZXJOYW1lID0gcHJvcHMudXNlclBvb2xQcm92aWRlck5hbWU7XG4gICAgdGhpcy51c2VyUG9vbFByb3ZpZGVyVXJsID0gcHJvcHMudXNlclBvb2xQcm92aWRlclVybDtcbiAgfVxuXG4gIHB1YmxpYyBleHBvcnQoKTogVXNlclBvb2xJbXBvcnRQcm9wcyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cbn1cbiJdfQ==
{
"name": "@aws-cdk/aws-cognito",
"version": "0.28.0",
"version": "0.29.0",
"description": "The CDK Construct Library for AWS::Cognito",

@@ -32,3 +32,4 @@ "main": "lib/index.js",

"type": "git",
"url": "https://github.com/awslabs/aws-cdk.git"
"url": "https://github.com/awslabs/aws-cdk.git",
"directory": "packages/@aws-cdk/aws-cognito"
},

@@ -62,16 +63,17 @@ "scripts": {

"devDependencies": {
"@aws-cdk/assert": "^0.28.0",
"cdk-build-tools": "^0.28.0",
"cfn2ts": "^0.28.0",
"pkglint": "^0.28.0"
"@aws-cdk/assert": "^0.29.0",
"cdk-build-tools": "^0.29.0",
"cfn2ts": "^0.29.0",
"pkglint": "^0.29.0"
},
"dependencies": {
"@aws-cdk/aws-iam": "^0.28.0",
"@aws-cdk/aws-lambda": "^0.28.0",
"@aws-cdk/cdk": "^0.28.0"
"@aws-cdk/aws-iam": "^0.29.0",
"@aws-cdk/aws-lambda": "^0.29.0",
"@aws-cdk/cdk": "^0.29.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-lambda": "^0.28.0",
"@aws-cdk/cdk": "^0.28.0"
"@aws-cdk/aws-iam": "^0.29.0",
"@aws-cdk/aws-lambda": "^0.29.0",
"@aws-cdk/cdk": "^0.29.0"
},

@@ -81,2 +83,2 @@ "engines": {

}
}
}

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