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

@aws-cdk/custom-resources

Package Overview
Dependencies
Maintainers
5
Versions
248
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/custom-resources - npm Package Compare versions

Comparing version 1.26.0 to 1.27.0

49

lib/aws-custom-resource/aws-custom-resource.d.ts

@@ -10,2 +10,22 @@ import * as iam from '@aws-cdk/aws-iam';

/**
* Physical ID of the custom resource.
*/
export declare class PhysicalResourceId {
readonly responsePath?: string | undefined;
readonly id?: string | undefined;
/**
* Extract the physical resource id from the path (dot notation) to the data in the API call response.
*/
static fromResponse(responsePath: string): PhysicalResourceId;
/**
* Explicit physical resource id.
*/
static of(id: string): PhysicalResourceId;
/**
* @param responsePath Path to a response data element to be used as the physical id.
* @param id Literal string to be used as the physical id.
*/
private constructor();
}
/**
* An AWS SDK call.

@@ -29,2 +49,3 @@ */

*
* @default - no paramters
* @see https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html

@@ -34,17 +55,8 @@ */

/**
* The path to the data in the API call response to use as the physical
* resource id. Either `physicalResourceId` or `physicalResourceIdPath`
* must be specified for onCreate or onUpdate calls.
* The physical resource id of the custom resource for this call.
* Mandatory for onCreate or onUpdate calls.
*
* @default - no path
*/
readonly physicalResourceIdPath?: string;
/**
* The physical resource id of the custom resource for this call. Either
* `physicalResourceId` or `physicalResourceIdPath` must be specified for
* onCreate or onUpdate calls.
*
* @default - no physical resource id
*/
readonly physicalResourceId?: string;
readonly physicalResourceId?: PhysicalResourceId;
/**

@@ -85,2 +97,7 @@ * The regex pattern to use to catch API errors. The `code` property of the

}
/**
* Properties for AwsCustomResource.
*
* Note that at least onCreate, onUpdate or onDelete must be specified.
*/
export interface AwsCustomResourceProps {

@@ -95,3 +112,2 @@ /**

* The AWS SDK call to make when the resource is created.
* At least onCreate, onUpdate or onDelete must be specified.
*

@@ -143,2 +159,9 @@ * @default - the call when the resource is updated

}
/**
* Defines a custom resource that is materialized using specific AWS API calls.
*
* Use this to bridge any gap that might exist in the CloudFormation Coverage.
* You can specify exactly which calls are invoked for the 'CREATE', 'UPDATE' and 'DELETE' life cycle events.
*
*/
export declare class AwsCustomResource extends cdk.Construct implements iam.IGrantable {

@@ -145,0 +168,0 @@ readonly grantPrincipal: iam.IPrincipal;

@@ -13,3 +13,38 @@ "use strict";

const awsSdkMetadata = metadata;
/**
* Physical ID of the custom resource.
*/
class PhysicalResourceId {
/**
* @param responsePath Path to a response data element to be used as the physical id.
* @param id Literal string to be used as the physical id.
*/
constructor(responsePath, id) {
this.responsePath = responsePath;
this.id = id;
}
/**
* Extract the physical resource id from the path (dot notation) to the data in the API call response.
*/
static fromResponse(responsePath) {
return new PhysicalResourceId(responsePath, undefined);
}
/**
* Explicit physical resource id.
*/
static of(id) {
return new PhysicalResourceId(undefined, id);
}
}
exports.PhysicalResourceId = PhysicalResourceId;
/**
* Defines a custom resource that is materialized using specific AWS API calls.
*
* Use this to bridge any gap that might exist in the CloudFormation Coverage.
* You can specify exactly which calls are invoked for the 'CREATE', 'UPDATE' and 'DELETE' life cycle events.
*
*/
class AwsCustomResource extends cdk.Construct {
// 'props' cannot be optional, even though all its properties are optional.
// this is because at least one sdk call must be provided.
constructor(scope, id, props) {

@@ -21,4 +56,4 @@ super(scope, id);

for (const call of [props.onCreate, props.onUpdate]) {
if (call && !call.physicalResourceId && !call.physicalResourceIdPath) {
throw new Error('Either `physicalResourceId` or `physicalResourceIdPath` must be specified for onCreate and onUpdate calls.');
if (call && !call.physicalResourceId) {
throw new Error('`physicalResourceId` must be specified for onCreate and onUpdate calls.');
}

@@ -114,2 +149,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvRUFBcUY7QUFDckYsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUM5QyxxQ0FBcUM7QUFDckMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3Qiw0RUFBNEU7QUFDNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFPckcsTUFBTSxjQUFjLEdBQW1CLFFBQVEsQ0FBQztBQW1KaEQsTUFBYSxpQkFBa0IsU0FBUSxHQUFHLENBQUMsU0FBUztJQUtsRCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDckY7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEdBQTRHLENBQUMsQ0FBQzthQUMvSDtTQUNGO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFF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QUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLEdBQUcsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLElBQUk7Z0JBQ1AsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sZUFBZSxDQUFDO1lBQ3pCO2dCQUNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgQ3VzdG9tUmVzb3VyY2VQcm92aWRlciB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBkb24ndCB1c2UgXCJyZXF1aXJlXCIgc2luY2UgdGhlIHR5cGVzY3JpcHQgY29tcGlsZXIgZW1pdHMgZXJyb3JzIHNpbmNlIHRoaXNcbi8vIGZpbGUgaXMgbm90IGxpc3RlZCBpbiB0c2NvbmZpZy5qc29uLlxuY29uc3QgbWV0YWRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2RrLWFwaS1tZXRhZGF0YS5qc29uJyksICd1dGYtOCcpKTtcblxuLyoqXG4gKiBBV1MgU0RLIHNlcnZpY2UgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c1Nka01ldGFkYXRhID0ge1trZXk6IHN0cmluZ106IGFueX07XG5cbmNvbnN0IGF3c1Nka01ldGFkYXRhOiBBd3NTZGtNZXRhZGF0YSA9IG1ldGFkYXRhO1xuXG4vKipcbiAqIEFuIEFXUyBTREsgY2FsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NTZGtDYWxsIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRvIGNhbGxcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvaW5kZXguaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBhY3Rpb24gdG8gY2FsbFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXJ2aWNlIGFjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZGF0YSBpbiB0aGUgQVBJIGNhbGwgcmVzcG9uc2UgdG8gdXNlIGFzIHRoZSBwaHlzaWNhbFxuICAgKiByZXNvdXJjZSBpZC4gRWl0aGVyIGBwaHlzaWNhbFJlc291cmNlSWRgIG9yIGBwaHlzaWNhbFJlc291cmNlSWRQYXRoYFxuICAgKiBtdXN0IGJlIHNwZWNpZmllZCBmb3Igb25DcmVhdGUgb3Igb25VcGRhdGUgY2FsbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgcGh5c2ljYWxSZXNvdXJjZUlkUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIHJlc291cmNlIGlkIG9mIHRoZSBjdXN0b20gcmVzb3VyY2UgZm9yIHRoaXMgY2FsbC4gRWl0aGVyXG4gICAqIGBwaHlzaWNhbFJlc291cmNlSWRgIG9yIGBwaHlzaWNhbFJlc291cmNlSWRQYXRoYCBtdXN0IGJlIHNwZWNpZmllZCBmb3JcbiAgICogb25DcmVhdGUgb3Igb25VcGRhdGUgY2FsbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGh5c2ljYWwgcmVzb3VyY2UgaWRcbiAgICovXG4gIHJlYWRvbmx5IHBoeXNpY2FsUmVzb3VyY2VJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2V4IHBhdHRlcm4gdG8gdXNlIHRvIGNhdGNoIEFQSSBlcnJvcnMuIFRoZSBgY29kZWAgcHJvcGVydHkgb2YgdGhlXG4gICAqIGBFcnJvcmAgb2JqZWN0IHdpbGwgYmUgdGVzdGVkIGFnYWluc3QgdGhpcyBwYXR0ZXJuLiBJZiB0aGVyZSBpcyBhIG1hdGNoIGFuXG4gICAqIGVycm9yIHdpbGwgbm90IGJlIHRocm93bi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkbyBub3QgY2F0Y2ggZXJyb3JzXG4gICAqL1xuICByZWFkb25seSBjYXRjaEVycm9yUGF0dGVybj86IHN0cmluZztcblxuICAvKipcbiAgICogQVBJIHZlcnNpb24gdG8gdXNlIGZvciB0aGUgc2VydmljZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGstZm9yLWphdmFzY3JpcHQvdjIvZGV2ZWxvcGVyLWd1aWRlL2xvY2tpbmctYXBpLXZlcnNpb25zLmh0bWxcbiAgICogQGRlZmF1bHQgLSB1c2UgbGF0ZXN0IGF2YWlsYWJsZSBBUEkgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgYXBpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiB0byBzZW5kIHNlcnZpY2UgcmVxdWVzdHMgdG8uXG4gICAqICoqTm90ZTogQ3Jvc3MtcmVnaW9uIG9wZXJhdGlvbnMgYXJlIGdlbmVyYWxseSBjb25zaWRlcmVkIGFuIGFudGktcGF0dGVybi4qKlxuICAgKiAqKkNvbnNpZGVyIGZpcnN0IGRlcGxveWluZyBhIHN0YWNrIGluIHRoYXQgcmVnaW9uLioqXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHJlZ2lvbiB3aGVyZSB0aGlzIGN1c3RvbSByZXNvdXJjZSBpcyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgZGF0YSByZXR1cm5lZCBieSB0aGUgY3VzdG9tIHJlc291cmNlIHRvIGEgc3BlY2lmaWMgcGF0aCBpblxuICAgKiB0aGUgQVBJIHJlc3BvbnNlLiBVc2UgdGhpcyB0byBsaW1pdCB0aGUgZGF0YSByZXR1cm5lZCBieSB0aGUgY3VzdG9tXG4gICAqIHJlc291cmNlIGlmIHdvcmtpbmcgd2l0aCBBUEkgY2FsbHMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSByZXN1bHQgaW4gY3VzdG9tXG4gICAqIHJlc3BvbnNlIG9iamVjdHMgZXhjZWVkaW5nIHRoZSBoYXJkIGxpbWl0IG9mIDQwOTYgYnl0ZXMuXG4gICAqXG4gICAqIEV4YW1wbGUgZm9yIEVDUyAvIHVwZGF0ZVNlcnZpY2U6ICdzZXJ2aWNlLmRlcGxveW1lbnRDb25maWd1cmF0aW9uLm1heGltdW1QZXJjZW50J1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJldHVybiBhbGwgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NDdXN0b21SZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIENsb3VkZm9ybWF0aW9uIFJlc291cmNlIHR5cGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VzdG9tOjpBV1NcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBTREsgY2FsbCB0byBtYWtlIHdoZW4gdGhlIHJlc291cmNlIGlzIGNyZWF0ZWQuXG4gICAqIEF0IGxlYXN0IG9uQ3JlYXRlLCBvblVwZGF0ZSBvciBvbkRlbGV0ZSBtdXN0IGJlIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgY2FsbCB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqL1xuICByZWFkb25seSBvbkNyZWF0ZT86IEF3c1Nka0NhbGw7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgU0RLIGNhbGwgdG8gbWFrZSB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FsbFxuICAgKi9cbiAgcmVhZG9ubHkgb25VcGRhdGU/OiBBd3NTZGtDYWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgZGVsZXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhbGxcbiAgICovXG4gIHJlYWRvbmx5IG9uRGVsZXRlPzogQXdzU2RrQ2FsbDtcblxuICAvKipcbiAgICogVGhlIElBTSBwb2xpY3kgc3RhdGVtZW50cyB0byBhbGxvdyB0aGUgZGlmZmVyZW50IGNhbGxzLiBVc2Ugb25seSBpZlxuICAgKiByZXNvdXJjZSByZXN0cmljdGlvbiBpcyBuZWVkZWQuXG4gICAqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgYWxzbyBpbXBsZW1lbnRzIGBpYW0uSUdyYW50YWJsZWAsIG1ha2luZyBpdCBwb3NzaWJsZVxuICAgKiB0byB1c2UgdGhlIGBncmFudFh4eCgpYCBtZXRob2RzLlxuICAgKlxuICAgKiBBcyB0aGlzIGN1c3RvbSByZXNvdXJjZSB1c2VzIGEgc2luZ2xldG9uIExhbWJkYSBmdW5jdGlvbiwgaXQncyBpbXBvcnRhbnRcbiAgICogdG8gbm90ZSB0aGUgdGhhdCBmdW5jdGlvbidzIHJvbGUgd2lsbCBldmVudHVhbGx5IGFjY3VtdWxhdGUgdGhlXG4gICAqIHBlcm1pc3Npb25zL2dyYW50cyBmcm9tIGFsbCByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZXh0cmFjdCB0aGUgcGVybWlzc2lvbnMgZnJvbSB0aGUgY2FsbHNcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeVN0YXRlbWVudHM/OiBpYW0uUG9saWN5U3RhdGVtZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gcm9sZSBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhpcyBjdXN0b21cbiAgICogcmVzb3VyY2UgcHJvdmlkZXIuIFRoaXMgcm9sZSB3aWxsIGFwcGx5IHRvIGFsbCBgQXdzQ3VzdG9tUmVzb3VyY2VgXG4gICAqIGluc3RhbmNlcyBpbiB0aGUgc3RhY2suIFRoZSByb2xlIG11c3QgYmUgYXNzdW1hYmxlIGJ5IHRoZVxuICAgKiBgbGFtYmRhLmFtYXpvbmF3cy5jb21gIHNlcnZpY2UgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHJvbGUgaXMgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24gaW1wbGVtZW50aW5nIHRoaXMgY3VzdG9tIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDIpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogY2RrLkR1cmF0aW9uXG59XG5cbmV4cG9ydCBjbGFzcyBBd3NDdXN0b21SZXNvdXJjZSBleHRlbmRzIGNkay5Db25zdHJ1Y3QgaW1wbGVtZW50cyBpYW0uSUdyYW50YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21SZXNvdXJjZTogQ3VzdG9tUmVzb3VyY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghcHJvcHMub25DcmVhdGUgJiYgIXByb3BzLm9uVXBkYXRlICYmICFwcm9wcy5vbkRlbGV0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBgb25DcmVhdGVgLCBgb25VcGRhdGVgIG9yIGBvbkRlbGV0ZWAgbXVzdCBiZSBzcGVjaWZpZWQuJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjYWxsIG9mIFtwcm9wcy5vbkNyZWF0ZSwgcHJvcHMub25VcGRhdGVdKSB7XG4gICAgICBpZiAoY2FsbCAmJiAhY2FsbC5waHlzaWNhbFJlc291cmNlSWQgJiYgIWNhbGwucGh5c2ljYWxSZXNvdXJjZUlkUGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBgcGh5c2ljYWxSZXNvdXJjZUlkYCBvciBgcGh5c2ljYWxSZXNvdXJjZUlkUGF0aGAgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIG9uQ3JlYXRlIGFuZCBvblVwZGF0ZSBjYWxscy4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24odGhpcywgJ1Byb3ZpZGVyJywge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdydW50aW1lJykpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICB1dWlkOiAnNjc5ZjUzZmEtYzAwMi00MzBjLWIwZGEtNWI3OTgyYmQyMjg3JyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdBV1MnLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCB8fCBjZGsuRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgIHJvbGU6IHByb3BzLnJvbGUsXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHByb3ZpZGVyLmdyYW50UHJpbmNpcGFsO1xuXG4gICAgaWYgKHByb3BzLnBvbGljeVN0YXRlbWVudHMpIHtcbiAgICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHByb3BzLnBvbGljeVN0YXRlbWVudHMpIHtcbiAgICAgICAgcHJvdmlkZXIuYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHsgLy8gRGVyaXZlIHN0YXRlbWVudHMgZnJvbSBBV1MgU0RLIGNhbGxzXG4gICAgICBmb3IgKGNvbnN0IGNhbGwgb2YgW3Byb3BzLm9uQ3JlYXRlLCBwcm9wcy5vblVwZGF0ZSwgcHJvcHMub25EZWxldGVdKSB7XG4gICAgICAgIGlmIChjYWxsKSB7XG4gICAgICAgICAgcHJvdmlkZXIuYWRkVG9Sb2xlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFthd3NTZGtUb0lhbUFjdGlvbihjYWxsLnNlcnZpY2UsIGNhbGwuYWN0aW9uKV0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlID0gcHJvcHMub25DcmVhdGUgfHwgcHJvcHMub25VcGRhdGU7XG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICByZXNvdXJjZVR5cGU6IHByb3BzLnJlc291cmNlVHlwZSB8fCAnQ3VzdG9tOjpBV1MnLFxuICAgICAgcHJvdmlkZXI6IEN1c3RvbVJlc291cmNlUHJvdmlkZXIuZnJvbUxhbWJkYShwcm92aWRlciksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNyZWF0ZTogY3JlYXRlICYmIGVuY29kZUJvb2xlYW5zKGNyZWF0ZSksXG4gICAgICAgIHVwZGF0ZTogcHJvcHMub25VcGRhdGUgJiYgZW5jb2RlQm9vbGVhbnMocHJvcHMub25VcGRhdGUpLFxuICAgICAgICBkZWxldGU6IHByb3BzLm9uRGVsZXRlICYmIGVuY29kZUJvb2xlYW5zKHByb3BzLm9uRGVsZXRlKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgcmVzcG9uc2UgZGF0YSBmb3IgdGhlIEFXUyBTREsgY2FsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgUzMgLyBsaXN0QnVja2V0IDogJ0J1Y2tldHMuMC5OYW1lJ1xuICAgKlxuICAgKiBVc2UgYFRva2VuLmFzWHh4YCB0byBlbmNvZGUgdGhlIHJldHVybmVkIGBSZWZlcmVuY2VgIGFzIGEgc3BlY2lmaWMgdHlwZSBvclxuICAgKiB1c2UgdGhlIGNvbnZlbmllbmNlIGBnZXREYXRhU3RyaW5nYCBmb3Igc3RyaW5nIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhUGF0aCB0aGUgcGF0aCB0byB0aGUgZGF0YVxuICAgKi9cbiAgcHVibGljIGdldERhdGEoZGF0YVBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVJlc291cmNlLmdldEF0dChkYXRhUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyByZXNwb25zZSBkYXRhIGZvciB0aGUgQVdTIFNESyBjYWxsIGFzIHN0cmluZy5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgUzMgLyBsaXN0QnVja2V0IDogJ0J1Y2tldHMuMC5OYW1lJ1xuICAgKlxuICAgKiBAcGFyYW0gZGF0YVBhdGggdGhlIHBhdGggdG8gdGhlIGRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXREYXRhU3RyaW5nKGRhdGFQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVJlc291cmNlLmdldEF0dFN0cmluZyhkYXRhUGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gU0RLIHNlcnZpY2UvYWN0aW9uIHRvIElBTSBhY3Rpb24gdXNpbmcgbWV0YWRhdGEgZnJvbSBhd3Mtc2RrIG1vZHVsZS5cbiAqIEV4YW1wbGU6IENsb3VkV2F0Y2hMb2dzIHdpdGggcHV0UmV0ZW50aW9uUG9saWN5ID0+IGxvZ3M6UHV0UmV0ZW50aW9uUG9saWN5XG4gKlxuICogVE9ETzogaXMgdGhpcyBtYXBwaW5nIGNvcnJlY3QgZm9yIGFsbCBzZXJ2aWNlcz9cbiAqL1xuZnVuY3Rpb24gYXdzU2RrVG9JYW1BY3Rpb24oc2VydmljZTogc3RyaW5nLCBhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNydiA9IHNlcnZpY2UudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgaWFtU2VydmljZSA9IChhd3NTZGtNZXRhZGF0YVtzcnZdICYmIGF3c1Nka01ldGFkYXRhW3Nydl0ucHJlZml4KSB8fCBzcnY7XG4gIGNvbnN0IGlhbUFjdGlvbiA9IGFjdGlvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGFjdGlvbi5zbGljZSgxKTtcbiAgcmV0dXJuIGAke2lhbVNlcnZpY2V9OiR7aWFtQWN0aW9ufWA7XG59XG5cbi8qKlxuICogRW5jb2RlcyBib29sZWFucyBhcyBzcGVjaWFsIHN0cmluZ3NcbiAqL1xuZnVuY3Rpb24gZW5jb2RlQm9vbGVhbnMob2JqZWN0OiBvYmplY3QpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgKF9rLCB2KSA9PiB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHJldHVybiAnVFJVRTpCT09MRUFOJztcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiAnRkFMU0U6Qk9PTEVBTic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvRUFBcUY7QUFDckYsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUM5QyxxQ0FBcUM7QUFDckMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3Qiw0RUFBNEU7QUFDNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFPckcsTUFBTSxjQUFjLEdBQW1CLFFBQVEsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBZ0I3Qjs7O09BR0c7SUFDSCxZQUFvQyxZQUFxQixFQUFrQixFQUFXO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQWtCLE9BQUUsR0FBRixFQUFFLENBQVM7SUFBSSxDQUFDO0lBbEIzRjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBb0I7UUFDN0MsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVU7UUFDekIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBT0Y7QUFyQkQsZ0RBcUJDO0FBOElEOzs7Ozs7R0FNRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFLbEQsMkVBQTJFO0lBQzNFLDBEQUEwRDtJQUMxRCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxD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Z0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFsRkQsOENBa0ZDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxNQUFjO0lBQ3hELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzlFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLEdBQUcsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLElBQUk7Z0JBQ1AsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sZUFBZSxDQUFDO1lBQ3pCO2dCQUNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgQ3VzdG9tUmVzb3VyY2VQcm92aWRlciB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBkb24ndCB1c2UgXCJyZXF1aXJlXCIgc2luY2UgdGhlIHR5cGVzY3JpcHQgY29tcGlsZXIgZW1pdHMgZXJyb3JzIHNpbmNlIHRoaXNcbi8vIGZpbGUgaXMgbm90IGxpc3RlZCBpbiB0c2NvbmZpZy5qc29uLlxuY29uc3QgbWV0YWRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2RrLWFwaS1tZXRhZGF0YS5qc29uJyksICd1dGYtOCcpKTtcblxuLyoqXG4gKiBBV1MgU0RLIHNlcnZpY2UgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c1Nka01ldGFkYXRhID0ge1trZXk6IHN0cmluZ106IGFueX07XG5cbmNvbnN0IGF3c1Nka01ldGFkYXRhOiBBd3NTZGtNZXRhZGF0YSA9IG1ldGFkYXRhO1xuXG4vKipcbiAqIFBoeXNpY2FsIElEIG9mIHRoZSBjdXN0b20gcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaHlzaWNhbFJlc291cmNlSWQge1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHRoZSBwaHlzaWNhbCByZXNvdXJjZSBpZCBmcm9tIHRoZSBwYXRoIChkb3Qgbm90YXRpb24pIHRvIHRoZSBkYXRhIGluIHRoZSBBUEkgY2FsbCByZXNwb25zZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJlc3BvbnNlKHJlc3BvbnNlUGF0aDogc3RyaW5nKTogUGh5c2ljYWxSZXNvdXJjZUlkIHtcbiAgICByZXR1cm4gbmV3IFBoeXNpY2FsUmVzb3VyY2VJZChyZXNwb25zZVBhdGgsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRXhwbGljaXQgcGh5c2ljYWwgcmVzb3VyY2UgaWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGlkOiBzdHJpbmcpOiBQaHlzaWNhbFJlc291cmNlSWQge1xuICAgIHJldHVybiBuZXcgUGh5c2ljYWxSZXNvdXJjZUlkKHVuZGVmaW5lZCwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByZXNwb25zZVBhdGggUGF0aCB0byBhIHJlc3BvbnNlIGRhdGEgZWxlbWVudCB0byBiZSB1c2VkIGFzIHRoZSBwaHlzaWNhbCBpZC5cbiAgICogQHBhcmFtIGlkIExpdGVyYWwgc3RyaW5nIHRvIGJlIHVzZWQgYXMgdGhlIHBoeXNpY2FsIGlkLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VQYXRoPzogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgaWQ/OiBzdHJpbmcpIHsgfVxufVxuXG4vKipcbiAqIEFuIEFXUyBTREsgY2FsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NTZGtDYWxsIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRvIGNhbGxcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvaW5kZXguaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBhY3Rpb24gdG8gY2FsbFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXJ2aWNlIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcmFtdGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgcmVzb3VyY2UgaWQgb2YgdGhlIGN1c3RvbSByZXNvdXJjZSBmb3IgdGhpcyBjYWxsLlxuICAgKiBNYW5kYXRvcnkgZm9yIG9uQ3JlYXRlIG9yIG9uVXBkYXRlIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBoeXNpY2FsIHJlc291cmNlIGlkXG4gICAqL1xuICByZWFkb25seSBwaHlzaWNhbFJlc291cmNlSWQ/OiBQaHlzaWNhbFJlc291cmNlSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdleCBwYXR0ZXJuIHRvIHVzZSB0byBjYXRjaCBBUEkgZXJyb3JzLiBUaGUgYGNvZGVgIHByb3BlcnR5IG9mIHRoZVxuICAgKiBgRXJyb3JgIG9iamVjdCB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHRoaXMgcGF0dGVybi4gSWYgdGhlcmUgaXMgYSBtYXRjaCBhblxuICAgKiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGNhdGNoIGVycm9yc1xuICAgKi9cbiAgcmVhZG9ubHkgY2F0Y2hFcnJvclBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFQSSB2ZXJzaW9uIHRvIHVzZSBmb3IgdGhlIHNlcnZpY2VcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2RrLWZvci1qYXZhc2NyaXB0L3YyL2RldmVsb3Blci1ndWlkZS9sb2NraW5nLWFwaS12ZXJzaW9ucy5odG1sXG4gICAqIEBkZWZhdWx0IC0gdXNlIGxhdGVzdCBhdmFpbGFibGUgQVBJIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gdG8gc2VuZCBzZXJ2aWNlIHJlcXVlc3RzIHRvLlxuICAgKiAqKk5vdGU6IENyb3NzLXJlZ2lvbiBvcGVyYXRpb25zIGFyZSBnZW5lcmFsbHkgY29uc2lkZXJlZCBhbiBhbnRpLXBhdHRlcm4uKipcbiAgICogKipDb25zaWRlciBmaXJzdCBkZXBsb3lpbmcgYSBzdGFjayBpbiB0aGF0IHJlZ2lvbi4qKlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSByZWdpb24gd2hlcmUgdGhpcyBjdXN0b20gcmVzb3VyY2UgaXMgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIGRhdGEgcmV0dXJuZWQgYnkgdGhlIGN1c3RvbSByZXNvdXJjZSB0byBhIHNwZWNpZmljIHBhdGggaW5cbiAgICogdGhlIEFQSSByZXNwb25zZS4gVXNlIHRoaXMgdG8gbGltaXQgdGhlIGRhdGEgcmV0dXJuZWQgYnkgdGhlIGN1c3RvbVxuICAgKiByZXNvdXJjZSBpZiB3b3JraW5nIHdpdGggQVBJIGNhbGxzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgcmVzdWx0IGluIGN1c3RvbVxuICAgKiByZXNwb25zZSBvYmplY3RzIGV4Y2VlZGluZyB0aGUgaGFyZCBsaW1pdCBvZiA0MDk2IGJ5dGVzLlxuICAgKlxuICAgKiBFeGFtcGxlIGZvciBFQ1MgLyB1cGRhdGVTZXJ2aWNlOiAnc2VydmljZS5kZXBsb3ltZW50Q29uZmlndXJhdGlvbi5tYXhpbXVtUGVyY2VudCdcbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXR1cm4gYWxsIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQXdzQ3VzdG9tUmVzb3VyY2UuXG4gKlxuICogTm90ZSB0aGF0IGF0IGxlYXN0IG9uQ3JlYXRlLCBvblVwZGF0ZSBvciBvbkRlbGV0ZSBtdXN0IGJlIHNwZWNpZmllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDdXN0b21SZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIENsb3VkZm9ybWF0aW9uIFJlc291cmNlIHR5cGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VzdG9tOjpBV1NcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBTREsgY2FsbCB0byBtYWtlIHdoZW4gdGhlIHJlc291cmNlIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGNhbGwgd2hlbiB0aGUgcmVzb3VyY2UgaXMgdXBkYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgb25DcmVhdGU/OiBBd3NTZGtDYWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgdXBkYXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhbGxcbiAgICovXG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogQXdzU2RrQ2FsbDtcblxuICAvKipcbiAgICogVGhlIEFXUyBTREsgY2FsbCB0byBtYWtlIHdoZW4gdGhlIHJlc291cmNlIGlzIGRlbGV0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWxsXG4gICAqL1xuICByZWFkb25seSBvbkRlbGV0ZT86IEF3c1Nka0NhbGw7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IHN0YXRlbWVudHMgdG8gYWxsb3cgdGhlIGRpZmZlcmVudCBjYWxscy4gVXNlIG9ubHkgaWZcbiAgICogcmVzb3VyY2UgcmVzdHJpY3Rpb24gaXMgbmVlZGVkLlxuICAgKlxuICAgKiBUaGUgY3VzdG9tIHJlc291cmNlIGFsc28gaW1wbGVtZW50cyBgaWFtLklHcmFudGFibGVgLCBtYWtpbmcgaXQgcG9zc2libGVcbiAgICogdG8gdXNlIHRoZSBgZ3JhbnRYeHgoKWAgbWV0aG9kcy5cbiAgICpcbiAgICogQXMgdGhpcyBjdXN0b20gcmVzb3VyY2UgdXNlcyBhIHNpbmdsZXRvbiBMYW1iZGEgZnVuY3Rpb24sIGl0J3MgaW1wb3J0YW50XG4gICAqIHRvIG5vdGUgdGhlIHRoYXQgZnVuY3Rpb24ncyByb2xlIHdpbGwgZXZlbnR1YWxseSBhY2N1bXVsYXRlIHRoZVxuICAgKiBwZXJtaXNzaW9ucy9ncmFudHMgZnJvbSBhbGwgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGV4dHJhY3QgdGhlIHBlcm1pc3Npb25zIGZyb20gdGhlIGNhbGxzXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lTdGF0ZW1lbnRzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24gaW1wbGVtZW50aW5nIHRoaXMgY3VzdG9tXG4gICAqIHJlc291cmNlIHByb3ZpZGVyLiBUaGlzIHJvbGUgd2lsbCBhcHBseSB0byBhbGwgYEF3c0N1c3RvbVJlc291cmNlYFxuICAgKiBpbnN0YW5jZXMgaW4gdGhlIHN0YWNrLiBUaGUgcm9sZSBtdXN0IGJlIGFzc3VtYWJsZSBieSB0aGVcbiAgICogYGxhbWJkYS5hbWF6b25hd3MuY29tYCBzZXJ2aWNlIHByaW5jaXBhbC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5ldyByb2xlIGlzIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGlzIGN1c3RvbSByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygyKVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgYSBjdXN0b20gcmVzb3VyY2UgdGhhdCBpcyBtYXRlcmlhbGl6ZWQgdXNpbmcgc3BlY2lmaWMgQVdTIEFQSSBjYWxscy5cbiAqXG4gKiBVc2UgdGhpcyB0byBicmlkZ2UgYW55IGdhcCB0aGF0IG1pZ2h0IGV4aXN0IGluIHRoZSBDbG91ZEZvcm1hdGlvbiBDb3ZlcmFnZS5cbiAqIFlvdSBjYW4gc3BlY2lmeSBleGFjdGx5IHdoaWNoIGNhbGxzIGFyZSBpbnZva2VkIGZvciB0aGUgJ0NSRUFURScsICdVUERBVEUnIGFuZCAnREVMRVRFJyBsaWZlIGN5Y2xlIGV2ZW50cy5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NDdXN0b21SZXNvdXJjZSBleHRlbmRzIGNkay5Db25zdHJ1Y3QgaW1wbGVtZW50cyBpYW0uSUdyYW50YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21SZXNvdXJjZTogQ3VzdG9tUmVzb3VyY2U7XG5cbiAgLy8gJ3Byb3BzJyBjYW5ub3QgYmUgb3B0aW9uYWwsIGV2ZW4gdGhvdWdoIGFsbCBpdHMgcHJvcGVydGllcyBhcmUgb3B0aW9uYWwuXG4gIC8vIHRoaXMgaXMgYmVjYXVzZSBhdCBsZWFzdCBvbmUgc2RrIGNhbGwgbXVzdCBiZSBwcm92aWRlZC5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghcHJvcHMub25DcmVhdGUgJiYgIXByb3BzLm9uVXBkYXRlICYmICFwcm9wcy5vbkRlbGV0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBgb25DcmVhdGVgLCBgb25VcGRhdGVgIG9yIGBvbkRlbGV0ZWAgbXVzdCBiZSBzcGVjaWZpZWQuJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjYWxsIG9mIFtwcm9wcy5vbkNyZWF0ZSwgcHJvcHMub25VcGRhdGVdKSB7XG4gICAgICBpZiAoY2FsbCAmJiAhY2FsbC5waHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgcGh5c2ljYWxSZXNvdXJjZUlkYCBtdXN0IGJlIHNwZWNpZmllZCBmb3Igb25DcmVhdGUgYW5kIG9uVXBkYXRlIGNhbGxzLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3J1bnRpbWUnKSksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHV1aWQ6ICc2NzlmNTNmYS1jMDAyLTQzMGMtYjBkYS01Yjc5ODJiZDIyODcnLFxuICAgICAgbGFtYmRhUHVycG9zZTogJ0FXUycsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0IHx8IGNkay5EdXJhdGlvbi5taW51dGVzKDIpLFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gcHJvdmlkZXIuZ3JhbnRQcmluY2lwYWw7XG5cbiAgICBpZiAocHJvcHMucG9saWN5U3RhdGVtZW50cykge1xuICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgcHJvcHMucG9saWN5U3RhdGVtZW50cykge1xuICAgICAgICBwcm92aWRlci5hZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgeyAvLyBEZXJpdmUgc3RhdGVtZW50cyBmcm9tIEFXUyBTREsgY2FsbHNcbiAgICAgIGZvciAoY29uc3QgY2FsbCBvZiBbcHJvcHMub25DcmVhdGUsIHByb3BzLm9uVXBkYXRlLCBwcm9wcy5vbkRlbGV0ZV0pIHtcbiAgICAgICAgaWYgKGNhbGwpIHtcbiAgICAgICAgICBwcm92aWRlci5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW2F3c1Nka1RvSWFtQWN0aW9uKGNhbGwuc2VydmljZSwgY2FsbC5hY3Rpb24pXSxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ11cbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGUgPSBwcm9wcy5vbkNyZWF0ZSB8fCBwcm9wcy5vblVwZGF0ZTtcbiAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHJlc291cmNlVHlwZTogcHJvcHMucmVzb3VyY2VUeXBlIHx8ICdDdXN0b206OkFXUycsXG4gICAgICBwcm92aWRlcjogQ3VzdG9tUmVzb3VyY2VQcm92aWRlci5mcm9tTGFtYmRhKHByb3ZpZGVyKSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY3JlYXRlOiBjcmVhdGUgJiYgZW5jb2RlQm9vbGVhbnMoY3JlYXRlKSxcbiAgICAgICAgdXBkYXRlOiBwcm9wcy5vblVwZGF0ZSAmJiBlbmNvZGVCb29sZWFucyhwcm9wcy5vblVwZGF0ZSksXG4gICAgICAgIGRlbGV0ZTogcHJvcHMub25EZWxldGUgJiYgZW5jb2RlQm9vbGVhbnMocHJvcHMub25EZWxldGUpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyByZXNwb25zZSBkYXRhIGZvciB0aGUgQVdTIFNESyBjYWxsLlxuICAgKlxuICAgKiBFeGFtcGxlIGZvciBTMyAvIGxpc3RCdWNrZXQgOiAnQnVja2V0cy4wLk5hbWUnXG4gICAqXG4gICAqIFVzZSBgVG9rZW4uYXNYeHhgIHRvIGVuY29kZSB0aGUgcmV0dXJuZWQgYFJlZmVyZW5jZWAgYXMgYSBzcGVjaWZpYyB0eXBlIG9yXG4gICAqIHVzZSB0aGUgY29udmVuaWVuY2UgYGdldERhdGFTdHJpbmdgIGZvciBzdHJpbmcgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFQYXRoIHRoZSBwYXRoIHRvIHRoZSBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YShkYXRhUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzb3VyY2UuZ2V0QXR0KGRhdGFQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHJlc3BvbnNlIGRhdGEgZm9yIHRoZSBBV1MgU0RLIGNhbGwgYXMgc3RyaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlIGZvciBTMyAvIGxpc3RCdWNrZXQgOiAnQnVja2V0cy4wLk5hbWUnXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhUGF0aCB0aGUgcGF0aCB0byB0aGUgZGF0YVxuICAgKi9cbiAgcHVibGljIGdldERhdGFTdHJpbmcoZGF0YVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGRhdGFQYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBTREsgc2VydmljZS9hY3Rpb24gdG8gSUFNIGFjdGlvbiB1c2luZyBtZXRhZGF0YSBmcm9tIGF3cy1zZGsgbW9kdWxlLlxuICogRXhhbXBsZTogQ2xvdWRXYXRjaExvZ3Mgd2l0aCBwdXRSZXRlbnRpb25Qb2xpY3kgPT4gbG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcbiAqXG4gKiBUT0RPOiBpcyB0aGlzIG1hcHBpbmcgY29ycmVjdCBmb3IgYWxsIHNlcnZpY2VzP1xuICovXG5mdW5jdGlvbiBhd3NTZGtUb0lhbUFjdGlvbihzZXJ2aWNlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgc3J2ID0gc2VydmljZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBpYW1TZXJ2aWNlID0gKGF3c1Nka01ldGFkYXRhW3Nydl0gJiYgYXdzU2RrTWV0YWRhdGFbc3J2XS5wcmVmaXgpIHx8IHNydjtcbiAgY29uc3QgaWFtQWN0aW9uID0gYWN0aW9uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYWN0aW9uLnNsaWNlKDEpO1xuICByZXR1cm4gYCR7aWFtU2VydmljZX06JHtpYW1BY3Rpb259YDtcbn1cblxuLyoqXG4gKiBFbmNvZGVzIGJvb2xlYW5zIGFzIHNwZWNpYWwgc3RyaW5nc1xuICovXG5mdW5jdGlvbiBlbmNvZGVCb29sZWFucyhvYmplY3Q6IG9iamVjdCkge1xuICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmplY3QpLCAoX2ssIHYpID0+IHtcbiAgICBzd2l0Y2ggKHYpIHtcbiAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgcmV0dXJuICdUUlVFOkJPT0xFQU4nO1xuICAgICAgY2FzZSBmYWxzZTpcbiAgICAgICAgcmV0dXJuICdGQUxTRTpCT09MRUFOJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbiAgfSk7XG59XG4iXX0=

@@ -56,2 +56,3 @@ "use strict";

async function handler(event, context) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _l, _m, _o, _p;
try {

@@ -77,3 +78,13 @@ let AWS;

console.log('AWS SDK VERSION: ' + AWS.VERSION);
let physicalResourceId = event.PhysicalResourceId;
// Default physical resource id
let physicalResourceId;
switch (event.RequestType) {
case 'Create':
physicalResourceId = (_j = (_f = (_c = (_b = (_a = event.ResourceProperties.Create) === null || _a === void 0 ? void 0 : _a.physicalResourceId) === null || _b === void 0 ? void 0 : _b.id, (_c !== null && _c !== void 0 ? _c : (_e = (_d = event.ResourceProperties.Update) === null || _d === void 0 ? void 0 : _d.physicalResourceId) === null || _e === void 0 ? void 0 : _e.id)), (_f !== null && _f !== void 0 ? _f : (_h = (_g = event.ResourceProperties.Delete) === null || _g === void 0 ? void 0 : _g.physicalResourceId) === null || _h === void 0 ? void 0 : _h.id)), (_j !== null && _j !== void 0 ? _j : event.LogicalResourceId));
break;
case 'Update':
case 'Delete':
physicalResourceId = (_o = (_m = (_l = event.ResourceProperties[event.RequestType]) === null || _l === void 0 ? void 0 : _l.physicalResourceId) === null || _m === void 0 ? void 0 : _m.id, (_o !== null && _o !== void 0 ? _o : event.PhysicalResourceId));
break;
}
let flatData = {};

@@ -103,5 +114,5 @@ let data = {};

}
physicalResourceId = call.physicalResourceIdPath
? flatData[call.physicalResourceIdPath]
: call.physicalResourceId || event.PhysicalResourceId;
if ((_p = call.physicalResourceId) === null || _p === void 0 ? void 0 : _p.responsePath) {
physicalResourceId = flatData[call.physicalResourceId.responsePath];
}
}

@@ -149,2 +160,2 @@ await respond('SUCCESS', 'OK', physicalResourceId, data);

exports.handler = handler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQUE0QjtBQUM1QixpREFBeUM7QUFHekM7Ozs7O0dBS0c7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBYztJQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2xELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNULE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtZQUNuRCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNWLENBQUM7QUFDSixDQUFDO0FBWkQsMEJBWUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8s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QS9GRCwwQkErRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgQXdzU2RrQ2FsbCB9IGZyb20gJy4uL2F3cy1jdXN0b20tcmVzb3VyY2UnO1xuXG4vKipcbiAqIEZsYXR0ZW5zIGEgbmVzdGVkIG9iamVjdFxuICpcbiAqIEBwYXJhbSBvYmplY3QgdGhlIG9iamVjdCB0byBiZSBmbGF0dGVuZWRcbiAqIEByZXR1cm5zIGEgZmxhdCBvYmplY3Qgd2l0aCBwYXRoIGFzIGtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsYXR0ZW4ob2JqZWN0OiBvYmplY3QpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAge30sXG4gICAgLi4uZnVuY3Rpb24gX2ZsYXR0ZW4oY2hpbGQ6IGFueSwgcGF0aDogc3RyaW5nW10gPSBbXSk6IGFueSB7XG4gICAgICByZXR1cm4gW10uY29uY2F0KC4uLk9iamVjdC5rZXlzKGNoaWxkKVxuICAgICAgICAubWFwKGtleSA9PlxuICAgICAgICAgIHR5cGVvZiBjaGlsZFtrZXldID09PSAnb2JqZWN0JyAmJiBjaGlsZFtrZXldICE9PSBudWxsXG4gICAgICAgICAgICA/IF9mbGF0dGVuKGNoaWxkW2tleV0sIHBhdGguY29uY2F0KFtrZXldKSlcbiAgICAgICAgICAgIDogKHsgW3BhdGguY29uY2F0KFtrZXldKS5qb2luKCcuJyldOiBjaGlsZFtrZXldIH0pXG4gICAgICApKTtcbiAgICB9KG9iamVjdClcbiAgKTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIGVuY29kZWQgdHJ1ZS9mYWxzZSB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gZGVjb2RlQm9vbGVhbnMob2JqZWN0OiBvYmplY3QpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgKF9rLCB2KSA9PiB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdUUlVFOkJPT0xFQU4nOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ0ZBTFNFOkJPT0xFQU4nOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgdGhlIGtleXMgb2YgYW4gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBmaWx0ZXJLZXlzKG9iamVjdDogb2JqZWN0LCBwcmVkOiAoa2V5OiBzdHJpbmcpID0+IGJvb2xlYW4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iamVjdClcbiAgICAucmVkdWNlKFxuICAgICAgKGFjYywgW2ssIHZdKSA9PiBwcmVkKGspXG4gICAgICAgID8geyAuLi5hY2MsIFtrXTogdiB9XG4gICAgICAgIDogYWNjLFxuICAgICAgICB7fVxuICAgICk7XG59XG5cbmxldCBsYXRlc3RTZGtJbnN0YWxsZWQgPSBmYWxzZTtcblxuLyoqXG4gKiBJbnN0YWxscyBsYXRlc3QgQVdTIFNESyB2MlxuICovXG5mdW5jdGlvbiBpbnN0YWxsTGF0ZXN0U2RrKCk6IHZvaWQge1xuICBjb25zb2xlLmxvZygnSW5zdGFsbGluZyBsYXRlc3QgQVdTIFNESyB2MicpO1xuICAvLyBCb3RoIEhPTUUgYW5kIC0tcHJlZml4IGFyZSBuZWVkZWQgaGVyZSBiZWNhdXNlIC90bXAgaXMgdGhlIG9ubHkgd3JpdGFibGUgbG9jYXRpb25cbiAgZXhlY1N5bmMoJ0hPTUU9L3RtcCBucG0gaW5zdGFsbCBhd3Mtc2RrQDIgLS1wcm9kdWN0aW9uIC0tbm8tcGFja2FnZS1sb2NrIC0tbm8tc2F2ZSAtLXByZWZpeCAvdG1wJyk7XG4gIGxhdGVzdFNka0luc3RhbGxlZCA9IHRydWU7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMsIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQsIGNvbnRleHQ6IEFXU0xhbWJkYS5Db250ZXh0KSB7XG4gIHRyeSB7XG4gICAgbGV0IEFXUzogYW55O1xuICAgIGlmICghbGF0ZXN0U2RrSW5zdGFsbGVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpbnN0YWxsTGF0ZXN0U2RrKCk7XG4gICAgICAgIEFXUyA9IHJlcXVpcmUoJy90bXAvbm9kZV9tb2R1bGVzL2F3cy1zZGsnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBpbnN0YWxsIGxhdGVzdCBBV1MgU0RLIHYyOiAke2V9YCk7XG4gICAgICAgIEFXUyA9IHJlcXVpcmUoJ2F3cy1zZGsnKTsgLy8gRmFsbGJhY2sgdG8gcHJlLWluc3RhbGxlZCB2ZXJzaW9uXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIEFXUyA9IHJlcXVpcmUoJy90bXAvbm9kZV9tb2R1bGVzL2F3cy1zZGsnKTtcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuVVNFX05PUk1BTF9TREspIHsgLy8gRm9yIHRlc3RzIG9ubHlcbiAgICAgIEFXUyA9IHJlcXVpcmUoJ2F3cy1zZGsnKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuICAgIGNvbnNvbGUubG9nKCdBV1MgU0RLIFZFUlNJT046ICcgKyBBV1MuVkVSU0lPTik7XG5cbiAgICBsZXQgcGh5c2ljYWxSZXNvdXJjZUlkID0gKGV2ZW50IGFzIGFueSkuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICAgIGxldCBmbGF0RGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCB8IHVuZGVmaW5lZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tldmVudC5SZXF1ZXN0VHlwZV07XG5cbiAgICBpZiAoY2FsbCkge1xuICAgICAgY29uc3QgYXdzU2VydmljZSA9IG5ldyAoQVdTIGFzIGFueSlbY2FsbC5zZXJ2aWNlXSh7XG4gICAgICAgIGFwaVZlcnNpb246IGNhbGwuYXBpVmVyc2lvbixcbiAgICAgICAgcmVnaW9uOiBjYWxsLnJlZ2lvbixcbiAgICAgIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF3c1NlcnZpY2VbY2FsbC5hY3Rpb25dKGNhbGwucGFyYW1ldGVycyAmJiBkZWNvZGVCb29sZWFucyhjYWxsLnBhcmFtZXRlcnMpKS5wcm9taXNlKCk7XG4gICAgICAgIGZsYXREYXRhID0ge1xuICAgICAgICAgIGFwaVZlcnNpb246IGF3c1NlcnZpY2UuY29uZmlnLmFwaVZlcnNpb24sIC8vIEZvciB0ZXN0IHB1cnBvc2VzOiBjaGVjayBpZiBhcGlWZXJzaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIHJlZ2lvbjogYXdzU2VydmljZS5jb25maWcucmVnaW9uLCAvLyBGb3IgdGVzdCBwdXJwb3NlczogY2hlY2sgaWYgcmVnaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIC4uLmZsYXR0ZW4ocmVzcG9uc2UpLFxuICAgICAgICB9O1xuICAgICAgICBkYXRhID0gY2FsbC5vdXRwdXRQYXRoXG4gICAgICAgICAgPyBmaWx0ZXJLZXlzKGZsYXREYXRhLCBrID0+IGsuc3RhcnRzV2l0aChjYWxsLm91dHB1dFBhdGghKSlcbiAgICAgICAgICA6IGZsYXREYXRhO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoIWNhbGwuY2F0Y2hFcnJvclBhdHRlcm4gfHwgIW5ldyBSZWdFeHAoY2FsbC5jYXRjaEVycm9yUGF0dGVybikudGVzdChlLmNvZGUpKSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQgPSBjYWxsLnBoeXNpY2FsUmVzb3VyY2VJZFBhdGhcbiAgICAgICAgPyBmbGF0RGF0YVtjYWxsLnBoeXNpY2FsUmVzb3VyY2VJZFBhdGhdXG4gICAgICAgIDogY2FsbC5waHlzaWNhbFJlc291cmNlSWQgfHwgKGV2ZW50IGFzIGFueSkuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICAgIH1cblxuICAgIGF3YWl0IHJlc3BvbmQoJ1NVQ0NFU1MnLCAnT0snLCBwaHlzaWNhbFJlc291cmNlSWQsIGRhdGEpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5sb2coZSk7XG4gICAgYXdhaXQgcmVzcG9uZCgnRkFJTEVEJywgZS5tZXNzYWdlIHx8ICdJbnRlcm5hbCBFcnJvcicsIGNvbnRleHQubG9nU3RyZWFtTmFtZSwge30pO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzcG9uZChyZXNwb25zZVN0YXR1czogc3RyaW5nLCByZWFzb246IHN0cmluZywgcGh5c2ljYWxSZXNvdXJjZUlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIFN0YXR1czogcmVzcG9uc2VTdGF0dXMsXG4gICAgICBSZWFzb246IHJlYXNvbixcbiAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogcGh5c2ljYWxSZXNvdXJjZUlkLFxuICAgICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgTm9FY2hvOiBmYWxzZSxcbiAgICAgIERhdGE6IGRhdGFcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCdSZXNwb25kaW5nJywgcmVzcG9uc2VCb2R5KTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3QgcGFyc2VkVXJsID0gcmVxdWlyZSgndXJsJykucGFyc2UoZXZlbnQuUmVzcG9uc2VVUkwpO1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaG9zdG5hbWU6IHBhcnNlZFVybC5ob3N0bmFtZSxcbiAgICAgIHBhdGg6IHBhcnNlZFVybC5wYXRoLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ2NvbnRlbnQtdHlwZSc6ICcnLCAnY29udGVudC1sZW5ndGgnOiByZXNwb25zZUJvZHkubGVuZ3RoIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKCdodHRwcycpLnJlcXVlc3QocmVxdWVzdE9wdGlvbnMsIHJlc29sdmUpO1xuICAgICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIHJlcXVlc3Qud3JpdGUocmVzcG9uc2VCb2R5KTtcbiAgICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQUE0QjtBQUM1QixpREFBeUM7QUFHekM7Ozs7O0dBS0c7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBYztJQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2xELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNULE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtZQUNuRCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNWLENBQUM7QUFDSixDQUFDO0FBWkQsMEJBWUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8s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TUFBTSxFQUFFO1NBQ3ZFLENBQUM7UUFFRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsaUVBQWlFO2dCQUNqRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbEUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNmO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBN0dELDBCQTZHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOm5vLWNvbnNvbGVcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBBd3NTZGtDYWxsIH0gZnJvbSAnLi4vYXdzLWN1c3RvbS1yZXNvdXJjZSc7XG5cbi8qKlxuICogRmxhdHRlbnMgYSBuZXN0ZWQgb2JqZWN0XG4gKlxuICogQHBhcmFtIG9iamVjdCB0aGUgb2JqZWN0IHRvIGJlIGZsYXR0ZW5lZFxuICogQHJldHVybnMgYSBmbGF0IG9iamVjdCB3aXRoIHBhdGggYXMga2V5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbihvYmplY3Q6IG9iamVjdCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICAuLi5mdW5jdGlvbiBfZmxhdHRlbihjaGlsZDogYW55LCBwYXRoOiBzdHJpbmdbXSA9IFtdKTogYW55IHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQoLi4uT2JqZWN0LmtleXMoY2hpbGQpXG4gICAgICAgIC5tYXAoa2V5ID0+XG4gICAgICAgICAgdHlwZW9mIGNoaWxkW2tleV0gPT09ICdvYmplY3QnICYmIGNoaWxkW2tleV0gIT09IG51bGxcbiAgICAgICAgICAgID8gX2ZsYXR0ZW4oY2hpbGRba2V5XSwgcGF0aC5jb25jYXQoW2tleV0pKVxuICAgICAgICAgICAgOiAoeyBbcGF0aC5jb25jYXQoW2tleV0pLmpvaW4oJy4nKV06IGNoaWxkW2tleV0gfSlcbiAgICAgICkpO1xuICAgIH0ob2JqZWN0KVxuICApO1xufVxuXG4vKipcbiAqIERlY29kZXMgZW5jb2RlZCB0cnVlL2ZhbHNlIHZhbHVlc1xuICovXG5mdW5jdGlvbiBkZWNvZGVCb29sZWFucyhvYmplY3Q6IG9iamVjdCkge1xuICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmplY3QpLCAoX2ssIHYpID0+IHtcbiAgICBzd2l0Y2ggKHYpIHtcbiAgICAgIGNhc2UgJ1RSVUU6Qk9PTEVBTic6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnRkFMU0U6Qk9PTEVBTic6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRmlsdGVycyB0aGUga2V5cyBvZiBhbiBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGZpbHRlcktleXMob2JqZWN0OiBvYmplY3QsIHByZWQ6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbikge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqZWN0KVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBbaywgdl0pID0+IHByZWQoaylcbiAgICAgICAgPyB7IC4uLmFjYywgW2tdOiB2IH1cbiAgICAgICAgOiBhY2MsXG4gICAgICAgIHt9XG4gICAgKTtcbn1cblxubGV0IGxhdGVzdFNka0luc3RhbGxlZCA9IGZhbHNlO1xuXG4vKipcbiAqIEluc3RhbGxzIGxhdGVzdCBBV1MgU0RLIHYyXG4gKi9cbmZ1bmN0aW9uIGluc3RhbGxMYXRlc3RTZGsoKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKCdJbnN0YWxsaW5nIGxhdGVzdCBBV1MgU0RLIHYyJyk7XG4gIC8vIEJvdGggSE9NRSBhbmQgLS1wcmVmaXggYXJlIG5lZWRlZCBoZXJlIGJlY2F1c2UgL3RtcCBpcyB0aGUgb25seSB3cml0YWJsZSBsb2NhdGlvblxuICBleGVjU3luYygnSE9NRT0vdG1wIG5wbSBpbnN0YWxsIGF3cy1zZGtAMiAtLXByb2R1Y3Rpb24gLS1uby1wYWNrYWdlLWxvY2sgLS1uby1zYXZlIC0tcHJlZml4IC90bXAnKTtcbiAgbGF0ZXN0U2RrSW5zdGFsbGVkID0gdHJ1ZTtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cywgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCwgY29udGV4dDogQVdTTGFtYmRhLkNvbnRleHQpIHtcbiAgdHJ5IHtcbiAgICBsZXQgQVdTOiBhbnk7XG4gICAgaWYgKCFsYXRlc3RTZGtJbnN0YWxsZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGluc3RhbGxMYXRlc3RTZGsoKTtcbiAgICAgICAgQVdTID0gcmVxdWlyZSgnL3RtcC9ub2RlX21vZHVsZXMvYXdzLXNkaycpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGluc3RhbGwgbGF0ZXN0IEFXUyBTREsgdjI6ICR7ZX1gKTtcbiAgICAgICAgQVdTID0gcmVxdWlyZSgnYXdzLXNkaycpOyAvLyBGYWxsYmFjayB0byBwcmUtaW5zdGFsbGVkIHZlcnNpb25cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgQVdTID0gcmVxdWlyZSgnL3RtcC9ub2RlX21vZHVsZXMvYXdzLXNkaycpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5VU0VfTk9STUFMX1NESykgeyAvLyBGb3IgdGVzdHMgb25seVxuICAgICAgQVdTID0gcmVxdWlyZSgnYXdzLXNkaycpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG4gICAgY29uc29sZS5sb2coJ0FXUyBTREsgVkVSU0lPTjogJyArIEFXUy5WRVJTSU9OKTtcblxuICAgIC8vIERlZmF1bHQgcGh5c2ljYWwgcmVzb3VyY2UgaWRcbiAgICBsZXQgcGh5c2ljYWxSZXNvdXJjZUlkOiBzdHJpbmc7XG4gICAgc3dpdGNoIChldmVudC5SZXF1ZXN0VHlwZSkge1xuICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkNyZWF0ZT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVXBkYXRlPy5waHlzaWNhbFJlc291cmNlSWQ/LmlkID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5EZWxldGU/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuTG9naWNhbFJlc291cmNlSWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVXBkYXRlJzpcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tldmVudC5SZXF1ZXN0VHlwZV0/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz8gZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBsZXQgZmxhdERhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBsZXQgZGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGNvbnN0IGNhbGw6IEF3c1Nka0NhbGwgfCB1bmRlZmluZWQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbZXZlbnQuUmVxdWVzdFR5cGVdO1xuXG4gICAgaWYgKGNhbGwpIHtcbiAgICAgIGNvbnN0IGF3c1NlcnZpY2UgPSBuZXcgKEFXUyBhcyBhbnkpW2NhbGwuc2VydmljZV0oe1xuICAgICAgICBhcGlWZXJzaW9uOiBjYWxsLmFwaVZlcnNpb24sXG4gICAgICAgIHJlZ2lvbjogY2FsbC5yZWdpb24sXG4gICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhd3NTZXJ2aWNlW2NhbGwuYWN0aW9uXShjYWxsLnBhcmFtZXRlcnMgJiYgZGVjb2RlQm9vbGVhbnMoY2FsbC5wYXJhbWV0ZXJzKSkucHJvbWlzZSgpO1xuICAgICAgICBmbGF0RGF0YSA9IHtcbiAgICAgICAgICBhcGlWZXJzaW9uOiBhd3NTZXJ2aWNlLmNvbmZpZy5hcGlWZXJzaW9uLCAvLyBGb3IgdGVzdCBwdXJwb3NlczogY2hlY2sgaWYgYXBpVmVyc2lvbiB3YXMgY29ycmVjdGx5IHBhc3NlZC5cbiAgICAgICAgICByZWdpb246IGF3c1NlcnZpY2UuY29uZmlnLnJlZ2lvbiwgLy8gRm9yIHRlc3QgcHVycG9zZXM6IGNoZWNrIGlmIHJlZ2lvbiB3YXMgY29ycmVjdGx5IHBhc3NlZC5cbiAgICAgICAgICAuLi5mbGF0dGVuKHJlc3BvbnNlKSxcbiAgICAgICAgfTtcbiAgICAgICAgZGF0YSA9IGNhbGwub3V0cHV0UGF0aFxuICAgICAgICAgID8gZmlsdGVyS2V5cyhmbGF0RGF0YSwgayA9PiBrLnN0YXJ0c1dpdGgoY2FsbC5vdXRwdXRQYXRoISkpXG4gICAgICAgICAgOiBmbGF0RGF0YTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKCFjYWxsLmNhdGNoRXJyb3JQYXR0ZXJuIHx8ICFuZXcgUmVnRXhwKGNhbGwuY2F0Y2hFcnJvclBhdHRlcm4pLnRlc3QoZS5jb2RlKSkge1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNhbGwucGh5c2ljYWxSZXNvdXJjZUlkPy5yZXNwb25zZVBhdGgpIHtcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkID0gZmxhdERhdGFbY2FsbC5waHlzaWNhbFJlc291cmNlSWQucmVzcG9uc2VQYXRoXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhd2FpdCByZXNwb25kKCdTVUNDRVNTJywgJ09LJywgcGh5c2ljYWxSZXNvdXJjZUlkLCBkYXRhKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIGF3YWl0IHJlc3BvbmQoJ0ZBSUxFRCcsIGUubWVzc2FnZSB8fCAnSW50ZXJuYWwgRXJyb3InLCBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsIHt9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc3BvbmQocmVzcG9uc2VTdGF0dXM6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIHBoeXNpY2FsUmVzb3VyY2VJZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICBjb25zdCByZXNwb25zZUJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBTdGF0dXM6IHJlc3BvbnNlU3RhdHVzLFxuICAgICAgUmVhc29uOiByZWFzb24sXG4gICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIE5vRWNobzogZmFsc2UsXG4gICAgICBEYXRhOiBkYXRhXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZygnUmVzcG9uZGluZycsIHJlc3BvbnNlQm9keSk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIGNvbnN0IHBhcnNlZFVybCA9IHJlcXVpcmUoJ3VybCcpLnBhcnNlKGV2ZW50LlJlc3BvbnNlVVJMKTtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgIGhvc3RuYW1lOiBwYXJzZWRVcmwuaG9zdG5hbWUsXG4gICAgICBwYXRoOiBwYXJzZWRVcmwucGF0aCxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnJywgJ2NvbnRlbnQtbGVuZ3RoJzogcmVzcG9uc2VCb2R5Lmxlbmd0aCB9XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gcmVxdWlyZSgnaHR0cHMnKS5yZXF1ZXN0KHJlcXVlc3RPcHRpb25zLCByZXNvbHZlKTtcbiAgICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgICByZXF1ZXN0LndyaXRlKHJlc3BvbnNlQm9keSk7XG4gICAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
{
"name": "@aws-cdk/custom-resources",
"version": "1.26.0",
"version": "1.27.0",
"description": "Constructs for implementing CDK custom resources",

@@ -69,37 +69,37 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "1.26.0",
"@aws-cdk/aws-events": "1.26.0",
"@aws-cdk/aws-s3": "1.26.0",
"@aws-cdk/aws-ssm": "1.26.0",
"@aws-cdk/assert": "1.27.0",
"@aws-cdk/aws-events": "1.27.0",
"@aws-cdk/aws-s3": "1.27.0",
"@aws-cdk/aws-ssm": "1.27.0",
"@types/aws-lambda": "^8.10.39",
"@types/fs-extra": "^8.1.0",
"@types/sinon": "^7.5.0",
"aws-sdk": "^2.625.0",
"@types/sinon": "^7.5.2",
"aws-sdk": "^2.631.0",
"aws-sdk-mock": "^5.0.0",
"cdk-build-tools": "1.26.0",
"cdk-integ-tools": "1.26.0",
"cfn2ts": "1.26.0",
"cdk-build-tools": "1.27.0",
"cdk-integ-tools": "1.27.0",
"cfn2ts": "1.27.0",
"fs-extra": "^8.1.0",
"nock": "^12.0.1",
"pkglint": "1.26.0",
"nock": "^12.0.2",
"pkglint": "1.27.0",
"sinon": "^9.0.0"
},
"dependencies": {
"@aws-cdk/aws-cloudformation": "1.26.0",
"@aws-cdk/aws-iam": "1.26.0",
"@aws-cdk/aws-lambda": "1.26.0",
"@aws-cdk/aws-sns": "1.26.0",
"@aws-cdk/aws-stepfunctions": "1.26.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.26.0",
"@aws-cdk/core": "1.26.0"
"@aws-cdk/aws-cloudformation": "1.27.0",
"@aws-cdk/aws-iam": "1.27.0",
"@aws-cdk/aws-lambda": "1.27.0",
"@aws-cdk/aws-sns": "1.27.0",
"@aws-cdk/aws-stepfunctions": "1.27.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.27.0",
"@aws-cdk/core": "1.27.0"
},
"homepage": "https://github.com/aws/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-cloudformation": "1.26.0",
"@aws-cdk/aws-iam": "1.26.0",
"@aws-cdk/aws-lambda": "1.26.0",
"@aws-cdk/aws-sns": "1.26.0",
"@aws-cdk/aws-stepfunctions": "1.26.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.26.0",
"@aws-cdk/core": "1.26.0"
"@aws-cdk/aws-cloudformation": "1.27.0",
"@aws-cdk/aws-iam": "1.27.0",
"@aws-cdk/aws-lambda": "1.27.0",
"@aws-cdk/aws-sns": "1.27.0",
"@aws-cdk/aws-stepfunctions": "1.27.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.27.0",
"@aws-cdk/core": "1.27.0"
},

@@ -129,9 +129,5 @@ "jest": {

"exclude": [
"construct-ctor-props-optional:@aws-cdk/custom-resources.AwsCustomResource",
"props-physical-name:@aws-cdk/custom-resources.AsyncCustomResourceProps",
"docs-public-apis:@aws-cdk/custom-resources.AwsCustomResource",
"docs-public-apis:@aws-cdk/custom-resources.AwsCustomResourceProps",
"props-default-doc:@aws-cdk/custom-resources.AwsSdkCall.parameters"
"construct-ctor-props-optional:@aws-cdk/custom-resources.AwsCustomResource"
]
}
}
# AWS CDK Custom Resources
<!--BEGIN STABILITY BANNER-->

@@ -9,8 +8,10 @@

> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have
> future breaking changes.**
> **This is a _developer preview_ (public beta) module.**
>
> This API is still under active development and subject to non-backward
> compatible changes or removal in any future version. Use of the API is not recommended in production
> environments. Experimental APIs are not subject to the Semantic Versioning model.
> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib))
> are auto-generated from CloudFormation. They are stable and safe to use.
>
> However, all other classes, i.e., higher level constructs, are under active development and subject to non-backward
> compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model.
> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.

@@ -20,2 +21,3 @@ ---

## Provider Framework

@@ -68,3 +70,3 @@

def on_event(event, context):
print(event)
print(event)
request_type = event['RequestType']

@@ -82,5 +84,5 @@ if request_type == 'Create': return on_create(event)

physical_id = ...
return { 'PhysicalResourceId': physical_id }
def on_update(event):

@@ -111,4 +113,4 @@ physical_id = event["PhysicalResourceId"]

# check if resource is stable based on request_type
is_ready = ...
is_ready = ...
return { 'IsComplete': is_ready }

@@ -129,3 +131,3 @@ ```

defined), the framework will only submit a response based on the result of
`isComplete`.
`isComplete`.

@@ -162,6 +164,6 @@ If `onEvent` throws an error, the framework will submit a "FAILED" response to

operation, which means that the operation does not immediately finish, and we
need to "wait" until the resource stabilizes.
need to "wait" until the resource stabilizes.
The provider framework makes it easy to implement "waiters" by allowing users to
specify an additional AWS Lambda function in `isCompleteHandler`.
specify an additional AWS Lambda function in `isCompleteHandler`.

@@ -240,3 +242,3 @@ The framework will repeatedly invoke the handler every `queryInterval`. When

Similarly to any AWS Lambda function, if the user-defined handlers require
access to AWS resources, you will have to define these permissions
access to AWS resources, you will have to define these permissions
by calling "grant" methods such as `myBucket.grantRead(myHandler)`), using `myHandler.addToRolePolicy`

@@ -364,3 +366,3 @@ or specifying an `initialPolicy` when defining the function.

action: '...',
physicalResourceId: '...'
physicalResourceId: PhysicalResourceId.of('...')
}

@@ -376,3 +378,3 @@ });

},
physicalResourceId: '...'
physicalResourceId: PhysicalResourceId.of('...')
}

@@ -394,3 +396,3 @@ })

},
physicalResourceIdPath: 'VerificationToken' // Use the token returned by the call as physical id
physicalResourceId: PhysicalResourceId.fromResponse('VerificationToken') // Use the token returned by the call as physical id
}

@@ -417,3 +419,3 @@ });

},
physicalResourceId: Date.now().toString() // Update physical id to always fetch the latest version
physicalResourceId: PhysicalResourceId.of(Date.now().toString()) // Update physical id to always fetch the latest version
}

@@ -420,0 +422,0 @@ });

@@ -7,2 +7,3 @@ "use strict";

const sinon = require("sinon");
const lib_1 = require("../../lib");
const runtime_1 = require("../../lib/aws-custom-resource/runtime");

@@ -57,3 +58,3 @@ AWS.setSDK(require.resolve('aws-sdk'));

},
physicalResourceIdPath: 'Contents.1.ETag'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Contents.1.ETag')
}

@@ -88,3 +89,3 @@ }

},
physicalResourceId: 'topicarn'
physicalResourceId: lib_1.PhysicalResourceId.of('topicarn')
}

@@ -113,3 +114,3 @@ }

},
physicalResourceIdPath: 'Contents.1.ETag'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Contents.1.ETag')
}

@@ -151,2 +152,25 @@ }

});
test('create event with Delete call only', async () => {
const deleteParameterFake = sinon.fake.resolves({});
AWS.mock('SSM', 'deleteParameter', deleteParameterFake);
const event = {
...eventCommon,
RequestType: 'Create',
ResourceProperties: {
ServiceToken: 'token',
Delete: {
service: 'SSM',
action: 'deleteParameter',
parameters: {
Name: 'my-param'
},
}
}
};
const request = createRequest(body => body.Status === 'SUCCESS' &&
body.PhysicalResourceId === 'logicalResourceId');
await runtime_1.handler(event, {});
sinon.assert.notCalled(deleteParameterFake);
expect(request.isDone()).toBeTruthy();
});
test('catch errors', async () => {

@@ -168,3 +192,3 @@ const error = new Error();

},
physicalResourceId: 'physicalResourceId',
physicalResourceId: lib_1.PhysicalResourceId.of('physicalResourceId'),
catchErrorPattern: 'NoSuchBucket'

@@ -208,3 +232,3 @@ }

},
physicalResourceId: 'put-item'
physicalResourceId: lib_1.PhysicalResourceId.of('put-item')
}

@@ -259,3 +283,3 @@ }

},
physicalResourceId: 'id',
physicalResourceId: lib_1.PhysicalResourceId.of('id'),
outputPath: 'Contents.0'

@@ -289,3 +313,3 @@ }

region: 'eu-west-1',
physicalResourceId: 'id',
physicalResourceId: lib_1.PhysicalResourceId.of('id'),
}

@@ -333,3 +357,3 @@ }

},
physicalResourceId: 'id',
physicalResourceId: lib_1.PhysicalResourceId.of('id'),
}

@@ -343,2 +367,2 @@ }

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS1wcm92aWRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS1wcm92aWRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esb0NBQW9DO0FBQ3BDLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBRS9CLG1FQUF5RTtBQUV6RSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUV2QyxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztBQUUxRCxNQUFNLFdBQVcsR0FBRztJQUNsQixZQUFZLEVBQUUsT0FBTztJQUNyQixXQUFXLEVBQUUsbUJBQW1CO0lBQ2hDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxZQUFZLEVBQUUsYUFBYTtDQUM1QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsYUFBZ0Y7SUFDckcsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDN0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUM7U0FDdkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO0lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQzdELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLElBQUksRUFBRSxpQkFBaUI7YUFDeEI7U0FDRjtLQUMwQixDQUFDLENBQUM7SUFFL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sS0FBSyxHQUFzRDtRQUMvRCxHQUFHLFdBQVc7UUFDZCxXQUFXLEVBQUUsUUFBUTtRQUNyQixrQkFBa0IsRUFBRTtZQUNsQixZQUFZLEVBQUUsT0FBTztZQUNyQixNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLElBQUk7Z0JBQ2IsTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsV0FBVztpQkFDcEI7Z0JBQ0Qsc0JBQXNCLEVBQUUsaUJBQWlCO2FBQzVCO1NBQ2hCO0tBQ0YsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNuQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixLQUFLLGlCQUFpQjtRQUM3QyxJQUFJLENBQUMsSUFBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssV0FBVyxDQUM3QyxDQUFDO0lBRUYsTUFBTSxpQkFBTyxDQUFDLEtBQUssRUFBRSxFQUF1QixDQUFDLENBQUM7SUFFOUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxXQUFXO0tBQ3BCLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN4RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV4QyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFcEMsTUFBTSxLQUFLLEdBQXNEO1FBQy9ELEdBQUcsV0FBVztRQUNkLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLGtCQUFrQixFQUFFLG9CQUFvQjtRQUN4QyxxQkFBcUIsRUFBRSxFQUFFO1FBQ3pCLGtCQUFrQixFQUFFO1lBQ2xCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsU0FBUztnQkFDakIsVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRSxPQUFPO29CQUNoQixRQUFRLEVBQUUsVUFBVTtpQkFDckI7Z0JBQ0Qsa0JBQWtCLEVBQUUsVUFBVTthQUNqQjtTQUNoQjtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLENBQ3ZDLENBQUM7SUFFRixNQUFNLGlCQUFPLENBQUMsS0FBSyxFQUFFLEVBQXVCLENBQUMsQ0FBQztJQUU5QyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUUvQyxNQUFNLEtBQUssR0FBc0Q7UUFDL0QsR0FBRyxXQUFXO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsa0JBQWtCLEVBQUUsb0JBQW9CO1FBQ3hDLGtCQUFrQixFQUFFO1lBQ2xCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsSUFBSTtnQkFDYixNQUFNLEVBQUUsYUFBYTtnQkFDckIsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxXQUFXO2lCQUNwQjtnQkFDRCxzQkFBc0IsRUFBRSxpQkFBaUI7YUFDNUI7U0FDaEI7S0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ25DLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEtBQUssb0JBQW9CO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQ3JDLENBQUM7SUFFRixNQUFNLGlCQUFPLENBQUMsS0FBSyxFQUFFLEVBQXVCLENBQUMsQ0FBQztJQUU5QyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUV4QyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDbkYsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVwRCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBRXhELE1BQU0sS0FBSyxHQUFzRDtRQUMvRCxHQUFHLFdBQVc7UUFDZCxXQUFXLEVBQUUsUUFBUTtRQUNyQixrQkFBa0IsRUFBRSxvQkFBb0I7UUFDeEMsa0JBQWtCLEVBQUU7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsVUFBVTtpQkFDakI7YUFDWTtTQUNoQjtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxvQkFBb0IsQ0FDakQsQ0FBQztJQUVGLE1BQU0saUJBQU8sQ0FBQyxLQUFLLEVBQUUsRUFBdUIsQ0FBQyxDQUFDO0lBRTlDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1FBQzNDLElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDOUIsTUFBTSxLQUFLLEdBQTBCLElBQUksS0FBSyxFQUFFLENBQUM7SUFDakQsS0FBSyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7SUFDNUIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sS0FBSyxHQUFzRDtRQUMvRCxHQUFHLFdBQVc7UUFDZCxXQUFXLEVBQUUsUUFBUTtRQUNyQixrQkFBa0IsRUFBRTtZQUNsQixZQUFZLEVBQUUsT0FBTztZQUNyQixNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLElBQUk7Z0JBQ2IsTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsV0FBVztpQkFDcEI7Z0JBQ0Qsa0JBQWtCLEVBQUUsb0JBQW9CO2dCQUN4QyxpQkFBaUIsRUFBRSxjQUFjO2FBQ3BCO1NBQ2hCO0tBQ0YsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNuQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixLQUFLLG9CQUFvQjtRQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNyQyxDQUFDO0lBRUYsTUFBTSxpQkFBTyxDQUFDLEtBQUssRUFBRSxFQUF1QixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU3QyxNQUFNLEtBQUssR0FBc0Q7UUFDL0QsR0FBRyxXQUFXO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsa0JBQWtCLEVBQUU7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUUsU0FBUztnQkFDakIsVUFBVSxFQUFFO29CQUNWLFNBQVMsRUFBRSxPQUFPO29CQUNsQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxjQUFjO3lCQUNyQjt3QkFDRCxVQUFVLEVBQUU7NEJBQ1YsQ0FBQyxFQUFFLE1BQU07eUJBQ1Y7d0JBQ0QsS0FBSyxFQUFFOzRCQUNMLElBQUksRUFBRSxlQUFlO3lCQUN0Qjt3QkFDRCxXQUFXLEVBQUU7NEJBQ1gsQ0FBQyxFQUFFLE9BQU87eUJBQ1g7cUJBQ0Y7aUJBQ0Y7Z0JBQ0Qsa0JBQWtCLEVBQUUsVUFBVTthQUNqQjtTQUNoQjtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQzFCLENBQUM7SUFFRixNQUFNLGlCQUFPLENBQUMsS0FBSyxFQUFFLEVBQXVCLENBQUMsQ0FBQztJQUU5QyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7UUFDbkMsU0FBUyxFQUFFLE9BQU87UUFDbEIsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxJQUFJO2FBQ1g7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsQ0FBQyxFQUFFLE1BQU07YUFDVjtZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsS0FBSzthQUNaO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLENBQUMsRUFBRSxPQUFPO2FBQ1g7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN0QyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxHQUFHLEVBQUUsV0FBVztnQkFDaEIsSUFBSSxFQUFFLGdCQUFnQjthQUN2QjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixJQUFJLEVBQUUsaUJBQWlCO2FBQ3hCO1NBQ0Y7S0FDMEIsQ0FBQyxDQUFDO0lBRS9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUUvQyxNQUFNLEtBQUssR0FBc0Q7UUFDL0QsR0FBRyxXQUFXO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsa0JBQWtCLEVBQUU7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLFdBQVc7aUJBQ3BCO2dCQUNELGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLFVBQVUsRUFBRSxZQUFZO2FBQ1g7U0FDaEI7S0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ25DLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSTtRQUNoQyxJQUFJLENBQUMsSUFBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssV0FBVztRQUM1QyxJQUFJLENBQUMsSUFBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssU0FBUyxDQUMzQyxDQUFDO0lBRUYsTUFBTSxpQkFBTyxDQUFDLEtBQUssRUFBRSxFQUF1QixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ25ELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUV4QyxNQUFNLEtBQUssR0FBc0Q7UUFDL0QsR0FBRyxXQUFXO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsa0JBQWtCLEVBQUU7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRCxVQUFVLEVBQUUsWUFBWTtnQkFDeEIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLGtCQUFrQixFQUFFLElBQUk7YUFDWDtTQUNoQjtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTO1FBQ3pCLElBQUksQ0FBQyxJQUFLLENBQUMsVUFBVSxLQUFLLFlBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUssQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUNsQyxDQUFDO0lBRUYsTUFBTSxpQkFBTyxDQUFDLEtBQUssRUFBRSxFQUF1QixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtJQUN0RCxNQUFNLENBQUMsaUJBQU8sQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDYixDQUFDLEVBQUU7WUFDRCxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDVixFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtTQUMzQztLQUNGLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNWLEtBQUssRUFBRSxHQUFHO1FBQ1YsT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN6QyxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQztJQUU1QyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5CLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUV4QyxNQUFNLEtBQUssR0FBc0Q7UUFDL0QsR0FBRyxXQUFXO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsa0JBQWtCLEVBQUU7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRCxrQkFBa0IsRUFBRSxJQUFJO2FBQ1g7U0FDaEI7S0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ25DLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUMxQixDQUFDO0lBRUYsTUFBTSxpQkFBTyxDQUFDLEtBQUssRUFBRSxFQUF1QixDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXRDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU0RLIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGstbW9jayc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBub2NrIGZyb20gJ25vY2snO1xuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgQXdzU2RrQ2FsbCB9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgeyBmbGF0dGVuLCBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vbGliL2F3cy1jdXN0b20tcmVzb3VyY2UvcnVudGltZSc7XG5cbkFXUy5zZXRTREsocmVxdWlyZS5yZXNvbHZlKCdhd3Mtc2RrJykpO1xuXG5jb25zb2xlLmxvZyA9IGplc3QuZm4oKTsgLy8gdHNsaW50OmRpc2FibGUtbGluZSBuby1jb25zb2xlXG5cbmNvbnN0IGV2ZW50Q29tbW9uID0ge1xuICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gIFJlc3BvbnNlVVJMOiAnaHR0cHM6Ly9sb2NhbGhvc3QnLFxuICBTdGFja0lkOiAnc3RhY2tJZCcsXG4gIFJlcXVlc3RJZDogJ3JlcXVlc3RJZCcsXG4gIExvZ2ljYWxSZXNvdXJjZUlkOiAnbG9naWNhbFJlc291cmNlSWQnLFxuICBSZXNvdXJjZVR5cGU6ICdDdXN0b206OkFXUycsXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGJvZHlQcmVkaWNhdGU6IChib2R5OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlKSA9PiBib29sZWFuKSB7XG4gIHJldHVybiBub2NrKCdodHRwczovL2xvY2FsaG9zdCcpXG4gICAgLnB1dCgnLycsIGJvZHlQcmVkaWNhdGUpXG4gICAgLnJlcGx5KDIwMCk7XG59XG5cbmJlZm9yZUVhY2goKCkgPT4ge1xuICBwcm9jZXNzLmVudi5VU0VfTk9STUFMX1NESyA9ICd0cnVlJztcbn0pO1xuXG5hZnRlckVhY2goKCkgPT4ge1xuICBBV1MucmVzdG9yZSgpO1xuICBub2NrLmNsZWFuQWxsKCk7XG4gIGRlbGV0ZSBwcm9jZXNzLmVudi5VU0VfTk9STUFMX1NESztcbn0pO1xuXG50ZXN0KCdjcmVhdGUgZXZlbnQgd2l0aCBwaHlzaWNhbCByZXNvdXJjZSBpZCBwYXRoJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBsaXN0T2JqZWN0c0Zha2UgPSBzaW5vbi5mYWtlLnJlc29sdmVzKHtcbiAgICBDb250ZW50czogW1xuICAgICAge1xuICAgICAgICBLZXk6ICdmaXJzdC1rZXknLFxuICAgICAgICBFVGFnOiAnZmlyc3Qta2V5LWV0YWcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBLZXk6ICdzZWNvbmQta2V5JyxcbiAgICAgICAgRVRhZzogJ3NlY29uZC1rZXktZXRhZycsXG4gICAgICB9XG4gICAgXVxuICB9IGFzIFNESy5TMy5MaXN0T2JqZWN0c091dHB1dCk7XG5cbiAgQVdTLm1vY2soJ1MzJywgJ2xpc3RPYmplY3RzJywgbGlzdE9iamVjdHNGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWRQYXRoOiAnQ29udGVudHMuMS5FVGFnJ1xuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICdzZWNvbmQta2V5LWV0YWcnICYmXG4gICAgYm9keS5EYXRhIVsnQ29udGVudHMuMC5LZXknXSA9PT0gJ2ZpcnN0LWtleSdcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgc2lub24uYXNzZXJ0LmNhbGxlZFdpdGgobGlzdE9iamVjdHNGYWtlLCB7XG4gICAgQnVja2V0OiAnbXktYnVja2V0J1xuICB9KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ3VwZGF0ZSBldmVudCB3aXRoIHBoeXNpY2FsIHJlc291cmNlIGlkJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwdWJsaXNoID0gc2lub24uZmFrZS5yZXNvbHZlcyh7fSk7XG5cbiAgQVdTLm1vY2soJ1NOUycsICdwdWJsaXNoJywgcHVibGlzaCk7XG5cbiAgY29uc3QgZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlVXBkYXRlRXZlbnQgPSB7XG4gICAgLi4uZXZlbnRDb21tb24sXG4gICAgUmVxdWVzdFR5cGU6ICdVcGRhdGUnLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogJ3BoeXNpY2FsUmVzb3VyY2VJZCcsXG4gICAgT2xkUmVzb3VyY2VQcm9wZXJ0aWVzOiB7fSxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICAgIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgICAgIFVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnU05TJyxcbiAgICAgICAgYWN0aW9uOiAncHVibGlzaCcsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBNZXNzYWdlOiAnaGVsbG8nLFxuICAgICAgICAgIFRvcGljQXJuOiAndG9waWNhcm4nXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ3RvcGljYXJuJ1xuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICd0b3BpY2FybidcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgZXhwZWN0KHJlcXVlc3QuaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcbn0pO1xuXG50ZXN0KCdkZWxldGUgZXZlbnQnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTMycsICdsaXN0T2JqZWN0cycsIGxpc3RPYmplY3RzRmFrZSk7XG5cbiAgY29uc3QgZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRGVsZXRlRXZlbnQgPSB7XG4gICAgLi4uZXZlbnRDb21tb24sXG4gICAgUmVxdWVzdFR5cGU6ICdEZWxldGUnLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogJ3BoeXNpY2FsUmVzb3VyY2VJZCcsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWRQYXRoOiAnQ29udGVudHMuMS5FVGFnJ1xuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICdwaHlzaWNhbFJlc291cmNlSWQnICYmXG4gICAgT2JqZWN0LmtleXMoYm9keS5EYXRhISkubGVuZ3RoID09PSAwXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIHNpbm9uLmFzc2VydC5ub3RDYWxsZWQobGlzdE9iamVjdHNGYWtlKTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ2RlbGV0ZSBldmVudCB3aXRoIERlbGV0ZSBjYWxsIGFuZCBubyBwaHlzaWNhbCByZXNvdXJjZSBpZCBpbiBjYWxsJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBkZWxldGVQYXJhbWV0ZXJGYWtlID0gc2lub24uZmFrZS5yZXNvbHZlcyh7fSk7XG5cbiAgQVdTLm1vY2soJ1NTTScsICdkZWxldGVQYXJhbWV0ZXInLCBkZWxldGVQYXJhbWV0ZXJGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VEZWxldGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0RlbGV0ZScsXG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiAncGh5c2ljYWxSZXNvdXJjZUlkJyxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICAgIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgICAgIERlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnU1NNJyxcbiAgICAgICAgYWN0aW9uOiAnZGVsZXRlUGFyYW1ldGVyJyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6ICdteS1wYXJhbSdcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgQXdzU2RrQ2FsbFxuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChib2R5ID0+XG4gICAgYm9keS5TdGF0dXMgPT09ICdTVUNDRVNTJyAmJlxuICAgIGJvZHkuUGh5c2ljYWxSZXNvdXJjZUlkID09PSAncGh5c2ljYWxSZXNvdXJjZUlkJ1xuICApO1xuXG4gIGF3YWl0IGhhbmRsZXIoZXZlbnQsIHt9IGFzIEFXU0xhbWJkYS5Db250ZXh0KTtcblxuICBzaW5vbi5hc3NlcnQuY2FsbGVkV2l0aChkZWxldGVQYXJhbWV0ZXJGYWtlLCB7XG4gICAgTmFtZTogJ215LXBhcmFtJ1xuICB9KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ2NhdGNoIGVycm9ycycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZXJyb3I6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiA9IG5ldyBFcnJvcigpO1xuICBlcnJvci5jb2RlID0gJ05vU3VjaEJ1Y2tldCc7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVqZWN0cyhlcnJvcik7XG5cbiAgQVdTLm1vY2soJ1MzJywgJ2xpc3RPYmplY3RzJywgbGlzdE9iamVjdHNGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6ICdwaHlzaWNhbFJlc291cmNlSWQnLFxuICAgICAgICBjYXRjaEVycm9yUGF0dGVybjogJ05vU3VjaEJ1Y2tldCdcbiAgICAgIH0gYXMgQXdzU2RrQ2FsbFxuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChib2R5ID0+XG4gICAgYm9keS5TdGF0dXMgPT09ICdTVUNDRVNTJyAmJlxuICAgIGJvZHkuUGh5c2ljYWxSZXNvdXJjZUlkID09PSAncGh5c2ljYWxSZXNvdXJjZUlkJyAmJlxuICAgIE9iamVjdC5rZXlzKGJvZHkuRGF0YSEpLmxlbmd0aCA9PT0gMFxuICApO1xuXG4gIGF3YWl0IGhhbmRsZXIoZXZlbnQsIHt9IGFzIEFXU0xhbWJkYS5Db250ZXh0KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ2RlY29kZXMgYm9vbGVhbnMnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHB1dEl0ZW1GYWtlID0gc2lub24uZmFrZS5yZXNvbHZlcyh7fSk7XG5cbiAgQVdTLm1vY2soJ0R5bmFtb0RCJywgJ3B1dEl0ZW0nLCBwdXRJdGVtRmFrZSk7XG5cbiAgY29uc3QgZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlQ3JlYXRlRXZlbnQgPSB7XG4gICAgLi4uZXZlbnRDb21tb24sXG4gICAgUmVxdWVzdFR5cGU6ICdDcmVhdGUnLFxuICAgIFJlc291cmNlUHJvcGVydGllczoge1xuICAgICAgU2VydmljZVRva2VuOiAndG9rZW4nLFxuICAgICAgQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdEeW5hbW9EQicsXG4gICAgICAgIGFjdGlvbjogJ3B1dEl0ZW0nLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgVGFibGVOYW1lOiAndGFibGUnLFxuICAgICAgICAgIEl0ZW06IHtcbiAgICAgICAgICAgIFRydWU6IHtcbiAgICAgICAgICAgICAgQk9PTDogJ1RSVUU6Qk9PTEVBTidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBUcnVlU3RyaW5nOiB7XG4gICAgICAgICAgICAgIFM6ICd0cnVlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEZhbHNlOiB7XG4gICAgICAgICAgICAgIEJPT0w6ICdGQUxTRTpCT09MRUFOJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEZhbHNlU3RyaW5nOiB7XG4gICAgICAgICAgICAgIFM6ICdmYWxzZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6ICdwdXQtaXRlbSdcbiAgICAgIH0gYXMgQXdzU2RrQ2FsbFxuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChib2R5ID0+XG4gICAgYm9keS5TdGF0dXMgPT09ICdTVUNDRVNTJ1xuICApO1xuXG4gIGF3YWl0IGhhbmRsZXIoZXZlbnQsIHt9IGFzIEFXU0xhbWJkYS5Db250ZXh0KTtcblxuICBzaW5vbi5hc3NlcnQuY2FsbGVkV2l0aChwdXRJdGVtRmFrZSwge1xuICAgIFRhYmxlTmFtZTogJ3RhYmxlJyxcbiAgICBJdGVtOiB7XG4gICAgICBUcnVlOiB7XG4gICAgICAgIEJPT0w6IHRydWVcbiAgICAgIH0sXG4gICAgICBUcnVlU3RyaW5nOiB7XG4gICAgICAgIFM6ICd0cnVlJ1xuICAgICAgfSxcbiAgICAgIEZhbHNlOiB7XG4gICAgICAgIEJPT0w6IGZhbHNlXG4gICAgICB9LFxuICAgICAgRmFsc2VTdHJpbmc6IHtcbiAgICAgICAgUzogJ2ZhbHNlJ1xuICAgICAgfSxcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgncmVzdHJpY3Qgb3V0cHV0IHBhdGgnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe1xuICAgIENvbnRlbnRzOiBbXG4gICAgICB7XG4gICAgICAgIEtleTogJ2ZpcnN0LWtleScsXG4gICAgICAgIEVUYWc6ICdmaXJzdC1rZXktZXRhZydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIEtleTogJ3NlY29uZC1rZXknLFxuICAgICAgICBFVGFnOiAnc2Vjb25kLWtleS1ldGFnJyxcbiAgICAgIH1cbiAgICBdXG4gIH0gYXMgU0RLLlMzLkxpc3RPYmplY3RzT3V0cHV0KTtcblxuICBBV1MubW9jaygnUzMnLCAnbGlzdE9iamVjdHMnLCBsaXN0T2JqZWN0c0Zha2UpO1xuXG4gIGNvbnN0IGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUNyZWF0ZUV2ZW50ID0ge1xuICAgIC4uLmV2ZW50Q29tbW9uLFxuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJyxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICAgIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgICAgIENyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnUzMnLFxuICAgICAgICBhY3Rpb246ICdsaXN0T2JqZWN0cycsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJyxcbiAgICAgICAgb3V0cHV0UGF0aDogJ0NvbnRlbnRzLjAnXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUycgJiZcbiAgICBib2R5LlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gJ2lkJyAmJlxuICAgIGJvZHkuRGF0YSFbJ0NvbnRlbnRzLjAuS2V5J10gPT09ICdmaXJzdC1rZXknICYmXG4gICAgYm9keS5EYXRhIVsnQ29udGVudHMuMS5LZXknXSA9PT0gdW5kZWZpbmVkXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgnY2FuIHNwZWNpZnkgYXBpVmVyc2lvbiBhbmQgcmVnaW9uJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwdWJsaXNoRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTTlMnLCAncHVibGlzaCcsIHB1Ymxpc2hGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1NOUycsXG4gICAgICAgIGFjdGlvbjogJ3B1Ymxpc2gnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTWVzc2FnZTogJ21lc3NhZ2UnLFxuICAgICAgICAgIFRvcGljQXJuOiAndG9waWMnXG4gICAgICAgIH0sXG4gICAgICAgIGFwaVZlcnNpb246ICcyMDEwLTAzLTMxJyxcbiAgICAgICAgcmVnaW9uOiAnZXUtd2VzdC0xJyxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiAnaWQnLFxuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5EYXRhIS5hcGlWZXJzaW9uID09PSAnMjAxMC0wMy0zMScgJiZcbiAgICBib2R5LkRhdGEhLnJlZ2lvbiA9PT0gJ2V1LXdlc3QtMSdcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgZXhwZWN0KHJlcXVlc3QuaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcbn0pO1xuXG50ZXN0KCdmbGF0dGVuIGNvcnJlY3RseSBmbGF0dGVucyBhIG5lc3RlZCBvYmplY3QnLCAoKSA9PiB7XG4gIGV4cGVjdChmbGF0dGVuKHtcbiAgICBhOiB7IGI6ICdjJyB9LFxuICAgIGQ6IFtcbiAgICAgIHsgZTogJ2YnIH0sXG4gICAgICB7IGc6ICdoJywgaTogMSwgajogbnVsbCwgazogeyBsOiBmYWxzZSB9IH1cbiAgICBdLFxuICB9KSkudG9FcXVhbCh7XG4gICAgJ2EuYic6ICdjJyxcbiAgICAnZC4wLmUnOiAnZicsXG4gICAgJ2QuMS5nJzogJ2gnLFxuICAgICdkLjEuaSc6IDEsXG4gICAgJ2QuMS5qJzogbnVsbCxcbiAgICAnZC4xLmsubCc6IGZhbHNlXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2luc3RhbGxzIHRoZSBsYXRlc3QgU0RLJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCB0bXBQYXRoID0gJy90bXAvbm9kZV9tb2R1bGVzL2F3cy1zZGsnO1xuXG4gIGZzLnJlbW92ZSh0bXBQYXRoKTtcblxuICBjb25zdCBwdWJsaXNoRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTTlMnLCAncHVibGlzaCcsIHB1Ymxpc2hGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1NOUycsXG4gICAgICAgIGFjdGlvbjogJ3B1Ymxpc2gnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTWVzc2FnZTogJ21lc3NhZ2UnLFxuICAgICAgICAgIFRvcGljQXJuOiAndG9waWMnXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJyxcbiAgICAgIH0gYXMgQXdzU2RrQ2FsbFxuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChib2R5ID0+XG4gICAgYm9keS5TdGF0dXMgPT09ICdTVUNDRVNTJ1xuICApO1xuXG4gIGF3YWl0IGhhbmRsZXIoZXZlbnQsIHt9IGFzIEFXU0xhbWJkYS5Db250ZXh0KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xuXG4gIGV4cGVjdCgoKSA9PiByZXF1aXJlLnJlc29sdmUodG1wUGF0aCkpLm5vdC50b1Rocm93KCk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS1wcm92aWRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS1wcm92aWRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esb0NBQW9DO0FBQ3BDLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLG1DQUEyRDtBQUMzRCxtRUFBeUU7QUFFekUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxpQ0FBaUM7QUFFMUQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsWUFBWSxFQUFFLE9BQU87SUFDckIsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsWUFBWSxFQUFFLGFBQWE7Q0FDNUIsQ0FBQztBQUVGLFNBQVMsYUFBYSxDQUFDLGFBQWdGO0lBQ3JHLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQzdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO1NBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtJQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVI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QU8sRUFBRSxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU0RLIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGstbW9jayc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBub2NrIGZyb20gJ25vY2snO1xuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgQXdzU2RrQ2FsbCwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IGZsYXR0ZW4sIGhhbmRsZXIgfSBmcm9tICcuLi8uLi9saWIvYXdzLWN1c3RvbS1yZXNvdXJjZS9ydW50aW1lJztcblxuQVdTLnNldFNESyhyZXF1aXJlLnJlc29sdmUoJ2F3cy1zZGsnKSk7XG5cbmNvbnNvbGUubG9nID0gamVzdC5mbigpOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcblxuY29uc3QgZXZlbnRDb21tb24gPSB7XG4gIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgUmVzcG9uc2VVUkw6ICdodHRwczovL2xvY2FsaG9zdCcsXG4gIFN0YWNrSWQ6ICdzdGFja0lkJyxcbiAgUmVxdWVzdElkOiAncmVxdWVzdElkJyxcbiAgTG9naWNhbFJlc291cmNlSWQ6ICdsb2dpY2FsUmVzb3VyY2VJZCcsXG4gIFJlc291cmNlVHlwZTogJ0N1c3RvbTo6QVdTJyxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3QoYm9keVByZWRpY2F0ZTogKGJvZHk6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2UpID0+IGJvb2xlYW4pIHtcbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vbG9jYWxob3N0JylcbiAgICAucHV0KCcvJywgYm9keVByZWRpY2F0ZSlcbiAgICAucmVwbHkoMjAwKTtcbn1cblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIHByb2Nlc3MuZW52LlVTRV9OT1JNQUxfU0RLID0gJ3RydWUnO1xufSk7XG5cbmFmdGVyRWFjaCgoKSA9PiB7XG4gIEFXUy5yZXN0b3JlKCk7XG4gIG5vY2suY2xlYW5BbGwoKTtcbiAgZGVsZXRlIHByb2Nlc3MuZW52LlVTRV9OT1JNQUxfU0RLO1xufSk7XG5cbnRlc3QoJ2NyZWF0ZSBldmVudCB3aXRoIHBoeXNpY2FsIHJlc291cmNlIGlkIHBhdGgnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe1xuICAgIENvbnRlbnRzOiBbXG4gICAgICB7XG4gICAgICAgIEtleTogJ2ZpcnN0LWtleScsXG4gICAgICAgIEVUYWc6ICdmaXJzdC1rZXktZXRhZydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIEtleTogJ3NlY29uZC1rZXknLFxuICAgICAgICBFVGFnOiAnc2Vjb25kLWtleS1ldGFnJyxcbiAgICAgIH1cbiAgICBdXG4gIH0gYXMgU0RLLlMzLkxpc3RPYmplY3RzT3V0cHV0KTtcblxuICBBV1MubW9jaygnUzMnLCAnbGlzdE9iamVjdHMnLCBsaXN0T2JqZWN0c0Zha2UpO1xuXG4gIGNvbnN0IGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUNyZWF0ZUV2ZW50ID0ge1xuICAgIC4uLmV2ZW50Q29tbW9uLFxuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJyxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICAgIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgICAgIENyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnUzMnLFxuICAgICAgICBhY3Rpb246ICdsaXN0T2JqZWN0cycsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZSgnQ29udGVudHMuMS5FVGFnJylcbiAgICAgIH0gYXMgQXdzU2RrQ2FsbFxuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChib2R5ID0+XG4gICAgYm9keS5TdGF0dXMgPT09ICdTVUNDRVNTJyAmJlxuICAgIGJvZHkuUGh5c2ljYWxSZXNvdXJjZUlkID09PSAnc2Vjb25kLWtleS1ldGFnJyAmJlxuICAgIGJvZHkuRGF0YSFbJ0NvbnRlbnRzLjAuS2V5J10gPT09ICdmaXJzdC1rZXknXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIHNpbm9uLmFzc2VydC5jYWxsZWRXaXRoKGxpc3RPYmplY3RzRmFrZSwge1xuICAgIEJ1Y2tldDogJ215LWJ1Y2tldCdcbiAgfSk7XG5cbiAgZXhwZWN0KHJlcXVlc3QuaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcbn0pO1xuXG50ZXN0KCd1cGRhdGUgZXZlbnQgd2l0aCBwaHlzaWNhbCByZXNvdXJjZSBpZCcsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgcHVibGlzaCA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTTlMnLCAncHVibGlzaCcsIHB1Ymxpc2gpO1xuXG4gIGNvbnN0IGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVVwZGF0ZUV2ZW50ID0ge1xuICAgIC4uLmV2ZW50Q29tbW9uLFxuICAgIFJlcXVlc3RUeXBlOiAnVXBkYXRlJyxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6ICdwaHlzaWNhbFJlc291cmNlSWQnLFxuICAgIE9sZFJlc291cmNlUHJvcGVydGllczoge30sXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBVcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1NOUycsXG4gICAgICAgIGFjdGlvbjogJ3B1Ymxpc2gnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTWVzc2FnZTogJ2hlbGxvJyxcbiAgICAgICAgICBUb3BpY0FybjogJ3RvcGljYXJuJ1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZigndG9waWNhcm4nKVxuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICd0b3BpY2FybidcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgZXhwZWN0KHJlcXVlc3QuaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcbn0pO1xuXG50ZXN0KCdkZWxldGUgZXZlbnQnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTMycsICdsaXN0T2JqZWN0cycsIGxpc3RPYmplY3RzRmFrZSk7XG5cbiAgY29uc3QgZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRGVsZXRlRXZlbnQgPSB7XG4gICAgLi4uZXZlbnRDb21tb24sXG4gICAgUmVxdWVzdFR5cGU6ICdEZWxldGUnLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogJ3BoeXNpY2FsUmVzb3VyY2VJZCcsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0NvbnRlbnRzLjEuRVRhZycpXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUycgJiZcbiAgICBib2R5LlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gJ3BoeXNpY2FsUmVzb3VyY2VJZCcgJiZcbiAgICBPYmplY3Qua2V5cyhib2R5LkRhdGEhKS5sZW5ndGggPT09IDBcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgc2lub24uYXNzZXJ0Lm5vdENhbGxlZChsaXN0T2JqZWN0c0Zha2UpO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgnZGVsZXRlIGV2ZW50IHdpdGggRGVsZXRlIGNhbGwgYW5kIG5vIHBoeXNpY2FsIHJlc291cmNlIGlkIGluIGNhbGwnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGRlbGV0ZVBhcmFtZXRlckZha2UgPSBzaW5vbi5mYWtlLnJlc29sdmVzKHt9KTtcblxuICBBV1MubW9jaygnU1NNJywgJ2RlbGV0ZVBhcmFtZXRlcicsIGRlbGV0ZVBhcmFtZXRlckZha2UpO1xuXG4gIGNvbnN0IGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZURlbGV0ZUV2ZW50ID0ge1xuICAgIC4uLmV2ZW50Q29tbW9uLFxuICAgIFJlcXVlc3RUeXBlOiAnRGVsZXRlJyxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6ICdwaHlzaWNhbFJlc291cmNlSWQnLFxuICAgIFJlc291cmNlUHJvcGVydGllczoge1xuICAgICAgU2VydmljZVRva2VuOiAndG9rZW4nLFxuICAgICAgRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdTU00nLFxuICAgICAgICBhY3Rpb246ICdkZWxldGVQYXJhbWV0ZXInLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogJ215LXBhcmFtJ1xuICAgICAgICB9LFxuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICdwaHlzaWNhbFJlc291cmNlSWQnXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIHNpbm9uLmFzc2VydC5jYWxsZWRXaXRoKGRlbGV0ZVBhcmFtZXRlckZha2UsIHtcbiAgICBOYW1lOiAnbXktcGFyYW0nXG4gIH0pO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgnY3JlYXRlIGV2ZW50IHdpdGggRGVsZXRlIGNhbGwgb25seScsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZGVsZXRlUGFyYW1ldGVyRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTU00nLCAnZGVsZXRlUGFyYW1ldGVyJywgZGVsZXRlUGFyYW1ldGVyRmFrZSk7XG5cbiAgY29uc3QgZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlQ3JlYXRlRXZlbnQgPSB7XG4gICAgLi4uZXZlbnRDb21tb24sXG4gICAgUmVxdWVzdFR5cGU6ICdDcmVhdGUnLFxuICAgIFJlc291cmNlUHJvcGVydGllczoge1xuICAgICAgU2VydmljZVRva2VuOiAndG9rZW4nLFxuICAgICAgRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdTU00nLFxuICAgICAgICBhY3Rpb246ICdkZWxldGVQYXJhbWV0ZXInLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogJ215LXBhcmFtJ1xuICAgICAgICB9LFxuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICdsb2dpY2FsUmVzb3VyY2VJZCdcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgc2lub24uYXNzZXJ0Lm5vdENhbGxlZChkZWxldGVQYXJhbWV0ZXJGYWtlKTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ2NhdGNoIGVycm9ycycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZXJyb3I6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiA9IG5ldyBFcnJvcigpO1xuICBlcnJvci5jb2RlID0gJ05vU3VjaEJ1Y2tldCc7XG4gIGNvbnN0IGxpc3RPYmplY3RzRmFrZSA9IHNpbm9uLmZha2UucmVqZWN0cyhlcnJvcik7XG5cbiAgQVdTLm1vY2soJ1MzJywgJ2xpc3RPYmplY3RzJywgbGlzdE9iamVjdHNGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZigncGh5c2ljYWxSZXNvdXJjZUlkJyksXG4gICAgICAgIGNhdGNoRXJyb3JQYXR0ZXJuOiAnTm9TdWNoQnVja2V0J1xuICAgICAgfSBhcyBBd3NTZGtDYWxsXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGJvZHkgPT5cbiAgICBib2R5LlN0YXR1cyA9PT0gJ1NVQ0NFU1MnICYmXG4gICAgYm9keS5QaHlzaWNhbFJlc291cmNlSWQgPT09ICdwaHlzaWNhbFJlc291cmNlSWQnICYmXG4gICAgT2JqZWN0LmtleXMoYm9keS5EYXRhISkubGVuZ3RoID09PSAwXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgnZGVjb2RlcyBib29sZWFucycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgcHV0SXRlbUZha2UgPSBzaW5vbi5mYWtlLnJlc29sdmVzKHt9KTtcblxuICBBV1MubW9jaygnRHluYW1vREInLCAncHV0SXRlbScsIHB1dEl0ZW1GYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ0R5bmFtb0RCJyxcbiAgICAgICAgYWN0aW9uOiAncHV0SXRlbScsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBUYWJsZU5hbWU6ICd0YWJsZScsXG4gICAgICAgICAgSXRlbToge1xuICAgICAgICAgICAgVHJ1ZToge1xuICAgICAgICAgICAgICBCT09MOiAnVFJVRTpCT09MRUFOJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFRydWVTdHJpbmc6IHtcbiAgICAgICAgICAgICAgUzogJ3RydWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFsc2U6IHtcbiAgICAgICAgICAgICAgQk9PTDogJ0ZBTFNFOkJPT0xFQU4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFsc2VTdHJpbmc6IHtcbiAgICAgICAgICAgICAgUzogJ2ZhbHNlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdwdXQtaXRlbScpXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUydcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgc2lub24uYXNzZXJ0LmNhbGxlZFdpdGgocHV0SXRlbUZha2UsIHtcbiAgICBUYWJsZU5hbWU6ICd0YWJsZScsXG4gICAgSXRlbToge1xuICAgICAgVHJ1ZToge1xuICAgICAgICBCT09MOiB0cnVlXG4gICAgICB9LFxuICAgICAgVHJ1ZVN0cmluZzoge1xuICAgICAgICBTOiAndHJ1ZSdcbiAgICAgIH0sXG4gICAgICBGYWxzZToge1xuICAgICAgICBCT09MOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIEZhbHNlU3RyaW5nOiB7XG4gICAgICAgIFM6ICdmYWxzZSdcbiAgICAgIH0sXG4gICAgfVxuICB9KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ3Jlc3RyaWN0IG91dHB1dCBwYXRoJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBsaXN0T2JqZWN0c0Zha2UgPSBzaW5vbi5mYWtlLnJlc29sdmVzKHtcbiAgICBDb250ZW50czogW1xuICAgICAge1xuICAgICAgICBLZXk6ICdmaXJzdC1rZXknLFxuICAgICAgICBFVGFnOiAnZmlyc3Qta2V5LWV0YWcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBLZXk6ICdzZWNvbmQta2V5JyxcbiAgICAgICAgRVRhZzogJ3NlY29uZC1rZXktZXRhZycsXG4gICAgICB9XG4gICAgXVxuICB9IGFzIFNESy5TMy5MaXN0T2JqZWN0c091dHB1dCk7XG5cbiAgQVdTLm1vY2soJ1MzJywgJ2xpc3RPYmplY3RzJywgbGlzdE9iamVjdHNGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1MzJyxcbiAgICAgICAgYWN0aW9uOiAnbGlzdE9iamVjdHMnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQnVja2V0OiAnbXktYnVja2V0J1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZignaWQnKSxcbiAgICAgICAgb3V0cHV0UGF0aDogJ0NvbnRlbnRzLjAnXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUycgJiZcbiAgICBib2R5LlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gJ2lkJyAmJlxuICAgIGJvZHkuRGF0YSFbJ0NvbnRlbnRzLjAuS2V5J10gPT09ICdmaXJzdC1rZXknICYmXG4gICAgYm9keS5EYXRhIVsnQ29udGVudHMuMS5LZXknXSA9PT0gdW5kZWZpbmVkXG4gICk7XG5cbiAgYXdhaXQgaGFuZGxlcihldmVudCwge30gYXMgQVdTTGFtYmRhLkNvbnRleHQpO1xuXG4gIGV4cGVjdChyZXF1ZXN0LmlzRG9uZSgpKS50b0JlVHJ1dGh5KCk7XG59KTtcblxudGVzdCgnY2FuIHNwZWNpZnkgYXBpVmVyc2lvbiBhbmQgcmVnaW9uJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwdWJsaXNoRmFrZSA9IHNpbm9uLmZha2UucmVzb2x2ZXMoe30pO1xuXG4gIEFXUy5tb2NrKCdTTlMnLCAncHVibGlzaCcsIHB1Ymxpc2hGYWtlKTtcblxuICBjb25zdCBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCA9IHtcbiAgICAuLi5ldmVudENvbW1vbixcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiB7XG4gICAgICBTZXJ2aWNlVG9rZW46ICd0b2tlbicsXG4gICAgICBDcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ1NOUycsXG4gICAgICAgIGFjdGlvbjogJ3B1Ymxpc2gnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTWVzc2FnZTogJ21lc3NhZ2UnLFxuICAgICAgICAgIFRvcGljQXJuOiAndG9waWMnXG4gICAgICAgIH0sXG4gICAgICAgIGFwaVZlcnNpb246ICcyMDEwLTAzLTMxJyxcbiAgICAgICAgcmVnaW9uOiAnZXUtd2VzdC0xJyxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJyksXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUycgJiZcbiAgICBib2R5LkRhdGEhLmFwaVZlcnNpb24gPT09ICcyMDEwLTAzLTMxJyAmJlxuICAgIGJvZHkuRGF0YSEucmVnaW9uID09PSAnZXUtd2VzdC0xJ1xuICApO1xuXG4gIGF3YWl0IGhhbmRsZXIoZXZlbnQsIHt9IGFzIEFXU0xhbWJkYS5Db250ZXh0KTtcblxuICBleHBlY3QocmVxdWVzdC5pc0RvbmUoKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ2ZsYXR0ZW4gY29ycmVjdGx5IGZsYXR0ZW5zIGEgbmVzdGVkIG9iamVjdCcsICgpID0+IHtcbiAgZXhwZWN0KGZsYXR0ZW4oe1xuICAgIGE6IHsgYjogJ2MnIH0sXG4gICAgZDogW1xuICAgICAgeyBlOiAnZicgfSxcbiAgICAgIHsgZzogJ2gnLCBpOiAxLCBqOiBudWxsLCBrOiB7IGw6IGZhbHNlIH0gfVxuICAgIF0sXG4gIH0pKS50b0VxdWFsKHtcbiAgICAnYS5iJzogJ2MnLFxuICAgICdkLjAuZSc6ICdmJyxcbiAgICAnZC4xLmcnOiAnaCcsXG4gICAgJ2QuMS5pJzogMSxcbiAgICAnZC4xLmonOiBudWxsLFxuICAgICdkLjEuay5sJzogZmFsc2VcbiAgfSk7XG59KTtcblxudGVzdCgnaW5zdGFsbHMgdGhlIGxhdGVzdCBTREsnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHRtcFBhdGggPSAnL3RtcC9ub2RlX21vZHVsZXMvYXdzLXNkayc7XG5cbiAgZnMucmVtb3ZlKHRtcFBhdGgpO1xuXG4gIGNvbnN0IHB1Ymxpc2hGYWtlID0gc2lub24uZmFrZS5yZXNvbHZlcyh7fSk7XG5cbiAgQVdTLm1vY2soJ1NOUycsICdwdWJsaXNoJywgcHVibGlzaEZha2UpO1xuXG4gIGNvbnN0IGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUNyZWF0ZUV2ZW50ID0ge1xuICAgIC4uLmV2ZW50Q29tbW9uLFxuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJyxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICAgIFNlcnZpY2VUb2tlbjogJ3Rva2VuJyxcbiAgICAgIENyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnU05TJyxcbiAgICAgICAgYWN0aW9uOiAncHVibGlzaCcsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBNZXNzYWdlOiAnbWVzc2FnZScsXG4gICAgICAgICAgVG9waWNBcm46ICd0b3BpYydcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJyksXG4gICAgICB9IGFzIEF3c1Nka0NhbGxcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoYm9keSA9PlxuICAgIGJvZHkuU3RhdHVzID09PSAnU1VDQ0VTUydcbiAgKTtcblxuICBhd2FpdCBoYW5kbGVyKGV2ZW50LCB7fSBhcyBBV1NMYW1iZGEuQ29udGV4dCk7XG5cbiAgZXhwZWN0KHJlcXVlc3QuaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcblxuICBleHBlY3QoKCkgPT4gcmVxdWlyZS5yZXNvbHZlKHRtcFBhdGgpKS5ub3QudG9UaHJvdygpO1xufSk7XG4iXX0=

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

},
physicalResourceId: 'loggroup'
physicalResourceId: lib_1.PhysicalResourceId.of('loggroup')
},

@@ -41,3 +41,5 @@ onDelete: {

},
"physicalResourceId": "loggroup"
"physicalResourceId": {
"id": "loggroup"
}
},

@@ -84,3 +86,3 @@ "Delete": {

},
physicalResourceIdPath: 'ETag'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('ETag')
},

@@ -98,3 +100,5 @@ });

},
"physicalResourceIdPath": "ETag"
"physicalResourceId": {
"responsePath": "ETag"
}
},

@@ -109,3 +113,5 @@ "Update": {

},
"physicalResourceIdPath": "ETag"
"physicalResourceId": {
"responsePath": "ETag"
}
},

@@ -127,3 +133,3 @@ });

},
physicalResourceIdPath: 'ETag'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('ETag')
},

@@ -166,3 +172,3 @@ policyStatements: [

}
})).toThrow(/`physicalResourceId`.+`physicalResourceIdPath`/);
})).toThrow(/`physicalResourceId`/);
});

@@ -184,3 +190,3 @@ test('encodes booleans', () => {

},
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
},

@@ -199,3 +205,5 @@ });

},
"physicalResourceId": "id"
"physicalResourceId": {
"id": "id"
}
},

@@ -212,3 +220,3 @@ });

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
}

@@ -229,3 +237,3 @@ });

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
},

@@ -249,3 +257,3 @@ timeout: cdk.Duration.minutes(15)

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
}

@@ -287,3 +295,3 @@ });

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
},

@@ -305,3 +313,3 @@ role

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
}

@@ -326,3 +334,3 @@ });

action: 'action',
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
}

@@ -338,3 +346,3 @@ });

},
physicalResourceId: 'id'
physicalResourceId: lib_1.PhysicalResourceId.of('id')
}

@@ -355,6 +363,8 @@ });

},
physicalResourceId: 'id'
physicalResourceId: {
"id": 'id'
}
}
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBQThCO0FBQzlCLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsbUNBQThDO0FBRTlDLDJDQUEyQztBQUUzQyxJQUFJLENBQUMsdURBQXVELEVBQUUsR0FBRyxFQUFFO0lBQy9ELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5QixPQUFPO0lBQ1AsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ3JDLFlBQVksRUFBRSw0QkFBNEI7UUFDMUMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsc0JBQXNCO2dCQUNwQyxlQUFlLEVBQUUsRUFBRTthQUNwQjtZQUNELGtCQUFrQixFQUFFLFVBQVU7U0FDL0I7UUFDRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxzQkFBc0I7YUFDckM7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLDRCQUE0QixFQUFFO1FBQ3pELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixZQUFZLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsaUJBQWlCLEVBQUUsRUFBRTthQUN0QjtZQUNELG9CQUFvQixFQUFFLFVBQVU7U0FDakM7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVB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Q0FBQyxhQUFhLEVBQUU7UUFDMUMsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRTtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7WUFDRCxrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0Bhd3MtY2RrL2Fzc2VydC9qZXN0JztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG50ZXN0KCdhd3Mgc2RrIGpzIGN1c3RvbSByZXNvdXJjZSB3aXRoIG9uQ3JlYXRlIGFuZCBvbkRlbGV0ZScsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgLy8gV0hFTlxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6TG9nUmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICAgIGFjdGlvbjogJ3B1dFJldGVudGlvblBvbGljeScsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiA5MFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6ICdsb2dncm91cCdcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgICBhY3Rpb246ICdkZWxldGVSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpMb2dSZXRlbnRpb25Qb2xpY3knLCB7XG4gICAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICAgIFwic2VydmljZVwiOiBcIkNsb3VkV2F0Y2hMb2dzXCIsXG4gICAgICAgIFwiYWN0aW9uXCI6IFwicHV0UmV0ZW50aW9uUG9saWN5XCIsXG4gICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjogXCIvYXdzL2xhbWJkYS9sb2dncm91cFwiLFxuICAgICAgICAgIFwicmV0ZW50aW9uSW5EYXlzXCI6IDkwXG4gICAgICAgIH0sXG4gICAgICAgIFwicGh5c2ljYWxSZXNvdXJjZUlkXCI6IFwibG9nZ3JvdXBcIlxuICAgICAgfSxcbiAgICAgIFwiRGVsZXRlXCI6IHtcbiAgICAgICAgXCJzZXJ2aWNlXCI6IFwiQ2xvdWRXYXRjaExvZ3NcIixcbiAgICAgICAgXCJhY3Rpb25cIjogXCJkZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiBcIi9hd3MvbGFtYmRhL2xvZ2dyb3VwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBcIlBvbGljeURvY3VtZW50XCI6IHtcbiAgICAgIFwiU3RhdGVtZW50XCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiQWN0aW9uXCI6IFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICBcIkVmZmVjdFwiOiBcIkFsbG93XCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiBcIipcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJBY3Rpb25cIjogXCJsb2dzOkRlbGV0ZVJldGVudGlvblBvbGljeVwiLFxuICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICBcIlJlc291cmNlXCI6IFwiKlwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcIlZlcnNpb25cIjogXCIyMDEyLTEwLTE3XCJcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdvbkNyZWF0ZSBkZWZhdWx0cyB0byBvblVwZGF0ZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTM1B1dE9iamVjdCcsXG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWRQYXRoOiAnRVRhZydcbiAgICB9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6UzNQdXRPYmplY3QnLCB7XG4gICAgXCJDcmVhdGVcIjoge1xuICAgICAgXCJzZXJ2aWNlXCI6IFwiczNcIixcbiAgICAgIFwiYWN0aW9uXCI6IFwicHV0T2JqZWN0XCIsXG4gICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiBcIm15LWJ1Y2tldFwiLFxuICAgICAgICBcIktleVwiOiBcIm15LWtleVwiLFxuICAgICAgICBcIkJvZHlcIjogXCJteS1ib2R5XCJcbiAgICAgIH0sXG4gICAgICBcInBoeXNpY2FsUmVzb3VyY2VJZFBhdGhcIjogXCJFVGFnXCJcbiAgICB9LFxuICAgIFwiVXBkYXRlXCI6IHtcbiAgICAgIFwic2VydmljZVwiOiBcInMzXCIsXG4gICAgICBcImFjdGlvblwiOiBcInB1dE9iamVjdFwiLFxuICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjogXCJteS1idWNrZXRcIixcbiAgICAgICAgXCJLZXlcIjogXCJteS1rZXlcIixcbiAgICAgICAgXCJCb2R5XCI6IFwibXktYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJwaHlzaWNhbFJlc291cmNlSWRQYXRoXCI6IFwiRVRhZ1wiXG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnd2l0aCBjdXN0b20gcG9saWN5U3RhdGVtZW50cycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdTMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWRQYXRoOiAnRVRhZydcbiAgICB9LFxuICAgIHBvbGljeVN0YXRlbWVudHM6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzMzpQdXRPYmplY3QnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6czM6OjpteS1idWNrZXQvbXkta2V5J11cbiAgICAgIH0pXG4gICAgXVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgXCJQb2xpY3lEb2N1bWVudFwiOiB7XG4gICAgICBcIlN0YXRlbWVudFwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIkFjdGlvblwiOiBcInMzOlB1dE9iamVjdFwiLFxuICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICBcIlJlc291cmNlXCI6IFwiYXJuOmF3czpzMzo6Om15LWJ1Y2tldC9teS1rZXlcIlxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiVmVyc2lvblwiOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIHdoZW4gbm8gY2FsbHMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7fSkpLnRvVGhyb3coL2BvbkNyZWF0ZWAuK2BvblVwZGF0ZWAuK2BvbkRlbGV0ZWAvKTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIG5vIHBoeXNpY2FsIHJlc291cmNlIG1ldGhvZCBpcyBzcGVjaWZpZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICBhY3Rpb246ICdwdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogOTBcbiAgICAgIH1cbiAgICB9XG4gIH0pKS50b1Rocm93KC9gcGh5c2ljYWxSZXNvdXJjZUlkYC4rYHBoeXNpY2FsUmVzb3VyY2VJZFBhdGhgLyk7XG59KTtcblxudGVzdCgnZW5jb2RlcyBib29sZWFucycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTZXJ2aWNlQWN0aW9uJyxcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgdHJ1ZUJvb2xlYW46IHRydWUsXG4gICAgICAgIHRydWVTdHJpbmc6ICd0cnVlJyxcbiAgICAgICAgZmFsc2VCb29sZWFuOiBmYWxzZSxcbiAgICAgICAgZmFsc2VTdHJpbmc6ICdmYWxzZSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6ICdpZCdcbiAgICB9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6U2VydmljZUFjdGlvbicsIHtcbiAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICBcInNlcnZpY2VcIjogXCJzZXJ2aWNlXCIsXG4gICAgICBcImFjdGlvblwiOiBcImFjdGlvblwiLFxuICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgXCJ0cnVlQm9vbGVhblwiOiBcIlRSVUU6Qk9PTEVBTlwiLFxuICAgICAgICBcInRydWVTdHJpbmdcIjogXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VCb29sZWFuXCI6IFwiRkFMU0U6Qk9PTEVBTlwiLFxuICAgICAgICBcImZhbHNlU3RyaW5nXCI6IFwiZmFsc2VcIlxuICAgICAgfSxcbiAgICAgIFwicGh5c2ljYWxSZXNvdXJjZUlkXCI6IFwiaWRcIlxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3RpbWVvdXQgZGVmYXVsdHMgdG8gMiBtaW51dGVzJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAvLyBXSEVOXG4gIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJ1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgVGltZW91dDogMTIwXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbiBzcGVjaWZ5IHRpbWVvdXQnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiAnaWQnXG4gICAgfSxcbiAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxNSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgVGltZW91dDogOTAwXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ltcGxlbWVudHMgSUdyYW50YWJsZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUoc3RhY2ssICdSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpXG4gIH0pO1xuICBjb25zdCBjdXN0b21SZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJ1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gV0hFTlxuICByb2xlLmdyYW50UGFzc1JvbGUoY3VzdG9tUmVzb3VyY2UuZ3JhbnRQcmluY2lwYWwpO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiAnc2VydmljZTpBY3Rpb24nLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBSZXNvdXJjZTogJyonXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdpYW06UGFzc1JvbGUnLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAgICAgICAgICdSb2xlMUFCQ0M1RjAnLFxuICAgICAgICAgICAgICAnQXJuJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3J1xuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnY2FuIHVzZSBleGlzdGluZyByb2xlJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3Qgcm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHN0YWNrLCAnUm9sZScsICdhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MDEyOnJvbGUvQ29vbFJvbGUnKTtcblxuICAvLyBXSEVOXG4gIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJ1xuICAgIH0sXG4gICAgcm9sZVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBSb2xlOiAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTAxMjpyb2xlL0Nvb2xSb2xlJ1xuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLm5vdC50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlJvbGUnKTtcbn0pO1xuXG50ZXN0KCdnZXREYXRhJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgYXdzU2RrID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiAnaWQnXG4gICAgfVxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IHRva2VuID0gYXdzU2RrLmdldERhdGEoJ0RhdGEnKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjay5yZXNvbHZlKHRva2VuKSkudG9FcXVhbCh7XG4gICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAnQXdzU2RrRTk2NkZFNDMnLFxuICAgICAgJ0RhdGEnXG4gICAgXVxuICB9KTtcbn0pO1xuXG50ZXN0KCdnZXREYXRhU3RyaW5nJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgYXdzU2RrID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrMScsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogJ2lkJ1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsyJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBhOiBhd3NTZGsuZ2V0RGF0YVN0cmluZygnRGF0YScpXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiAnaWQnXG4gICAgfVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6QVdTJywge1xuICAgIENyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgYToge1xuICAgICAgICAgICdGbjo6R2V0QXR0JzogW1xuICAgICAgICAgICAgJ0F3c1NkazE1NUI5MTA3MScsXG4gICAgICAgICAgICAnRGF0YSdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6ICdpZCdcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBQThCO0FBQzlCLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsbUNBQWtFO0FBRWxFLDJDQUEyQztBQUUzQyxJQUFJLENBQUMsdURBQXVELEVBQUUsR0FBRyxFQUFFO0lBQy9ELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5QixPQUFPO0lBQ1AsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ3JDLFlBQVksRUFBRSw0QkFBNEI7UUFDMUMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsc0JBQXNCO2dCQUNwQyxlQUFlLEVBQUUsRUFBRTthQUNwQjtZQUNELGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDdEQ7UUFDRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxzQkFBc0I7YUFDckM7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLDRCQUE0QixFQUFFO1FBQ3pELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixZQUFZLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsaUJBQWlCLEVBQUUsRUFBRTthQUN0QjtZQUNELG9CQUFvQixFQUFFO2dCQUNwQixJQUFJ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WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoRDtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxJQUFJLHVCQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7UUFDdEMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQzthQUNoQztZQUNELGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7UUFDMUMsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRTtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7WUFDRCxrQkFBa0IsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLElBQUk7YUFDWDtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0Bhd3MtY2RrL2Fzc2VydC9qZXN0JztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBQaHlzaWNhbFJlc291cmNlSWQgfSBmcm9tICcuLi8uLi9saWInO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1rZXktcXVvdGVzXG5cbnRlc3QoJ2F3cyBzZGsganMgY3VzdG9tIHJlc291cmNlIHdpdGggb25DcmVhdGUgYW5kIG9uRGVsZXRlJywgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpMb2dSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ0Nsb3VkV2F0Y2hMb2dzJyxcbiAgICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogJy9hd3MvbGFtYmRhL2xvZ2dyb3VwJyxcbiAgICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdsb2dncm91cCcpXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogJ0Nsb3VkV2F0Y2hMb2dzJyxcbiAgICAgICAgYWN0aW9uOiAnZGVsZXRlUmV0ZW50aW9uUG9saWN5JyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogJy9hd3MvbGFtYmRhL2xvZ2dyb3VwJyxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6TG9nUmV0ZW50aW9uUG9saWN5Jywge1xuICAgICAgXCJDcmVhdGVcIjoge1xuICAgICAgICBcInNlcnZpY2VcIjogXCJDbG91ZFdhdGNoTG9nc1wiLFxuICAgICAgICBcImFjdGlvblwiOiBcInB1dFJldGVudGlvblBvbGljeVwiLFxuICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IFwiL2F3cy9sYW1iZGEvbG9nZ3JvdXBcIixcbiAgICAgICAgICBcInJldGVudGlvbkluRGF5c1wiOiA5MFxuICAgICAgICB9LFxuICAgICAgICBcInBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgXCJpZFwiOiBcImxvZ2dyb3VwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiRGVsZXRlXCI6IHtcbiAgICAgICAgXCJzZXJ2aWNlXCI6IFwiQ2xvdWRXYXRjaExvZ3NcIixcbiAgICAgICAgXCJhY3Rpb25cIjogXCJkZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiBcIi9hd3MvbGFtYmRhL2xvZ2dyb3VwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBcIlBvbGljeURvY3VtZW50XCI6IHtcbiAgICAgIFwiU3RhdGVtZW50XCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiQWN0aW9uXCI6IFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICBcIkVmZmVjdFwiOiBcIkFsbG93XCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiBcIipcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJBY3Rpb25cIjogXCJsb2dzOkRlbGV0ZVJldGVudGlvblBvbGljeVwiLFxuICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICBcIlJlc291cmNlXCI6IFwiKlwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcIlZlcnNpb25cIjogXCIyMDEyLTEwLTE3XCJcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdvbkNyZWF0ZSBkZWZhdWx0cyB0byBvblVwZGF0ZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTM1B1dE9iamVjdCcsXG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0VUYWcnKVxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpTM1B1dE9iamVjdCcsIHtcbiAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICBcInNlcnZpY2VcIjogXCJzM1wiLFxuICAgICAgXCJhY3Rpb25cIjogXCJwdXRPYmplY3RcIixcbiAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0XCI6IFwibXktYnVja2V0XCIsXG4gICAgICAgIFwiS2V5XCI6IFwibXkta2V5XCIsXG4gICAgICAgIFwiQm9keVwiOiBcIm15LWJvZHlcIlxuICAgICAgfSxcbiAgICAgIFwicGh5c2ljYWxSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgXCJyZXNwb25zZVBhdGhcIjogXCJFVGFnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlXCI6IHtcbiAgICAgIFwic2VydmljZVwiOiBcInMzXCIsXG4gICAgICBcImFjdGlvblwiOiBcInB1dE9iamVjdFwiLFxuICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjogXCJteS1idWNrZXRcIixcbiAgICAgICAgXCJLZXlcIjogXCJteS1rZXlcIixcbiAgICAgICAgXCJCb2R5XCI6IFwibXktYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJwaHlzaWNhbFJlc291cmNlSWRcIjoge1xuICAgICAgICBcInJlc3BvbnNlUGF0aFwiOiBcIkVUYWdcIlxuICAgICAgfVxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3dpdGggY3VzdG9tIHBvbGljeVN0YXRlbWVudHMnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnUzMnLFxuICAgICAgYWN0aW9uOiAncHV0T2JqZWN0JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgQnVja2V0OiAnbXktYnVja2V0JyxcbiAgICAgICAgS2V5OiAnbXkta2V5JyxcbiAgICAgICAgQm9keTogJ215LWJvZHknXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlKCdFVGFnJylcbiAgICB9LFxuICAgIHBvbGljeVN0YXRlbWVudHM6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzMzpQdXRPYmplY3QnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6czM6OjpteS1idWNrZXQvbXkta2V5J11cbiAgICAgIH0pXG4gICAgXVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgXCJQb2xpY3lEb2N1bWVudFwiOiB7XG4gICAgICBcIlN0YXRlbWVudFwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIkFjdGlvblwiOiBcInMzOlB1dE9iamVjdFwiLFxuICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICBcIlJlc291cmNlXCI6IFwiYXJuOmF3czpzMzo6Om15LWJ1Y2tldC9teS1rZXlcIlxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiVmVyc2lvblwiOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIHdoZW4gbm8gY2FsbHMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7fSkpLnRvVGhyb3coL2BvbkNyZWF0ZWAuK2BvblVwZGF0ZWAuK2BvbkRlbGV0ZWAvKTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIG5vIHBoeXNpY2FsIHJlc291cmNlIG1ldGhvZCBpcyBzcGVjaWZpZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICBhY3Rpb246ICdwdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogOTBcbiAgICAgIH1cbiAgICB9XG4gIH0pKS50b1Rocm93KC9gcGh5c2ljYWxSZXNvdXJjZUlkYC8pO1xufSk7XG5cbnRlc3QoJ2VuY29kZXMgYm9vbGVhbnMnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6U2VydmljZUFjdGlvbicsXG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzZXJ2aWNlJyxcbiAgICAgIGFjdGlvbjogJ2FjdGlvbicsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIHRydWVCb29sZWFuOiB0cnVlLFxuICAgICAgICB0cnVlU3RyaW5nOiAndHJ1ZScsXG4gICAgICAgIGZhbHNlQm9vbGVhbjogZmFsc2UsXG4gICAgICAgIGZhbHNlU3RyaW5nOiAnZmFsc2UnXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6U2VydmljZUFjdGlvbicsIHtcbiAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICBcInNlcnZpY2VcIjogXCJzZXJ2aWNlXCIsXG4gICAgICBcImFjdGlvblwiOiBcImFjdGlvblwiLFxuICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgXCJ0cnVlQm9vbGVhblwiOiBcIlRSVUU6Qk9PTEVBTlwiLFxuICAgICAgICBcInRydWVTdHJpbmdcIjogXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VCb29sZWFuXCI6IFwiRkFMU0U6Qk9PTEVBTlwiLFxuICAgICAgICBcImZhbHNlU3RyaW5nXCI6IFwiZmFsc2VcIlxuICAgICAgfSxcbiAgICAgIFwicGh5c2ljYWxSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgXCJpZFwiOiBcImlkXCJcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCd0aW1lb3V0IGRlZmF1bHRzIHRvIDIgbWludXRlcycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzZXJ2aWNlJyxcbiAgICAgIGFjdGlvbjogJ2FjdGlvbicsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZignaWQnKVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgVGltZW91dDogMTIwXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbiBzcGVjaWZ5IHRpbWVvdXQnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDE1KVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBUaW1lb3V0OiA5MDBcbiAgfSk7XG59KTtcblxudGVzdCgnaW1wbGVtZW50cyBJR3JhbnRhYmxlJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZShzdGFjaywgJ1JvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VjMi5hbWF6b25hd3MuY29tJylcbiAgfSk7XG4gIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgcm9sZS5ncmFudFBhc3NSb2xlKGN1c3RvbVJlc291cmNlLmdyYW50UHJpbmNpcGFsKTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OklBTTo6UG9saWN5Jywge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogJ3NlcnZpY2U6QWN0aW9uJyxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUmVzb3VyY2U6ICcqJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiAnaWFtOlBhc3NSb2xlJyxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICdGbjo6R2V0QXR0JzogW1xuICAgICAgICAgICAgICAnUm9sZTFBQkNDNUYwJyxcbiAgICAgICAgICAgICAgJ0FybidcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNydcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbiB1c2UgZXhpc3Rpbmcgcm9sZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IHJvbGUgPSBpYW0uUm9sZS5mcm9tUm9sZUFybihzdGFjaywgJ1JvbGUnLCAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTAxMjpyb2xlL0Nvb2xSb2xlJyk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzZXJ2aWNlJyxcbiAgICAgIGFjdGlvbjogJ2FjdGlvbicsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZignaWQnKVxuICAgIH0sXG4gICAgcm9sZVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBSb2xlOiAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTAxMjpyb2xlL0Nvb2xSb2xlJ1xuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLm5vdC50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlJvbGUnKTtcbn0pO1xuXG50ZXN0KCdnZXREYXRhJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgYXdzU2RrID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3QgdG9rZW4gPSBhd3NTZGsuZ2V0RGF0YSgnRGF0YScpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrLnJlc29sdmUodG9rZW4pKS50b0VxdWFsKHtcbiAgICAnRm46OkdldEF0dCc6IFtcbiAgICAgICdBd3NTZGtFOTY2RkU0MycsXG4gICAgICAnRGF0YSdcbiAgICBdXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2dldERhdGFTdHJpbmcnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICBjb25zdCBhd3NTZGsgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsxJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrMicsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgYTogYXdzU2RrLmdldERhdGFTdHJpbmcoJ0RhdGEnKVxuICAgICAgfSxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfVxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6QVdTJywge1xuICAgIENyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgYToge1xuICAgICAgICAgICdGbjo6R2V0QXR0JzogW1xuICAgICAgICAgICAgJ0F3c1NkazE1NUI5MTA3MScsXG4gICAgICAgICAgICAnRGF0YSdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IHtcbiAgICAgICAgXCJpZFwiOiAnaWQnXG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuIl19

@@ -25,3 +25,5 @@ {

"physicalResourceId": {
"Ref": "TopicBFC7AF6E"
"id": {
"Ref": "TopicBFC7AF6E"
}
}

@@ -39,3 +41,5 @@ },

"physicalResourceId": {
"Ref": "TopicBFC7AF6E"
"id": {
"Ref": "TopicBFC7AF6E"
}
}

@@ -114,3 +118,3 @@ }

"S3Bucket": {
"Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3Bucket38F49C79"
"Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3BucketFC283D1B"
},

@@ -128,3 +132,3 @@ "S3Key": {

{
"Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C"
"Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81"
}

@@ -142,3 +146,3 @@ ]

{
"Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C"
"Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81"
}

@@ -180,3 +184,5 @@ ]

"action": "listTopics",
"physicalResourceIdPath": "Topics.0.TopicArn"
"physicalResourceId": {
"responsePath": "Topics.0.TopicArn"
}
},

@@ -186,3 +192,5 @@ "Update": {

"action": "listTopics",
"physicalResourceIdPath": "Topics.0.TopicArn"
"physicalResourceId": {
"responsePath": "Topics.0.TopicArn"
}
}

@@ -221,3 +229,5 @@ },

},
"physicalResourceIdPath": "Parameter.ARN"
"physicalResourceId": {
"responsePath": "Parameter.ARN"
}
},

@@ -233,3 +243,5 @@ "Update": {

},
"physicalResourceIdPath": "Parameter.ARN"
"physicalResourceId": {
"responsePath": "Parameter.ARN"
}
}

@@ -242,13 +254,13 @@ },

"Parameters": {
"AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3Bucket38F49C79": {
"AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3BucketFC283D1B": {
"Type": "String",
"Description": "S3 bucket for asset \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\""
"Description": "S3 bucket for asset \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\""
},
"AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C": {
"AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81": {
"Type": "String",
"Description": "S3 key for asset version \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\""
"Description": "S3 key for asset version \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\""
},
"AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999ArtifactHash5595423D": {
"AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748ArtifactHashB96EE827": {
"Type": "String",
"Description": "Artifact hash for asset \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\""
"Description": "Artifact hash for asset \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\""
}

@@ -255,0 +267,0 @@ },

@@ -20,3 +20,3 @@ #!/usr/bin/env node

},
physicalResourceId: topic.topicArn,
physicalResourceId: lib_1.PhysicalResourceId.of(topic.topicArn),
}

@@ -28,3 +28,3 @@ });

action: 'listTopics',
physicalResourceIdPath: 'Topics.0.TopicArn'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Topics.0.TopicArn')
}

@@ -45,3 +45,3 @@ });

},
physicalResourceIdPath: 'Parameter.ARN'
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Parameter.ARN')
}

@@ -53,2 +53,2 @@ });

app.synth();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esd0NBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsbUNBQThDO0FBRTlDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTVDLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUN6RCxZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLFNBQVM7UUFDakIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCO1FBQ0Qsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFFBQVE7S0FDbkM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFpQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDNUQsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLEVBQUUsWUFBWTtRQUNwQixzQkFBc0IsRUFBRSxtQkFBbUI7S0FDNUM7Q0FDRixDQUFDLENBQUM7QUFDSCxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVyQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO0lBQ3BFLFdBQVcsRUFBRSxNQUFNO0NBQ3BCLENBQUMsQ0FBQztBQUNILE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtJQUNoRSxZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLGNBQWM7UUFDdEIsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFlBQVksQ0FBQyxhQUFhO1lBQ2hDLGNBQWMsRUFBRSxJQUFJO1NBQ3JCO1FBQ0Qsc0JBQXNCLEVBQUUsZUFBZTtLQUN4QztDQUNGLENBQUMsQ0FBQztBQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0YsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXJHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIHNucyBmcm9tICdAYXdzLWNkay9hd3Mtc25zJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdAYXdzLWNkay9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcblxuY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ2F3cy1jZGstc2RrLWpzJyk7XG5cbmNvbnN0IHRvcGljID0gbmV3IHNucy5Ub3BpYyhzdGFjaywgJ1RvcGljJyk7XG5cbmNvbnN0IHNuc1B1Ymxpc2ggPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdQdWJsaXNoJywge1xuICByZXNvdXJjZVR5cGU6ICdDdXN0b206OlNOU1B1Ymxpc2hlcicsXG4gIG9uVXBkYXRlOiB7XG4gICAgc2VydmljZTogJ1NOUycsXG4gICAgYWN0aW9uOiAncHVibGlzaCcsXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgTWVzc2FnZTogJ2hlbGxvJyxcbiAgICAgIFRvcGljQXJuOiB0b3BpYy50b3BpY0FyblxuICAgIH0sXG4gICAgcGh5c2ljYWxSZXNvdXJjZUlkOiB0b3BpYy50b3BpY0FybixcbiAgfVxufSk7XG5cbmNvbnN0IGxpc3RUb3BpY3MgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdMaXN0VG9waWNzJywge1xuICBvblVwZGF0ZToge1xuICAgIHNlcnZpY2U6ICdTTlMnLFxuICAgIGFjdGlvbjogJ2xpc3RUb3BpY3MnLFxuICAgIHBoeXNpY2FsUmVzb3VyY2VJZFBhdGg6ICdUb3BpY3MuMC5Ub3BpY0FybidcbiAgfVxufSk7XG5saXN0VG9waWNzLm5vZGUuYWRkRGVwZW5kZW5jeSh0b3BpYyk7XG5cbmNvbnN0IHNzbVBhcmFtZXRlciA9IG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKHN0YWNrLCAnRHVtbXlQYXJhbWV0ZXInLCB7XG4gIHN0cmluZ1ZhbHVlOiAnMTMzNycsXG59KTtcbmNvbnN0IGdldFBhcmFtZXRlciA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0dldFBhcmFtZXRlcicsIHtcbiAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTU01QYXJhbWV0ZXInLFxuICBvblVwZGF0ZToge1xuICAgIHNlcnZpY2U6ICdTU00nLFxuICAgIGFjdGlvbjogJ2dldFBhcmFtZXRlcicsXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgTmFtZTogc3NtUGFyYW1ldGVyLnBhcmFtZXRlck5hbWUsXG4gICAgICBXaXRoRGVjcnlwdGlvbjogdHJ1ZVxuICAgIH0sXG4gICAgcGh5c2ljYWxSZXNvdXJjZUlkUGF0aDogJ1BhcmFtZXRlci5BUk4nXG4gIH1cbn0pO1xuXG5uZXcgY2RrLkNmbk91dHB1dChzdGFjaywgJ01lc3NhZ2VJZCcsIHsgdmFsdWU6IHNuc1B1Ymxpc2guZ2V0RGF0YVN0cmluZygnTWVzc2FnZUlkJykgfSk7XG5uZXcgY2RrLkNmbk91dHB1dChzdGFjaywgJ1RvcGljQXJuJywgeyB2YWx1ZTogbGlzdFRvcGljcy5nZXREYXRhU3RyaW5nKCdUb3BpY3MuMC5Ub3BpY0FybicpIH0pO1xubmV3IGNkay5DZm5PdXRwdXQoc3RhY2ssICdQYXJhbWV0ZXJWYWx1ZScsIHsgdmFsdWU6IGdldFBhcmFtZXRlci5nZXREYXRhU3RyaW5nKCdQYXJhbWV0ZXIuVmFsdWUnKSB9KTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esd0NBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsbUNBQWtFO0FBRWxFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTVDLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUN6RCxZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLFNBQVM7UUFDakIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCO1FBQ0Qsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7S0FDMUQ7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFpQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDNUQsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLEVBQUUsWUFBWTtRQUNwQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7S0FDekU7Q0FDRixDQUFDLENBQUM7QUFDSCxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVyQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO0lBQ3BFLFdBQVcsRUFBRSxNQUFNO0NBQ3BCLENBQUMsQ0FBQztBQUNILE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtJQUNoRSxZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLGNBQWM7UUFDdEIsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFlBQVksQ0FBQyxhQUFhO1lBQ2hDLGNBQWMsRUFBRSxJQUFJO1NBQ3JCO1FBQ0Qsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztLQUNyRTtDQUNGLENBQUMsQ0FBQztBQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0YsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXJHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIHNucyBmcm9tICdAYXdzLWNkay9hd3Mtc25zJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdAYXdzLWNkay9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBQaHlzaWNhbFJlc291cmNlSWQgfSBmcm9tICcuLi8uLi9saWInO1xuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuXG5jb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCAnYXdzLWNkay1zZGstanMnKTtcblxuY29uc3QgdG9waWMgPSBuZXcgc25zLlRvcGljKHN0YWNrLCAnVG9waWMnKTtcblxuY29uc3Qgc25zUHVibGlzaCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ1B1Ymxpc2gnLCB7XG4gIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6U05TUHVibGlzaGVyJyxcbiAgb25VcGRhdGU6IHtcbiAgICBzZXJ2aWNlOiAnU05TJyxcbiAgICBhY3Rpb246ICdwdWJsaXNoJyxcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBNZXNzYWdlOiAnaGVsbG8nLFxuICAgICAgVG9waWNBcm46IHRvcGljLnRvcGljQXJuXG4gICAgfSxcbiAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZih0b3BpYy50b3BpY0FybiksXG4gIH1cbn0pO1xuXG5jb25zdCBsaXN0VG9waWNzID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnTGlzdFRvcGljcycsIHtcbiAgb25VcGRhdGU6IHtcbiAgICBzZXJ2aWNlOiAnU05TJyxcbiAgICBhY3Rpb246ICdsaXN0VG9waWNzJyxcbiAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ1RvcGljcy4wLlRvcGljQXJuJylcbiAgfVxufSk7XG5saXN0VG9waWNzLm5vZGUuYWRkRGVwZW5kZW5jeSh0b3BpYyk7XG5cbmNvbnN0IHNzbVBhcmFtZXRlciA9IG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKHN0YWNrLCAnRHVtbXlQYXJhbWV0ZXInLCB7XG4gIHN0cmluZ1ZhbHVlOiAnMTMzNycsXG59KTtcbmNvbnN0IGdldFBhcmFtZXRlciA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0dldFBhcmFtZXRlcicsIHtcbiAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTU01QYXJhbWV0ZXInLFxuICBvblVwZGF0ZToge1xuICAgIHNlcnZpY2U6ICdTU00nLFxuICAgIGFjdGlvbjogJ2dldFBhcmFtZXRlcicsXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgTmFtZTogc3NtUGFyYW1ldGVyLnBhcmFtZXRlck5hbWUsXG4gICAgICBXaXRoRGVjcnlwdGlvbjogdHJ1ZVxuICAgIH0sXG4gICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlKCdQYXJhbWV0ZXIuQVJOJylcbiAgfVxufSk7XG5cbm5ldyBjZGsuQ2ZuT3V0cHV0KHN0YWNrLCAnTWVzc2FnZUlkJywgeyB2YWx1ZTogc25zUHVibGlzaC5nZXREYXRhU3RyaW5nKCdNZXNzYWdlSWQnKSB9KTtcbm5ldyBjZGsuQ2ZuT3V0cHV0KHN0YWNrLCAnVG9waWNBcm4nLCB7IHZhbHVlOiBsaXN0VG9waWNzLmdldERhdGFTdHJpbmcoJ1RvcGljcy4wLlRvcGljQXJuJykgfSk7XG5uZXcgY2RrLkNmbk91dHB1dChzdGFjaywgJ1BhcmFtZXRlclZhbHVlJywgeyB2YWx1ZTogZ2V0UGFyYW1ldGVyLmdldERhdGFTdHJpbmcoJ1BhcmFtZXRlci5WYWx1ZScpIH0pO1xuXG5hcHAuc3ludGgoKTtcbiJdfQ==

Sorry, the diff of this file is not supported yet

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