Socket
Socket
Sign inDemoInstall

@aws-amplify/deployed-backend-client

Package Overview
Dependencies
Maintainers
10
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-amplify/deployed-backend-client - npm Package Compare versions

Comparing version 0.4.0-beta.2 to 0.4.0-beta.3

17

lib/deployed_backend_client_factory.d.ts

@@ -18,3 +18,3 @@ import { AwsCredentialIdentityProvider } from '@aws-sdk/types';

}
export type SandboxMetadata = {
export type BackendSummaryMetadata = {
name: string;

@@ -25,4 +25,5 @@ lastUpdated: Date | undefined;

};
export type ListSandboxesRequest = {
nextToken?: string;
export type ListBackendsRequest = {
deploymentType: DeploymentType;
backendStatusFilters?: BackendStatus[];
};

@@ -70,5 +71,4 @@ export type DeployedBackendResource = {

};
export type ListSandboxesResponse = {
sandboxes: SandboxMetadata[];
nextToken: string | undefined;
export type ListBackendsResponse = {
getBackendSummaryByPage: () => AsyncGenerator<BackendSummaryMetadata[]>;
};

@@ -83,4 +83,7 @@ export declare enum BackendDeploymentStatus {

}
export declare enum BackendStatus {
DELETE_FAILED = "DELETE_FAILED"
}
export type DeployedBackendClient = {
listSandboxes: (listSandboxesRequest?: ListSandboxesRequest) => Promise<ListSandboxesResponse>;
listBackends: (listBackendsRequest?: ListBackendsRequest) => ListBackendsResponse;
deleteSandbox: (sandboxBackendIdentifier: Omit<BackendIdentifier, 'type'>) => Promise<void>;

@@ -87,0 +90,0 @@ getBackendMetadata: (backendId: BackendIdentifier) => Promise<BackendMetadata>;

@@ -32,2 +32,6 @@ import { DefaultDeployedBackendClient } from './deployed_backend_client.js';

})(BackendDeploymentStatus || (BackendDeploymentStatus = {}));
export var BackendStatus;
(function (BackendStatus) {
BackendStatus["DELETE_FAILED"] = "DELETE_FAILED";
})(BackendStatus || (BackendStatus = {}));
/**

@@ -55,2 +59,2 @@ * Factory to create a DeploymentClient

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95ZWRfYmFja2VuZF9jbGllbnRfZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3llZF9iYWNrZW5kX2NsaWVudF9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFFTCwwQkFBMEIsR0FDM0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVwRSxNQUFNLENBQU4sSUFBWSxzQkFJWDtBQUpELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJFQUFpRCxDQUFBO0lBQ2pELGlEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBSWpDO0FBRUQsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBeUIsQ0FBQTtJQUN6QixrQ0FBbUIsQ0FBQTtJQUNuQixnREFBaUMsQ0FBQTtJQUNqQyxzRUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUE4REQsTUFBTSxDQUFOLElBQVksdUJBT1g7QUFQRCxXQUFZLHVCQUF1QjtJQUNqQyxnREFBcUIsQ0FBQTtJQUNyQiw0Q0FBaUIsQ0FBQTtJQUNqQixrREFBdUIsQ0FBQTtJQUN2QixnREFBcUIsQ0FBQTtJQUNyQiw4Q0FBbUIsQ0FBQTtJQUNuQiw4Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQU9sQztBQTRCRDs7R0FFRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7O09BRUc7SUFDSCxXQUFXLENBQ1QsT0FBNEM7UUFFNUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSwyQkFBMkIsQ0FDakUsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixTQUFTLENBQ1YsQ0FBQztRQUVGLElBQ0UscUJBQXFCLElBQUksT0FBTztZQUNoQyxzQkFBc0IsSUFBSSxPQUFPO1lBQ2pDLFVBQVUsSUFBSSxPQUFPLEVBQ3JCO1lBQ0EsT0FBTyxJQUFJLDRCQUE0QixDQUNyQyxPQUFPLENBQUMsb0JBQW9CLEVBQzVCLE9BQU8sQ0FBQyxRQUFRLEVBQ2hCLE9BQU8sQ0FBQyxtQkFBbUIsRUFDM0IsMkJBQTJCLEVBQzNCLGlCQUFpQixFQUNqQixTQUFTLENBQ1YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLDRCQUE0QixDQUNyQyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFDN0MsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUNqQywwQkFBMEIsQ0FBQyxXQUFXLENBQUM7WUFDckMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1NBQ2pDLENBQUMsRUFDRiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXIgfSBmcm9tICdAYXdzLXNkay90eXBlcyc7XG5pbXBvcnQgeyBEZWZhdWx0RGVwbG95ZWRCYWNrZW5kQ2xpZW50IH0gZnJvbSAnLi9kZXBsb3llZF9iYWNrZW5kX2NsaWVudC5qcyc7XG5pbXBvcnQgeyBCYWNrZW5kSWRlbnRpZmllciwgRGVwbG95bWVudFR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvcGx1Z2luLXR5cGVzJztcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7XG4gIEJhY2tlbmRPdXRwdXRDbGllbnQsXG4gIEJhY2tlbmRPdXRwdXRDbGllbnRGYWN0b3J5LFxufSBmcm9tICcuL2JhY2tlbmRfb3V0cHV0X2NsaWVudF9mYWN0b3J5LmpzJztcbmltcG9ydCB7IFMzQ2xpZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCB7IERlcGxveWVkUmVzb3VyY2VzRW51bWVyYXRvciB9IGZyb20gJy4vZGVwbG95ZWQtYmFja2VuZC1jbGllbnQvZGVwbG95ZWRfcmVzb3VyY2VzX2VudW1lcmF0b3IuanMnO1xuaW1wb3J0IHsgU3RhY2tTdGF0dXNNYXBwZXIgfSBmcm9tICcuL2RlcGxveWVkLWJhY2tlbmQtY2xpZW50L3N0YWNrX3N0YXR1c19tYXBwZXIuanMnO1xuaW1wb3J0IHsgQXJuR2VuZXJhdG9yIH0gZnJvbSAnLi9kZXBsb3llZC1iYWNrZW5kLWNsaWVudC9hcm5fZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IEFyblBhcnNlciB9IGZyb20gJy4vZGVwbG95ZWQtYmFja2VuZC1jbGllbnQvYXJuX3BhcnNlci5qcyc7XG5cbmV4cG9ydCBlbnVtIENvbmZsaWN0UmVzb2x1dGlvbk1vZGUge1xuICBMQU1CREEgPSAnTEFNQkRBJyxcbiAgT1BUSU1JU1RJQ19DT05DVVJSRU5DWSA9ICdPUFRJTUlTVElDX0NPTkNVUlJFTkNZJyxcbiAgQVVUT01FUkdFID0gJ0FVVE9NRVJHRScsXG59XG5cbmV4cG9ydCBlbnVtIEFwaUF1dGhUeXBlIHtcbiAgQVBJX0tFWSA9ICdBUElfS0VZJyxcbiAgQVdTX0xBTUJEQSA9ICdBV1NfTEFNQkRBJyxcbiAgQVdTX0lBTSA9ICdBV1NfSUFNJyxcbiAgT1BFTklEX0NPTk5FQ1QgPSAnT1BFTklEX0NPTk5FQ1QnLFxuICBBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTID0gJ0FNQVpPTl9DT0dOSVRPX1VTRVJfUE9PTFMnLFxufVxuXG5leHBvcnQgdHlwZSBTYW5kYm94TWV0YWRhdGEgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHN0YXR1czogQmFja2VuZERlcGxveW1lbnRTdGF0dXM7XG4gIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXIgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0U2FuZGJveGVzUmVxdWVzdCA9IHtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kUmVzb3VyY2UgPSB7XG4gIGxvZ2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nO1xuICBsYXN0VXBkYXRlZD86IERhdGU7XG4gIHJlc291cmNlU3RhdHVzPzogc3RyaW5nO1xuICByZXNvdXJjZVN0YXR1c1JlYXNvbj86IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xuICBwaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmc7XG4gIGFybj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRNZXRhZGF0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgZGVwbG95bWVudFR5cGU6IERlcGxveW1lbnRUeXBlO1xuICBzdGF0dXM6IEJhY2tlbmREZXBsb3ltZW50U3RhdHVzO1xuICByZXNvdXJjZXM6IERlcGxveWVkQmFja2VuZFJlc291cmNlW107XG4gIGFwaUNvbmZpZ3VyYXRpb24/OiB7XG4gICAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICBncmFwaHFsRW5kcG9pbnQ6IHN0cmluZztcbiAgICBkZWZhdWx0QXV0aFR5cGU6IEFwaUF1dGhUeXBlO1xuICAgIGFkZGl0aW9uYWxBdXRoVHlwZXM6IEFwaUF1dGhUeXBlW107XG4gICAgY29uZmxpY3RSZXNvbHV0aW9uTW9kZT86IENvbmZsaWN0UmVzb2x1dGlvbk1vZGU7XG4gICAgYXBpSWQ6IHN0cmluZztcbiAgfTtcbiAgYXV0aENvbmZpZ3VyYXRpb24/OiB7XG4gICAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICB1c2VyUG9vbElkOiBzdHJpbmc7XG4gIH07XG4gIHN0b3JhZ2VDb25maWd1cmF0aW9uPzoge1xuICAgIHN0YXR1czogQmFja2VuZERlcGxveW1lbnRTdGF0dXM7XG4gICAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgczNCdWNrZXROYW1lOiBzdHJpbmc7XG4gIH07XG4gIGZ1bmN0aW9uQ29uZmlndXJhdGlvbnM/OiBGdW5jdGlvbkNvbmZpZ3VyYXRpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uQ29uZmlndXJhdGlvbiA9IHtcbiAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdFNhbmRib3hlc1Jlc3BvbnNlID0ge1xuICBzYW5kYm94ZXM6IFNhbmRib3hNZXRhZGF0YVtdO1xuICBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBlbnVtIEJhY2tlbmREZXBsb3ltZW50U3RhdHVzIHtcbiAgREVQTE9ZRUQgPSAnREVQTE9ZRUQnLFxuICBGQUlMRUQgPSAnRkFJTEVEJyxcbiAgREVQTE9ZSU5HID0gJ0RFUExPWUlORycsXG4gIERFTEVUSU5HID0gJ0RFTEVUSU5HJyxcbiAgREVMRVRFRCA9ICdERUxFVEVEJyxcbiAgVU5LTk9XTiA9ICdVTktOT1dOJyxcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kQ2xpZW50ID0ge1xuICBsaXN0U2FuZGJveGVzOiAoXG4gICAgbGlzdFNhbmRib3hlc1JlcXVlc3Q/OiBMaXN0U2FuZGJveGVzUmVxdWVzdFxuICApID0+IFByb21pc2U8TGlzdFNhbmRib3hlc1Jlc3BvbnNlPjtcbiAgZGVsZXRlU2FuZGJveDogKFxuICAgIHNhbmRib3hCYWNrZW5kSWRlbnRpZmllcjogT21pdDxCYWNrZW5kSWRlbnRpZmllciwgJ3R5cGUnPlxuICApID0+IFByb21pc2U8dm9pZD47XG4gIGdldEJhY2tlbmRNZXRhZGF0YTogKFxuICAgIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXJcbiAgKSA9PiBQcm9taXNlPEJhY2tlbmRNZXRhZGF0YT47XG59O1xuXG5leHBvcnQgdHlwZSBEZXBsb3llZEJhY2tlbmRDbGllbnRPcHRpb25zID0ge1xuICBzM0NsaWVudDogUzNDbGllbnQ7XG4gIGNsb3VkRm9ybWF0aW9uQ2xpZW50OiBDbG91ZEZvcm1hdGlvbkNsaWVudDtcbiAgYmFja2VuZE91dHB1dENsaWVudDogQmFja2VuZE91dHB1dENsaWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIERlcGxveWVkQmFja2VuZENyZWRlbnRpYWxzT3B0aW9ucyA9IHtcbiAgY3JlZGVudGlhbHM6IEF3c0NyZWRlbnRpYWxJZGVudGl0eVByb3ZpZGVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kQ2xpZW50RmFjdG9yeU9wdGlvbnMgPVxuICB8IERlcGxveWVkQmFja2VuZENyZWRlbnRpYWxzT3B0aW9uc1xuICB8IERlcGxveWVkQmFja2VuZENsaWVudE9wdGlvbnM7XG5cbi8qKlxuICogRmFjdG9yeSB0byBjcmVhdGUgYSBEZXBsb3ltZW50Q2xpZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBsb3llZEJhY2tlbmRDbGllbnRGYWN0b3J5IHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgRGVwbG95bWVudENsaWVudFxuICAgKi9cbiAgZ2V0SW5zdGFuY2UoXG4gICAgb3B0aW9uczogRGVwbG95ZWRCYWNrZW5kQ2xpZW50RmFjdG9yeU9wdGlvbnNcbiAgKTogRGVwbG95ZWRCYWNrZW5kQ2xpZW50IHtcbiAgICBjb25zdCBzdGFja1N0YXR1c01hcHBlciA9IG5ldyBTdGFja1N0YXR1c01hcHBlcigpO1xuICAgIGNvbnN0IGFybkdlbmVyYXRvciA9IG5ldyBBcm5HZW5lcmF0b3IoKTtcbiAgICBjb25zdCBhcm5QYXJzZXIgPSBuZXcgQXJuUGFyc2VyKCk7XG4gICAgY29uc3QgZGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yID0gbmV3IERlcGxveWVkUmVzb3VyY2VzRW51bWVyYXRvcihcbiAgICAgIHN0YWNrU3RhdHVzTWFwcGVyLFxuICAgICAgYXJuR2VuZXJhdG9yLFxuICAgICAgYXJuUGFyc2VyXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICdiYWNrZW5kT3V0cHV0Q2xpZW50JyBpbiBvcHRpb25zICYmXG4gICAgICAnY2xvdWRGb3JtYXRpb25DbGllbnQnIGluIG9wdGlvbnMgJiZcbiAgICAgICdzM0NsaWVudCcgaW4gb3B0aW9uc1xuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0RGVwbG95ZWRCYWNrZW5kQ2xpZW50KFxuICAgICAgICBvcHRpb25zLmNsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICAgICAgICBvcHRpb25zLnMzQ2xpZW50LFxuICAgICAgICBvcHRpb25zLmJhY2tlbmRPdXRwdXRDbGllbnQsXG4gICAgICAgIGRlcGxveWVkUmVzb3VyY2VzRW51bWVyYXRvcixcbiAgICAgICAgc3RhY2tTdGF0dXNNYXBwZXIsXG4gICAgICAgIGFyblBhcnNlclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEZWZhdWx0RGVwbG95ZWRCYWNrZW5kQ2xpZW50KFxuICAgICAgbmV3IENsb3VkRm9ybWF0aW9uQ2xpZW50KG9wdGlvbnMuY3JlZGVudGlhbHMpLFxuICAgICAgbmV3IFMzQ2xpZW50KG9wdGlvbnMuY3JlZGVudGlhbHMpLFxuICAgICAgQmFja2VuZE91dHB1dENsaWVudEZhY3RvcnkuZ2V0SW5zdGFuY2Uoe1xuICAgICAgICBjcmVkZW50aWFsczogb3B0aW9ucy5jcmVkZW50aWFscyxcbiAgICAgIH0pLFxuICAgICAgZGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yLFxuICAgICAgc3RhY2tTdGF0dXNNYXBwZXIsXG4gICAgICBhcm5QYXJzZXJcbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95ZWRfYmFja2VuZF9jbGllbnRfZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3llZF9iYWNrZW5kX2NsaWVudF9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFFTCwwQkFBMEIsR0FDM0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVwRSxNQUFNLENBQU4sSUFBWSxzQkFJWDtBQUpELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJFQUFpRCxDQUFBO0lBQ2pELGlEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBSWpDO0FBRUQsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBeUIsQ0FBQTtJQUN6QixrQ0FBbUIsQ0FBQTtJQUNuQixnREFBaUMsQ0FBQTtJQUNqQyxzRUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUE4REQsTUFBTSxDQUFOLElBQVksdUJBT1g7QUFQRCxXQUFZLHVCQUF1QjtJQUNqQyxnREFBcUIsQ0FBQTtJQUNyQiw0Q0FBaUIsQ0FBQTtJQUNqQixrREFBdUIsQ0FBQTtJQUN2QixnREFBcUIsQ0FBQTtJQUNyQiw4Q0FBbUIsQ0FBQTtJQUNuQiw4Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQU9sQztBQUVELE1BQU0sQ0FBTixJQUFZLGFBRVg7QUFGRCxXQUFZLGFBQWE7SUFDdkIsZ0RBQStCLENBQUE7QUFDakMsQ0FBQyxFQUZXLGFBQWEsS0FBYixhQUFhLFFBRXhCO0FBNEJEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2Qzs7T0FFRztJQUNILFdBQVcsQ0FDVCxPQUE0QztRQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLDJCQUEyQixDQUNqRSxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFNBQVMsQ0FDVixDQUFDO1FBRUYsSUFDRSxxQkFBcUIsSUFBSSxPQUFPO1lBQ2hDLHNCQUFzQixJQUFJLE9BQU87WUFDakMsVUFBVSxJQUFJLE9BQU8sRUFDckI7WUFDQSxPQUFPLElBQUksNEJBQTRCLENBQ3JDLE9BQU8sQ0FBQyxvQkFBb0IsRUFDNUIsT0FBTyxDQUFDLFFBQVEsRUFDaEIsT0FBTyxDQUFDLG1CQUFtQixFQUMzQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLFNBQVMsQ0FDVixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksNEJBQTRCLENBQ3JDLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUM3QyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQ2pDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztZQUNyQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDakMsQ0FBQyxFQUNGLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlciB9IGZyb20gJ0Bhd3Mtc2RrL3R5cGVzJztcbmltcG9ydCB7IERlZmF1bHREZXBsb3llZEJhY2tlbmRDbGllbnQgfSBmcm9tICcuL2RlcGxveWVkX2JhY2tlbmRfY2xpZW50LmpzJztcbmltcG9ydCB7IEJhY2tlbmRJZGVudGlmaWVyLCBEZXBsb3ltZW50VHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9wbHVnaW4tdHlwZXMnO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25DbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHtcbiAgQmFja2VuZE91dHB1dENsaWVudCxcbiAgQmFja2VuZE91dHB1dENsaWVudEZhY3RvcnksXG59IGZyb20gJy4vYmFja2VuZF9vdXRwdXRfY2xpZW50X2ZhY3RvcnkuanMnO1xuaW1wb3J0IHsgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgRGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yIH0gZnJvbSAnLi9kZXBsb3llZC1iYWNrZW5kLWNsaWVudC9kZXBsb3llZF9yZXNvdXJjZXNfZW51bWVyYXRvci5qcyc7XG5pbXBvcnQgeyBTdGFja1N0YXR1c01hcHBlciB9IGZyb20gJy4vZGVwbG95ZWQtYmFja2VuZC1jbGllbnQvc3RhY2tfc3RhdHVzX21hcHBlci5qcyc7XG5pbXBvcnQgeyBBcm5HZW5lcmF0b3IgfSBmcm9tICcuL2RlcGxveWVkLWJhY2tlbmQtY2xpZW50L2Fybl9nZW5lcmF0b3IuanMnO1xuaW1wb3J0IHsgQXJuUGFyc2VyIH0gZnJvbSAnLi9kZXBsb3llZC1iYWNrZW5kLWNsaWVudC9hcm5fcGFyc2VyLmpzJztcblxuZXhwb3J0IGVudW0gQ29uZmxpY3RSZXNvbHV0aW9uTW9kZSB7XG4gIExBTUJEQSA9ICdMQU1CREEnLFxuICBPUFRJTUlTVElDX0NPTkNVUlJFTkNZID0gJ09QVElNSVNUSUNfQ09OQ1VSUkVOQ1knLFxuICBBVVRPTUVSR0UgPSAnQVVUT01FUkdFJyxcbn1cblxuZXhwb3J0IGVudW0gQXBpQXV0aFR5cGUge1xuICBBUElfS0VZID0gJ0FQSV9LRVknLFxuICBBV1NfTEFNQkRBID0gJ0FXU19MQU1CREEnLFxuICBBV1NfSUFNID0gJ0FXU19JQU0nLFxuICBPUEVOSURfQ09OTkVDVCA9ICdPUEVOSURfQ09OTkVDVCcsXG4gIEFNQVpPTl9DT0dOSVRPX1VTRVJfUE9PTFMgPSAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUycsXG59XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRTdW1tYXJ5TWV0YWRhdGEgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHN0YXR1czogQmFja2VuZERlcGxveW1lbnRTdGF0dXM7XG4gIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXIgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0QmFja2VuZHNSZXF1ZXN0ID0ge1xuICBkZXBsb3ltZW50VHlwZTogRGVwbG95bWVudFR5cGU7XG4gIGJhY2tlbmRTdGF0dXNGaWx0ZXJzPzogQmFja2VuZFN0YXR1c1tdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kUmVzb3VyY2UgPSB7XG4gIGxvZ2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nO1xuICBsYXN0VXBkYXRlZD86IERhdGU7XG4gIHJlc291cmNlU3RhdHVzPzogc3RyaW5nO1xuICByZXNvdXJjZVN0YXR1c1JlYXNvbj86IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xuICBwaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmc7XG4gIGFybj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRNZXRhZGF0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgZGVwbG95bWVudFR5cGU6IERlcGxveW1lbnRUeXBlO1xuICBzdGF0dXM6IEJhY2tlbmREZXBsb3ltZW50U3RhdHVzO1xuICByZXNvdXJjZXM6IERlcGxveWVkQmFja2VuZFJlc291cmNlW107XG4gIGFwaUNvbmZpZ3VyYXRpb24/OiB7XG4gICAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICBncmFwaHFsRW5kcG9pbnQ6IHN0cmluZztcbiAgICBkZWZhdWx0QXV0aFR5cGU6IEFwaUF1dGhUeXBlO1xuICAgIGFkZGl0aW9uYWxBdXRoVHlwZXM6IEFwaUF1dGhUeXBlW107XG4gICAgY29uZmxpY3RSZXNvbHV0aW9uTW9kZT86IENvbmZsaWN0UmVzb2x1dGlvbk1vZGU7XG4gICAgYXBpSWQ6IHN0cmluZztcbiAgfTtcbiAgYXV0aENvbmZpZ3VyYXRpb24/OiB7XG4gICAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgICBsYXN0VXBkYXRlZDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICB1c2VyUG9vbElkOiBzdHJpbmc7XG4gIH07XG4gIHN0b3JhZ2VDb25maWd1cmF0aW9uPzoge1xuICAgIHN0YXR1czogQmFja2VuZERlcGxveW1lbnRTdGF0dXM7XG4gICAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgczNCdWNrZXROYW1lOiBzdHJpbmc7XG4gIH07XG4gIGZ1bmN0aW9uQ29uZmlndXJhdGlvbnM/OiBGdW5jdGlvbkNvbmZpZ3VyYXRpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uQ29uZmlndXJhdGlvbiA9IHtcbiAgc3RhdHVzOiBCYWNrZW5kRGVwbG95bWVudFN0YXR1cztcbiAgbGFzdFVwZGF0ZWQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdEJhY2tlbmRzUmVzcG9uc2UgPSB7XG4gIGdldEJhY2tlbmRTdW1tYXJ5QnlQYWdlOiAoKSA9PiBBc3luY0dlbmVyYXRvcjxCYWNrZW5kU3VtbWFyeU1ldGFkYXRhW10+O1xufTtcblxuZXhwb3J0IGVudW0gQmFja2VuZERlcGxveW1lbnRTdGF0dXMge1xuICBERVBMT1lFRCA9ICdERVBMT1lFRCcsXG4gIEZBSUxFRCA9ICdGQUlMRUQnLFxuICBERVBMT1lJTkcgPSAnREVQTE9ZSU5HJyxcbiAgREVMRVRJTkcgPSAnREVMRVRJTkcnLFxuICBERUxFVEVEID0gJ0RFTEVURUQnLFxuICBVTktOT1dOID0gJ1VOS05PV04nLFxufVxuXG5leHBvcnQgZW51bSBCYWNrZW5kU3RhdHVzIHtcbiAgREVMRVRFX0ZBSUxFRCA9ICdERUxFVEVfRkFJTEVEJyxcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kQ2xpZW50ID0ge1xuICBsaXN0QmFja2VuZHM6IChcbiAgICBsaXN0QmFja2VuZHNSZXF1ZXN0PzogTGlzdEJhY2tlbmRzUmVxdWVzdFxuICApID0+IExpc3RCYWNrZW5kc1Jlc3BvbnNlO1xuICBkZWxldGVTYW5kYm94OiAoXG4gICAgc2FuZGJveEJhY2tlbmRJZGVudGlmaWVyOiBPbWl0PEJhY2tlbmRJZGVudGlmaWVyLCAndHlwZSc+XG4gICkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0QmFja2VuZE1ldGFkYXRhOiAoXG4gICAgYmFja2VuZElkOiBCYWNrZW5kSWRlbnRpZmllclxuICApID0+IFByb21pc2U8QmFja2VuZE1ldGFkYXRhPjtcbn07XG5cbmV4cG9ydCB0eXBlIERlcGxveWVkQmFja2VuZENsaWVudE9wdGlvbnMgPSB7XG4gIHMzQ2xpZW50OiBTM0NsaWVudDtcbiAgY2xvdWRGb3JtYXRpb25DbGllbnQ6IENsb3VkRm9ybWF0aW9uQ2xpZW50O1xuICBiYWNrZW5kT3V0cHV0Q2xpZW50OiBCYWNrZW5kT3V0cHV0Q2xpZW50O1xufTtcblxuZXhwb3J0IHR5cGUgRGVwbG95ZWRCYWNrZW5kQ3JlZGVudGlhbHNPcHRpb25zID0ge1xuICBjcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG59O1xuXG5leHBvcnQgdHlwZSBEZXBsb3llZEJhY2tlbmRDbGllbnRGYWN0b3J5T3B0aW9ucyA9XG4gIHwgRGVwbG95ZWRCYWNrZW5kQ3JlZGVudGlhbHNPcHRpb25zXG4gIHwgRGVwbG95ZWRCYWNrZW5kQ2xpZW50T3B0aW9ucztcblxuLyoqXG4gKiBGYWN0b3J5IHRvIGNyZWF0ZSBhIERlcGxveW1lbnRDbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveWVkQmFja2VuZENsaWVudEZhY3Rvcnkge1xuICAvKipcbiAgICogUmV0dXJucyBhIHNpbmdsZSBpbnN0YW5jZSBvZiBEZXBsb3ltZW50Q2xpZW50XG4gICAqL1xuICBnZXRJbnN0YW5jZShcbiAgICBvcHRpb25zOiBEZXBsb3llZEJhY2tlbmRDbGllbnRGYWN0b3J5T3B0aW9uc1xuICApOiBEZXBsb3llZEJhY2tlbmRDbGllbnQge1xuICAgIGNvbnN0IHN0YWNrU3RhdHVzTWFwcGVyID0gbmV3IFN0YWNrU3RhdHVzTWFwcGVyKCk7XG4gICAgY29uc3QgYXJuR2VuZXJhdG9yID0gbmV3IEFybkdlbmVyYXRvcigpO1xuICAgIGNvbnN0IGFyblBhcnNlciA9IG5ldyBBcm5QYXJzZXIoKTtcbiAgICBjb25zdCBkZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IgPSBuZXcgRGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yKFxuICAgICAgc3RhY2tTdGF0dXNNYXBwZXIsXG4gICAgICBhcm5HZW5lcmF0b3IsXG4gICAgICBhcm5QYXJzZXJcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgJ2JhY2tlbmRPdXRwdXRDbGllbnQnIGluIG9wdGlvbnMgJiZcbiAgICAgICdjbG91ZEZvcm1hdGlvbkNsaWVudCcgaW4gb3B0aW9ucyAmJlxuICAgICAgJ3MzQ2xpZW50JyBpbiBvcHRpb25zXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IERlZmF1bHREZXBsb3llZEJhY2tlbmRDbGllbnQoXG4gICAgICAgIG9wdGlvbnMuY2xvdWRGb3JtYXRpb25DbGllbnQsXG4gICAgICAgIG9wdGlvbnMuczNDbGllbnQsXG4gICAgICAgIG9wdGlvbnMuYmFja2VuZE91dHB1dENsaWVudCxcbiAgICAgICAgZGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yLFxuICAgICAgICBzdGFja1N0YXR1c01hcHBlcixcbiAgICAgICAgYXJuUGFyc2VyXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERlZmF1bHREZXBsb3llZEJhY2tlbmRDbGllbnQoXG4gICAgICBuZXcgQ2xvdWRGb3JtYXRpb25DbGllbnQob3B0aW9ucy5jcmVkZW50aWFscyksXG4gICAgICBuZXcgUzNDbGllbnQob3B0aW9ucy5jcmVkZW50aWFscyksXG4gICAgICBCYWNrZW5kT3V0cHV0Q2xpZW50RmFjdG9yeS5nZXRJbnN0YW5jZSh7XG4gICAgICAgIGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgfSksXG4gICAgICBkZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IsXG4gICAgICBzdGFja1N0YXR1c01hcHBlcixcbiAgICAgIGFyblBhcnNlclxuICAgICk7XG4gIH1cbn1cbiJdfQ==
import { BackendIdentifier } from '@aws-amplify/plugin-types';
import { BackendMetadata, DeployedBackendClient, ListSandboxesRequest, ListSandboxesResponse } from './deployed_backend_client_factory.js';
import { BackendMetadata, DeployedBackendClient, ListBackendsRequest, ListBackendsResponse } from './deployed_backend_client_factory.js';
import { BackendOutputClient } from './backend_output_client_factory.js';

@@ -31,7 +31,9 @@ import { CloudFormationClient } from '@aws-sdk/client-cloudformation';

getBackendMetadata: (backendId: BackendIdentifier) => Promise<BackendMetadata>;
listBackends: (listBackendsRequest?: ListBackendsRequest) => ListBackendsResponse;
/**
* Returns Amplify Sandboxes for the account and region. The number of sandboxes returned can vary
* Returns a list of stacks for specific deployment type and status
* @yields
*/
listSandboxes: (listSandboxesRequest?: ListSandboxesRequest) => Promise<ListSandboxesResponse>;
private isSandboxStack;
private listBackendsInternal;
private getBackendStackType;
private tryGetDeploymentType;

@@ -38,0 +40,0 @@ private listStacks;

@@ -44,17 +44,25 @@ import { BackendIdentifierConversions } from '@aws-amplify/platform-core';

};
listBackends = (listBackendsRequest) => {
const backends = this.listBackendsInternal(listBackendsRequest);
return {
getBackendSummaryByPage: () => backends,
};
};
/**
* Returns Amplify Sandboxes for the account and region. The number of sandboxes returned can vary
* Returns a list of stacks for specific deployment type and status
* @yields
*/
listSandboxes = async (listSandboxesRequest) => {
async *listBackendsInternal(listBackendsRequest) {
const stackMetadata = [];
let nextToken = listSandboxesRequest?.nextToken;
let nextToken;
const deploymentType = listBackendsRequest?.deploymentType;
const statusFilter = listBackendsRequest?.backendStatusFilters
? listBackendsRequest?.backendStatusFilters
: [];
do {
const listStacksResponse = await this.listStacks(nextToken);
const listStacksResponse = await this.listStacks(nextToken, statusFilter);
const stackMetadataPromises = listStacksResponse.stackSummaries
.filter((stackSummary) => {
return stackSummary.StackStatus !== StackStatus.DELETE_COMPLETE;
return (this.getBackendStackType(stackSummary.StackName) === deploymentType);
})
.filter((stackSummary) => {
return this.isSandboxStack(stackSummary.StackName);
})
.map(async (stackSummary) => {

@@ -71,14 +79,13 @@ const deploymentType = await this.tryGetDeploymentType(stackSummary);

const stackMetadataResolvedPromises = await Promise.all(stackMetadataPromises);
const filteredMetadata = stackMetadataResolvedPromises.filter((stackMetadata) => stackMetadata.deploymentType === 'sandbox');
const filteredMetadata = stackMetadataResolvedPromises.filter((stackMetadata) => stackMetadata.deploymentType === deploymentType);
stackMetadata.push(...filteredMetadata);
nextToken = listStacksResponse.nextToken;
if (stackMetadata.length !== 0) {
yield stackMetadata;
}
} while (stackMetadata.length === 0 && nextToken);
return {
sandboxes: stackMetadata,
nextToken,
};
};
isSandboxStack = (stackName) => {
}
getBackendStackType = (stackName) => {
const backendIdentifier = BackendIdentifierConversions.fromStackName(stackName);
return backendIdentifier?.type === 'sandbox';
return backendIdentifier?.type;
};

@@ -103,4 +110,9 @@ tryGetDeploymentType = async (stackSummary) => {

};
listStacks = async (nextToken) => {
const stacks = await this.cfnClient.send(new ListStacksCommand({ NextToken: nextToken }));
listStacks = async (nextToken, stackStatusFilter) => {
const stacks = await this.cfnClient.send(new ListStacksCommand({
NextToken: nextToken,
StackStatusFilter: stackStatusFilter.length > 0
? stackStatusFilter
: Object.values(StackStatus).filter((status) => status !== StackStatus.DELETE_COMPLETE),
}));
nextToken = stacks.NextToken;

@@ -226,2 +238,2 @@ return { stackSummaries: stacks.StackSummaries ?? [], nextToken };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95ZWRfYmFja2VuZF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVwbG95ZWRfYmFja2VuZF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUdMLDRCQUE0QixHQUM3QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFJakIsV0FBVyxHQUVaLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSxxQ0FBcUMsQ0FBQztBQUs3Qzs7R0FFRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFLcEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBVG5COztPQUVHO0lBQ0gsWUFDbUIsU0FBK0IsRUFDL0IsUUFBa0IsRUFDbEIsbUJBQXdDLEVBQ3hDLDJCQUF3RCxFQUN4RCxpQkFBb0MsRUFDcEMsU0FBb0I7UUFMcEIsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQ3BDLENBQUM7SUFFSjs7T0FFRztJQUNILGFBQWEsR0FBRyxLQUFLLEVBQ25CLHdCQUF5RCxFQUMxQyxFQUFFO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLDRCQUE0QixDQUFDLFdBQVcsQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWNrZW5kSWRlbnRpZmllcixcbiAgQmFja2VuZE91dHB1dCxcbiAgRGVwbG95bWVudFR5cGUsXG59IGZyb20gJ0Bhd3MtYW1wbGlmeS9wbHVnaW4tdHlwZXMnO1xuaW1wb3J0IHtcbiAgQXBpQXV0aFR5cGUsXG4gIEJhY2tlbmRNZXRhZGF0YSxcbiAgQ29uZmxpY3RSZXNvbHV0aW9uTW9kZSxcbiAgRGVwbG95ZWRCYWNrZW5kQ2xpZW50LFxuICBGdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG4gIExpc3RTYW5kYm94ZXNSZXF1ZXN0LFxuICBMaXN0U2FuZGJveGVzUmVzcG9uc2UsXG4gIFNhbmRib3hNZXRhZGF0YSxcbn0gZnJvbSAnLi9kZXBsb3llZF9iYWNrZW5kX2NsaWVudF9mYWN0b3J5LmpzJztcbmltcG9ydCB7IEJhY2tlbmRJZGVudGlmaWVyQ29udmVyc2lvbnMgfSBmcm9tICdAYXdzLWFtcGxpZnkvcGxhdGZvcm0tY29yZSc7XG5pbXBvcnQge1xuICBCYWNrZW5kT3V0cHV0Q2xpZW50LFxuICBCYWNrZW5kT3V0cHV0Q2xpZW50RXJyb3IsXG4gIEJhY2tlbmRPdXRwdXRDbGllbnRFcnJvclR5cGUsXG59IGZyb20gJy4vYmFja2VuZF9vdXRwdXRfY2xpZW50X2ZhY3RvcnkuanMnO1xuaW1wb3J0IHtcbiAgQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja3NDb21tYW5kLFxuICBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kLFxuICBMaXN0U3RhY2tzQ29tbWFuZCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQsXG4gIFN0YWNrLFxuICBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgU3RhY2tTdGF0dXMsXG4gIFN0YWNrU3VtbWFyeSxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcblxuaW1wb3J0IHsgR2V0T2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtcbiAgYXV0aE91dHB1dEtleSxcbiAgZnVuY3Rpb25PdXRwdXRLZXksXG4gIGdyYXBocWxPdXRwdXRLZXksXG4gIHBsYXRmb3JtT3V0cHV0S2V5LFxuICBzdG9yYWdlT3V0cHV0S2V5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQgeyBEZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IgfSBmcm9tICcuL2RlcGxveWVkLWJhY2tlbmQtY2xpZW50L2RlcGxveWVkX3Jlc291cmNlc19lbnVtZXJhdG9yLmpzJztcbmltcG9ydCB7IFN0YWNrU3RhdHVzTWFwcGVyIH0gZnJvbSAnLi9kZXBsb3llZC1iYWNrZW5kLWNsaWVudC9zdGFja19zdGF0dXNfbWFwcGVyLmpzJztcbmltcG9ydCB7IEFyblBhcnNlciB9IGZyb20gJy4vZGVwbG95ZWQtYmFja2VuZC1jbGllbnQvYXJuX3BhcnNlci5qcyc7XG5cbi8qKlxuICogRGVwbG95bWVudCBDbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHREZXBsb3llZEJhY2tlbmRDbGllbnQgaW1wbGVtZW50cyBEZXBsb3llZEJhY2tlbmRDbGllbnQge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIGRlcGxveW1lbnQgY2xpZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNmbkNsaWVudDogQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzM0NsaWVudDogUzNDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBiYWNrZW5kT3V0cHV0Q2xpZW50OiBCYWNrZW5kT3V0cHV0Q2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yOiBEZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFja1N0YXR1c01hcHBlcjogU3RhY2tTdGF0dXNNYXBwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcm5QYXJzZXI6IEFyblBhcnNlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBzYW5kYm94IHdpdGggdGhlIHNwZWNpZmllZCBpZFxuICAgKi9cbiAgZGVsZXRlU2FuZGJveCA9IGFzeW5jIChcbiAgICBzYW5kYm94QmFja2VuZElkZW50aWZpZXI6IE9taXQ8QmFja2VuZElkZW50aWZpZXIsICd0eXBlJz5cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gQmFja2VuZElkZW50aWZpZXJDb252ZXJzaW9ucy50b1N0YWNrTmFtZSh7XG4gICAgICAuLi5zYW5kYm94QmFja2VuZElkZW50aWZpZXIsXG4gICAgICB0eXBlOiAnc2FuZGJveCcsXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChuZXcgRGVsZXRlU3RhY2tDb21tYW5kKHsgU3RhY2tOYW1lOiBzdGFja05hbWUgfSkpO1xuICB9O1xuICAvKipcbiAgICogRmV0Y2hlcyBhbGwgYmFja2VuZCBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpZWQgYmFja2VuZFxuICAgKi9cbiAgZ2V0QmFja2VuZE1ldGFkYXRhID0gYXN5bmMgKFxuICAgIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXJcbiAgKTogUHJvbWlzZTxCYWNrZW5kTWV0YWRhdGE+ID0+IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBCYWNrZW5kSWRlbnRpZmllckNvbnZlcnNpb25zLnRvU3RhY2tOYW1lKGJhY2tlbmRJZCk7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRCYWNrZW5kTWV0YWRhdGEoc3RhY2tOYW1lKTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBBbXBsaWZ5IFNhbmRib3hlcyBmb3IgdGhlIGFjY291bnQgYW5kIHJlZ2lvbi4gVGhlIG51bWJlciBvZiBzYW5kYm94ZXMgcmV0dXJuZWQgY2FuIHZhcnlcbiAgICovXG4gIGxpc3RTYW5kYm94ZXMgPSBhc3luYyAoXG4gICAgbGlzdFNhbmRib3hlc1JlcXVlc3Q/OiBMaXN0U2FuZGJveGVzUmVxdWVzdFxuICApOiBQcm9taXNlPExpc3RTYW5kYm94ZXNSZXNwb25zZT4gPT4ge1xuICAgIGNvbnN0IHN0YWNrTWV0YWRhdGE6IFNhbmRib3hNZXRhZGF0YVtdID0gW107XG4gICAgbGV0IG5leHRUb2tlbiA9IGxpc3RTYW5kYm94ZXNSZXF1ZXN0Py5uZXh0VG9rZW47XG5cbiAgICBkbyB7XG4gICAgICBjb25zdCBsaXN0U3RhY2tzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmxpc3RTdGFja3MobmV4dFRva2VuKTtcbiAgICAgIGNvbnN0IHN0YWNrTWV0YWRhdGFQcm9taXNlcyA9IGxpc3RTdGFja3NSZXNwb25zZS5zdGFja1N1bW1hcmllc1xuICAgICAgICAuZmlsdGVyKChzdGFja1N1bW1hcnk6IFN0YWNrU3VtbWFyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdGFja1N1bW1hcnkuU3RhY2tTdGF0dXMgIT09IFN0YWNrU3RhdHVzLkRFTEVURV9DT01QTEVURTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoc3RhY2tTdW1tYXJ5OiBTdGFja1N1bW1hcnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc1NhbmRib3hTdGFjayhzdGFja1N1bW1hcnkuU3RhY2tOYW1lKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcChhc3luYyAoc3RhY2tTdW1tYXJ5OiBTdGFja1N1bW1hcnkpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBsb3ltZW50VHlwZSA9IGF3YWl0IHRoaXMudHJ5R2V0RGVwbG95bWVudFR5cGUoc3RhY2tTdW1tYXJ5KTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBzdGFja1N1bW1hcnkuU3RhY2tOYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXJDb252ZXJzaW9ucy5mcm9tU3RhY2tOYW1lKFxuICAgICAgICAgICAgICBzdGFja1N1bW1hcnkuU3RhY2tOYW1lXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGFzdFVwZGF0ZWQ6XG4gICAgICAgICAgICAgIHN0YWNrU3VtbWFyeS5MYXN0VXBkYXRlZFRpbWUgPz8gc3RhY2tTdW1tYXJ5LkNyZWF0aW9uVGltZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICAgICAgc3RhY2tTdW1tYXJ5LlN0YWNrU3RhdHVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVwbG95bWVudFR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN0YWNrTWV0YWRhdGFSZXNvbHZlZFByb21pc2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHN0YWNrTWV0YWRhdGFQcm9taXNlc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkTWV0YWRhdGEgPSBzdGFja01ldGFkYXRhUmVzb2x2ZWRQcm9taXNlcy5maWx0ZXIoXG4gICAgICAgIChzdGFja01ldGFkYXRhKSA9PiBzdGFja01ldGFkYXRhLmRlcGxveW1lbnRUeXBlID09PSAnc2FuZGJveCdcbiAgICAgICk7XG5cbiAgICAgIHN0YWNrTWV0YWRhdGEucHVzaCguLi5maWx0ZXJlZE1ldGFkYXRhKTtcbiAgICAgIG5leHRUb2tlbiA9IGxpc3RTdGFja3NSZXNwb25zZS5uZXh0VG9rZW47XG4gICAgfSB3aGlsZSAoc3RhY2tNZXRhZGF0YS5sZW5ndGggPT09IDAgJiYgbmV4dFRva2VuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzYW5kYm94ZXM6IHN0YWNrTWV0YWRhdGEsXG4gICAgICBuZXh0VG9rZW4sXG4gICAgfTtcbiAgfTtcblxuICBwcml2YXRlIGlzU2FuZGJveFN0YWNrID0gKHN0YWNrTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgYmFja2VuZElkZW50aWZpZXIgPVxuICAgICAgQmFja2VuZElkZW50aWZpZXJDb252ZXJzaW9ucy5mcm9tU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgcmV0dXJuIGJhY2tlbmRJZGVudGlmaWVyPy50eXBlID09PSAnc2FuZGJveCc7XG4gIH07XG5cbiAgcHJpdmF0ZSB0cnlHZXREZXBsb3ltZW50VHlwZSA9IGFzeW5jIChcbiAgICBzdGFja1N1bW1hcnk6IFN0YWNrU3VtbWFyeVxuICApOiBQcm9taXNlPERlcGxveW1lbnRUeXBlIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3QgYmFja2VuZElkZW50aWZpZXIgPSB7XG4gICAgICBzdGFja05hbWU6IHN0YWNrU3VtbWFyeS5TdGFja05hbWUgYXMgc3RyaW5nLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFja2VuZE91dHB1dDogQmFja2VuZE91dHB1dCA9XG4gICAgICAgIGF3YWl0IHRoaXMuYmFja2VuZE91dHB1dENsaWVudC5nZXRPdXRwdXQoYmFja2VuZElkZW50aWZpZXIpO1xuXG4gICAgICByZXR1cm4gYmFja2VuZE91dHB1dFtwbGF0Zm9ybU91dHB1dEtleV0ucGF5bG9hZFxuICAgICAgICAuZGVwbG95bWVudFR5cGUgYXMgRGVwbG95bWVudFR5cGU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGVycm9yIGFzIEJhY2tlbmRPdXRwdXRDbGllbnRFcnJvcikuY29kZSA9PT1cbiAgICAgICAgQmFja2VuZE91dHB1dENsaWVudEVycm9yVHlwZS5NRVRBREFUQV9SRVRSSUVWQUxfRVJST1JcbiAgICAgICkge1xuICAgICAgICAvLyBJZ25vcmUgc3RhY2tzIHdoZXJlIG1ldGFkYXRhIGNhbm5vdCBiZSByZXRyaWV2ZWQuIFRoZXNlIGFyZSBub3QgQW1wbGlmeSBzdGFja3MsIG9yIG5vdCBjb21wYXRpYmxlIHdpdGggdGhpcyBsaWJyYXJ5LlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBsaXN0U3RhY2tzID0gYXN5bmMgKFxuICAgIG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8e1xuICAgIHN0YWNrU3VtbWFyaWVzOiBTdGFja1N1bW1hcnlbXTtcbiAgICBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfT4gPT4ge1xuICAgIGNvbnN0IHN0YWNrczogTGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQgPSBhd2FpdCB0aGlzLmNmbkNsaWVudC5zZW5kKFxuICAgICAgbmV3IExpc3RTdGFja3NDb21tYW5kKHsgTmV4dFRva2VuOiBuZXh0VG9rZW4gfSlcbiAgICApO1xuICAgIG5leHRUb2tlbiA9IHN0YWNrcy5OZXh0VG9rZW47XG4gICAgcmV0dXJuIHsgc3RhY2tTdW1tYXJpZXM6IHN0YWNrcy5TdGFja1N1bW1hcmllcyA/PyBbXSwgbmV4dFRva2VuIH07XG4gIH07XG5cbiAgcHJpdmF0ZSBidWlsZEJhY2tlbmRNZXRhZGF0YSA9IGFzeW5jIChcbiAgICBzdGFja05hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPEJhY2tlbmRNZXRhZGF0YT4gPT4ge1xuICAgIGNvbnN0IHN0YWNrQmFja2VuZElkZW50aWZpZXIgPSB7XG4gICAgICBzdGFja05hbWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGJhY2tlbmRPdXRwdXQ6IEJhY2tlbmRPdXRwdXQgPVxuICAgICAgYXdhaXQgdGhpcy5iYWNrZW5kT3V0cHV0Q2xpZW50LmdldE91dHB1dChzdGFja0JhY2tlbmRJZGVudGlmaWVyKTtcbiAgICBjb25zdCBzdGFja0Rlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KVxuICAgICk7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja0Rlc2NyaXB0aW9uPy5TdGFja3M/LlswXTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgc3RhY2s/LlN0YWNrU3RhdHVzXG4gICAgKTtcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IHN0YWNrPy5MYXN0VXBkYXRlZFRpbWUgPz8gc3RhY2s/LkNyZWF0aW9uVGltZTtcblxuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgIG5ldyBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgY2hpbGRTdGFja1Byb21pc2VzOiBQcm9taXNlPFN0YWNrIHwgdW5kZWZpbmVkPltdID1cbiAgICAgIHN0YWNrUmVzb3VyY2VzLlN0YWNrUmVzb3VyY2VTdW1tYXJpZXM/LmZpbHRlcihcbiAgICAgICAgKHN0YWNrUmVzb3VyY2VTdW1tYXJ5OiBTdGFja1Jlc291cmNlU3VtbWFyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzdGFja1Jlc291cmNlU3VtbWFyeS5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaydcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApLm1hcChhc3luYyAoc3RhY2tSZXNvdXJjZVN1bW1hcnk6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5KSA9PiB7XG4gICAgICAgIC8vIGFybjphd3M6e3NlcnZpY2V9OntyZWdpb259OnthY2NvdW50fTpzdGFjay97c3RhY2tOYW1lfS97YWRkaXRpb25hbEZpZWxkc31cbiAgICAgICAgY29uc3QgYXJuUGFydHMgPSBzdGFja1Jlc291cmNlU3VtbWFyeS5QaHlzaWNhbFJlc291cmNlSWQ/LnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IGNoaWxkU3RhY2tOYW1lID0gYXJuUGFydHM/LlsxXTtcbiAgICAgICAgaWYgKCFjaGlsZFN0YWNrTmFtZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFja0Rlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBjaGlsZFN0YWNrTmFtZSB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHN0YWNrID0gc3RhY2tEZXNjcmlwdGlvbj8uU3RhY2tzPy5bMF07XG4gICAgICAgIHJldHVybiBzdGFjaztcbiAgICAgIH0pID8/IFtdO1xuXG4gICAgY29uc3QgY2hpbGRTdGFja3MgPSBhd2FpdCBQcm9taXNlLmFsbChjaGlsZFN0YWNrUHJvbWlzZXMpO1xuICAgIGNvbnN0IGF1dGhTdGFjayA9IGNoaWxkU3RhY2tzLmZpbmQoXG4gICAgICAobmVzdGVkU3RhY2s6IFN0YWNrU3VtbWFyeSB8IHVuZGVmaW5lZCkgPT5cbiAgICAgICAgbmVzdGVkU3RhY2s/LlN0YWNrTmFtZT8uaW5jbHVkZXMoJ2F1dGgnKVxuICAgICk7XG4gICAgY29uc3Qgc3RvcmFnZVN0YWNrID0gY2hpbGRTdGFja3MuZmluZChcbiAgICAgIChuZXN0ZWRTdGFjazogU3RhY2tTdW1tYXJ5IHwgdW5kZWZpbmVkKSA9PlxuICAgICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnc3RvcmFnZScpXG4gICAgKTtcbiAgICBjb25zdCBhcGlTdGFjayA9IGNoaWxkU3RhY2tzLmZpbmQoKG5lc3RlZFN0YWNrOiBTdGFja1N1bW1hcnkgfCB1bmRlZmluZWQpID0+XG4gICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnZGF0YScpXG4gICAgKTtcbiAgICBjb25zdCBmdW5jdGlvblN0YWNrID0gY2hpbGRTdGFja3MuZmluZChcbiAgICAgIChuZXN0ZWRTdGFjazogU3RhY2tTdW1tYXJ5IHwgdW5kZWZpbmVkKSA9PlxuICAgICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnZnVuY3Rpb24nKVxuICAgICk7XG5cbiAgICAvLyBzdGFjaz8uU3RhY2tJZCBpcyB0aGUgQVJOIG9mIHRoZSBzdGFja1xuICAgIGNvbnN0IHsgYWNjb3VudElkLCByZWdpb24gfSA9IHRoaXMuYXJuUGFyc2VyLnRyeVBhcnNlQXJuKFxuICAgICAgc3RhY2s/LlN0YWNrSWQgYXMgc3RyaW5nXG4gICAgKTtcbiAgICBjb25zdCByZXNvdXJjZXMgPVxuICAgICAgYXdhaXQgdGhpcy5kZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IubGlzdERlcGxveWVkUmVzb3VyY2VzKFxuICAgICAgICB0aGlzLmNmbkNsaWVudCxcbiAgICAgICAgc3RhY2tOYW1lLFxuICAgICAgICBhY2NvdW50SWQsXG4gICAgICAgIHJlZ2lvblxuICAgICAgKTtcblxuICAgIGNvbnN0IGJhY2tlbmRNZXRhZGF0YU9iamVjdDogQmFja2VuZE1ldGFkYXRhID0ge1xuICAgICAgZGVwbG95bWVudFR5cGU6IGJhY2tlbmRPdXRwdXRbcGxhdGZvcm1PdXRwdXRLZXldLnBheWxvYWRcbiAgICAgICAgLmRlcGxveW1lbnRUeXBlIGFzIERlcGxveW1lbnRUeXBlLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBzdGF0dXMsXG4gICAgICBuYW1lOiBzdGFja05hbWUsXG4gICAgICByZXNvdXJjZXMsXG4gICAgfTtcblxuICAgIGlmIChhdXRoU3RhY2spIHtcbiAgICAgIGJhY2tlbmRNZXRhZGF0YU9iamVjdC5hdXRoQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgc3RhdHVzOiB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgICAgIGF1dGhTdGFjay5TdGFja1N0YXR1c1xuICAgICAgICApLFxuICAgICAgICBsYXN0VXBkYXRlZDogYXV0aFN0YWNrLkxhc3RVcGRhdGVkVGltZSA/PyBhdXRoU3RhY2suQ3JlYXRpb25UaW1lLFxuICAgICAgICB1c2VyUG9vbElkOiBiYWNrZW5kT3V0cHV0W2F1dGhPdXRwdXRLZXldPy5wYXlsb2FkLnVzZXJQb29sSWQgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmFnZVN0YWNrKSB7XG4gICAgICBiYWNrZW5kTWV0YWRhdGFPYmplY3Quc3RvcmFnZUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICBzdG9yYWdlU3RhY2suU3RhY2tTdGF0dXNcbiAgICAgICAgKSxcbiAgICAgICAgbGFzdFVwZGF0ZWQ6IHN0b3JhZ2VTdGFjay5MYXN0VXBkYXRlZFRpbWUgPz8gc3RvcmFnZVN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgczNCdWNrZXROYW1lOiBiYWNrZW5kT3V0cHV0W3N0b3JhZ2VPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmJ1Y2tldE5hbWUgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoYXBpU3RhY2spIHtcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXNTdHJpbmcgPVxuICAgICAgICBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcztcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXMgPSBhZGRpdGlvbmFsQXV0aFR5cGVzU3RyaW5nXG4gICAgICAgID8gKGFkZGl0aW9uYWxBdXRoVHlwZXNTdHJpbmcuc3BsaXQoJywnKSBhcyBBcGlBdXRoVHlwZVtdKVxuICAgICAgICA6IFtdO1xuICAgICAgYmFja2VuZE1ldGFkYXRhT2JqZWN0LmFwaUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICBhcGlTdGFjay5TdGFja1N0YXR1c1xuICAgICAgICApLFxuICAgICAgICBsYXN0VXBkYXRlZDogYXBpU3RhY2suTGFzdFVwZGF0ZWRUaW1lID8/IGFwaVN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgZ3JhcGhxbEVuZHBvaW50OiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBcGlFbmRwb2ludCBhcyBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHRBdXRoVHlwZTogYmFja2VuZE91dHB1dFtncmFwaHFsT3V0cHV0S2V5XT8ucGF5bG9hZFxuICAgICAgICAgIC5hd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlIGFzIEFwaUF1dGhUeXBlLFxuICAgICAgICBhZGRpdGlvbmFsQXV0aFR5cGVzLFxuICAgICAgICBjb25mbGljdFJlc29sdXRpb25Nb2RlOiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNDb25mbGljdFJlc29sdXRpb25Nb2RlIGFzIENvbmZsaWN0UmVzb2x1dGlvbk1vZGUsXG4gICAgICAgIGFwaUlkOiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBcGlJZCBhcyBzdHJpbmcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChmdW5jdGlvblN0YWNrKSB7XG4gICAgICBjb25zdCBmdW5jdGlvblJlc291cmNlcyA9IHJlc291cmNlcy5maWx0ZXIoXG4gICAgICAgIChyZXNvdXJjZSkgPT4gcmVzb3VyY2UucmVzb3VyY2VUeXBlID09PSAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uQ29uZmlndXJhdGlvbnM6IEZ1bmN0aW9uQ29uZmlndXJhdGlvbltdID0gW107XG4gICAgICBjb25zdCBkZWZpbmVkRnVuY3Rpb25zU3RyaW5nID1cbiAgICAgICAgYmFja2VuZE91dHB1dFtmdW5jdGlvbk91dHB1dEtleV0/LnBheWxvYWQuZGVmaW5lZEZ1bmN0aW9ucztcbiAgICAgIGNvbnN0IGN1c3RvbWVyRnVuY3Rpb25OYW1lcyA9IGRlZmluZWRGdW5jdGlvbnNTdHJpbmdcbiAgICAgICAgPyAoSlNPTi5wYXJzZShkZWZpbmVkRnVuY3Rpb25zU3RyaW5nKSBhcyBzdHJpbmdbXSlcbiAgICAgICAgOiBbXTtcblxuICAgICAgY3VzdG9tZXJGdW5jdGlvbk5hbWVzLmZvckVhY2goKGZ1bmN0aW9uTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZSA9IGZ1bmN0aW9uUmVzb3VyY2VzLmZpbmQoXG4gICAgICAgICAgKGZ1bmMpID0+IGZ1bmMucGh5c2ljYWxSZXNvdXJjZUlkID09PSBmdW5jdGlvbk5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICBmdW5jdGlvbkNvbmZpZ3VyYXRpb25zLnB1c2goe1xuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVN0YXR1c1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGVkOlxuICAgICAgICAgICAgICByZXNvdXJjZS5sYXN0VXBkYXRlZCA/P1xuICAgICAgICAgICAgICBmdW5jdGlvblN0YWNrLkxhc3RVcGRhdGVkVGltZSA/P1xuICAgICAgICAgICAgICBmdW5jdGlvblN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGJhY2tlbmRNZXRhZGF0YU9iamVjdC5mdW5jdGlvbkNvbmZpZ3VyYXRpb25zID0gZnVuY3Rpb25Db25maWd1cmF0aW9ucztcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2VuZE1ldGFkYXRhT2JqZWN0O1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hTY2hlbWEgPSBhc3luYyAoXG4gICAgc2NoZW1hUzNVcmk6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGlmICghc2NoZW1hUzNVcmkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hUzNVcmkgb3V0cHV0IGlzIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG5cbiAgICAvLyBzMzovL3tidWNrZXROYW1lfS97ZmlsZU5hbWV9XG4gICAgY29uc3QgdXJpUGFydHMgPSBzY2hlbWFTM1VyaS5zcGxpdCgnLycpO1xuICAgIGNvbnN0IGJ1Y2tldE5hbWUgPSB1cmlQYXJ0c1syXTtcbiAgICBjb25zdCBvYmplY3RQYXRoID0gdXJpUGFydHMuc2xpY2UoMywgdXJpUGFydHMubGVuZ3RoKS5qb2luKCcvJyk7XG5cbiAgICBpZiAoIWJ1Y2tldE5hbWUgfHwgIW9iamVjdFBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hUzNVcmkgaXMgbm90IHZhbGlkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgczNSZXNwb25zZSA9IGF3YWl0IHRoaXMuczNDbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRPYmplY3RDb21tYW5kKHsgQnVja2V0OiBidWNrZXROYW1lLCBLZXk6IG9iamVjdFBhdGggfSlcbiAgICApO1xuXG4gICAgaWYgKCFzM1Jlc3BvbnNlLkJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgczNSZXNwb25zZSBmcm9tICR7c2NoZW1hUzNVcml9IGRvZXMgbm90IGNvbnRhaW4gYSBCb2R5YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHMzUmVzcG9uc2UuQm9keT8udHJhbnNmb3JtVG9TdHJpbmcoKTtcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95ZWRfYmFja2VuZF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVwbG95ZWRfYmFja2VuZF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFHTCw0QkFBNEIsR0FDN0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsaUJBQWlCLEVBSWpCLFdBQVcsR0FFWixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENBQUM7QUFLN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBS3BCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRuQjs7T0FFRztJQUNILFlBQ21CLFNBQStCLEVBQy9CLFFBQWtCLEVBQ2xCLG1CQUF3QyxFQUN4QywyQkFBd0QsRUFDeEQsaUJBQW9DLEVBQ3BDLFNBQW9CO1FBTHBCLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUNwQyxDQUFDO0lBRUo7O09BRUc7SUFDSCxhQUFhLEdBQUcsS0FBSyxFQUNuQix3QkFBeUQsRUFDMUMsRUFBRTtRQUNqQixNQUFNLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxXQUFXLENBQUM7WUFDekQsR0FBRyx3QkFBd0I7WUFDM0IsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7SUFDRjs7T0FFRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsU0FBNEIsRUFDRixFQUFFO1FBQzVCLE1BQU0sU0FBUyxHQUFHLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUM7SUFFRixZQUFZLEdBQUcsQ0FDYixtQkFBeUMsRUFDbkIsRUFBRTtRQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNoRSxPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUTtTQUN4QyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0ssS0FBSyxDQUFDLENBQUMsb0JBQW9CLENBQ2pDLG1CQUF5QztRQUV6QyxNQUFNLGFBQWEsR0FBNkIsRUFBRSxDQUFDO1FBQ25ELElBQUksU0FBUyxDQUFDO1FBQ2QsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixFQUFFLG9CQUFvQjtZQUM1RCxDQUFDLENBQUMsbUJBQW1CLEVBQUUsb0JBQW9CO1lBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxHQUFHO1lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRTFFLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUMsY0FBYztpQkFDNUQsTUFBTSxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO2dCQUNyQyxPQUFPLENBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxjQUFjLENBQ3BFLENBQUM7WUFDSixDQUFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUEwQixFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUVyRSxPQUFPO29CQUNMLElBQUksRUFBRSxZQUFZLENBQUMsU0FBbUI7b0JBQ3RDLFNBQVMsRUFBRSw0QkFBNEIsQ0FBQyxhQUFhLENBQ25ELFlBQVksQ0FBQyxTQUFTLENBQ3ZCO29CQUNELFdBQVcsRUFDVCxZQUFZLENBQUMsZUFBZSxJQUFJLFlBQVksQ0FBQyxZQUFZO29CQUMzRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUNqRCxZQUFZLENBQUMsV0FBVyxDQUN6QjtvQkFDRCxjQUFjO2lCQUNmLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVMLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNyRCxxQkFBcUIsQ0FDdEIsQ0FBQztZQUNGLE1BQU0sZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxDQUMzRCxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLGNBQWMsS0FBSyxjQUFjLENBQ25FLENBQUM7WUFFRixhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUN4QyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1lBRXpDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sYUFBYSxDQUFDO2FBQ3JCO1NBQ0YsUUFBUSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUU7SUFDcEQsQ0FBQztJQUVPLG1CQUFtQixHQUFHLENBQzVCLFNBQTZCLEVBQ1QsRUFBRTtRQUN0QixNQUFNLGlCQUFpQixHQUNyQiw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsT0FBTyxpQkFBaUIsRUFBRSxJQUFJLENBQUM7SUFDakMsQ0FBQyxDQUFDO0lBRU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNsQyxZQUEwQixFQUNXLEVBQUU7UUFDdkMsTUFBTSxpQkFBaUIsR0FBRztZQUN4QixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQW1CO1NBQzVDLENBQUM7UUFFRixJQUFJO1lBQ0YsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRTlELE9BQU8sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTztpQkFDNUMsY0FBZ0MsQ0FBQztTQUNyQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFDRyxLQUFrQyxDQUFDLElBQUk7Z0JBQ3hDLDRCQUE0QixDQUFDLHdCQUF3QixFQUNyRDtnQkFDQSx1SEFBdUg7Z0JBQ3ZILE9BQU87YUFDUjtZQUNELE1BQU0sS0FBSyxDQUFDO1NBQ2I7SUFDSCxDQUFDLENBQUM7SUFFTSxVQUFVLEdBQUcsS0FBSyxFQUN4QixTQUE2QixFQUM3QixpQkFBa0MsRUFJakMsRUFBRTtRQUNILE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvRCxJQUFJLGlCQUFpQixDQUFDO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLGlCQUFpQixFQUNmLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUMxQixDQUFDLENBQUMsaUJBQWlCO2dCQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FDbkQ7U0FDUixDQUFDLENBQ0gsQ0FBQztRQUNGLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0lBRU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNsQyxTQUFpQixFQUNTLEVBQUU7UUFDNUIsTUFBTSxzQkFBc0IsR0FBRztZQUM3QixTQUFTO1NBQ1YsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUNqQixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2hELElBQUkscUJBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDcEQsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FDeEQsS0FBSyxFQUFFLFdBQVcsQ0FDbkIsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxlQUFlLElBQUksS0FBSyxFQUFFLFlBQVksQ0FBQztRQUVsRSxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM5QyxJQUFJLHlCQUF5QixDQUFDO1lBQzVCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxrQkFBa0IsR0FDdEIsY0FBYyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FDM0MsQ0FBQyxvQkFBMEMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sQ0FDTCxvQkFBb0IsQ0FBQyxZQUFZLEtBQUssNEJBQTRCLENBQ25FLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLG9CQUEwQyxFQUFFLEVBQUU7WUFDekQsNEVBQTRFO1lBQzVFLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRSxNQUFNLGNBQWMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixPQUFPO2FBQ1I7WUFDRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2hELElBQUkscUJBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FDekQsQ0FBQztZQUVGLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVgsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FDaEMsQ0FBQyxXQUFxQyxFQUFFLEVBQUUsQ0FDeEMsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQzNDLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUNuQyxDQUFDLFdBQXFDLEVBQUUsRUFBRSxDQUN4QyxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDOUMsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFxQyxFQUFFLEVBQUUsQ0FDMUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3pDLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUNwQyxDQUFDLFdBQXFDLEVBQUUsRUFBRSxDQUN4QyxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDL0MsQ0FBQztRQUVGLHlDQUF5QztRQUN6QyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUN0RCxLQUFLLEVBQUUsT0FBaUIsQ0FDekIsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUNiLE1BQU0sSUFBSSxDQUFDLDJCQUEyQixDQUFDLHFCQUFxQixDQUMxRCxJQUFJLENBQUMsU0FBUyxFQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxDQUNQLENBQUM7UUFFSixNQUFNLHFCQUFxQixHQUFvQjtZQUM3QyxjQUFjLEVBQUUsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTztpQkFDckQsY0FBZ0M7WUFDbkMsV0FBVztZQUNYLE1BQU07WUFDTixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVM7U0FDVixDQUFDO1FBRUYsSUFBSSxTQUFTLEVBQUU7WUFDYixxQkFBcUIsQ0FBQyxpQkFBaUIsR0FBRztnQkFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FDakQsU0FBUyxDQUFDLFdBQVcsQ0FDdEI7Z0JBQ0QsV0FBVyxFQUFFLFNBQVMsQ0FBQyxlQUFlLElBQUksU0FBUyxDQUFDLFlBQVk7Z0JBQ2hFLFVBQVUsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQW9CO2FBQ3ZFLENBQUM7U0FDSDtRQUVELElBQUksWUFBWSxFQUFFO1lBQ2hCLHFCQUFxQixDQUFDLG9CQUFvQixHQUFHO2dCQUMzQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUNqRCxZQUFZLENBQUMsV0FBVyxDQUN6QjtnQkFDRCxXQUFXLEVBQUUsWUFBWSxDQUFDLGVBQWUsSUFBSSxZQUFZLENBQUMsWUFBWTtnQkFDdEUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU87cUJBQ25ELFVBQW9CO2FBQ3hCLENBQUM7U0FDSDtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSx5QkFBeUIsR0FDN0IsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTztpQkFDckMsdUNBQXVDLENBQUM7WUFDN0MsTUFBTSxtQkFBbUIsR0FBRyx5QkFBeUI7Z0JBQ25ELENBQUMsQ0FBRSx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFtQjtnQkFDekQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLHFCQUFxQixDQUFDLGdCQUFnQixHQUFHO2dCQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUNqRCxRQUFRLENBQUMsV0FBVyxDQUNyQjtnQkFDRCxXQUFXLEVBQUUsUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsWUFBWTtnQkFDOUQsZUFBZSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU87cUJBQ3RELHFCQUErQjtnQkFDbEMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU87cUJBQ3RELDRCQUEyQztnQkFDOUMsbUJBQW1CO2dCQUNuQixzQkFBc0IsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPO3FCQUM3RCxnQ0FBMEQ7Z0JBQzdELEtBQUssRUFBRSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPO3FCQUM1QyxlQUF5QjthQUM3QixDQUFDO1NBQ0g7UUFFRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQ3hDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLHVCQUF1QixDQUNoRSxDQUFDO1lBQ0YsTUFBTSxzQkFBc0IsR0FBNEIsRUFBRSxDQUFDO1lBQzNELE1BQU0sc0JBQXNCLEdBQzFCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztZQUM3RCxNQUFNLHFCQUFxQixHQUFHLHNCQUFzQjtnQkFDbEQsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQWM7Z0JBQ2xELENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFUCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDN0MsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUNyQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixLQUFLLFlBQVksQ0FDbkQsQ0FBQztnQkFFRixJQUFJLFFBQVEsRUFBRTtvQkFDWixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7d0JBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQ2pELFFBQVEsQ0FBQyxjQUFjLENBQ3hCO3dCQUNELFdBQVcsRUFDVCxRQUFRLENBQUMsV0FBVzs0QkFDcEIsYUFBYSxDQUFDLGVBQWU7NEJBQzdCLGFBQWEsQ0FBQyxZQUFZO3dCQUM1QixZQUFZO3FCQUNiLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgscUJBQXFCLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7U0FDdkU7UUFFRCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUVNLFdBQVcsR0FBRyxLQUFLLEVBQ3pCLFdBQStCLEVBQ2QsRUFBRTtRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN4RDtRQUVELCtCQUErQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDekMsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQzlELENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixXQUFXLDBCQUEwQixDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLE1BQU0sVUFBVSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BELENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFja2VuZElkZW50aWZpZXIsXG4gIEJhY2tlbmRPdXRwdXQsXG4gIERlcGxveW1lbnRUeXBlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvcGx1Z2luLXR5cGVzJztcbmltcG9ydCB7XG4gIEFwaUF1dGhUeXBlLFxuICBCYWNrZW5kTWV0YWRhdGEsXG4gIEJhY2tlbmRTdGF0dXMsXG4gIEJhY2tlbmRTdW1tYXJ5TWV0YWRhdGEsXG4gIENvbmZsaWN0UmVzb2x1dGlvbk1vZGUsXG4gIERlcGxveWVkQmFja2VuZENsaWVudCxcbiAgRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBMaXN0QmFja2VuZHNSZXF1ZXN0LFxuICBMaXN0QmFja2VuZHNSZXNwb25zZSxcbn0gZnJvbSAnLi9kZXBsb3llZF9iYWNrZW5kX2NsaWVudF9mYWN0b3J5LmpzJztcbmltcG9ydCB7IEJhY2tlbmRJZGVudGlmaWVyQ29udmVyc2lvbnMgfSBmcm9tICdAYXdzLWFtcGxpZnkvcGxhdGZvcm0tY29yZSc7XG5pbXBvcnQge1xuICBCYWNrZW5kT3V0cHV0Q2xpZW50LFxuICBCYWNrZW5kT3V0cHV0Q2xpZW50RXJyb3IsXG4gIEJhY2tlbmRPdXRwdXRDbGllbnRFcnJvclR5cGUsXG59IGZyb20gJy4vYmFja2VuZF9vdXRwdXRfY2xpZW50X2ZhY3RvcnkuanMnO1xuaW1wb3J0IHtcbiAgQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja3NDb21tYW5kLFxuICBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kLFxuICBMaXN0U3RhY2tzQ29tbWFuZCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQsXG4gIFN0YWNrLFxuICBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgU3RhY2tTdGF0dXMsXG4gIFN0YWNrU3VtbWFyeSxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcblxuaW1wb3J0IHsgR2V0T2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtcbiAgYXV0aE91dHB1dEtleSxcbiAgZnVuY3Rpb25PdXRwdXRLZXksXG4gIGdyYXBocWxPdXRwdXRLZXksXG4gIHBsYXRmb3JtT3V0cHV0S2V5LFxuICBzdG9yYWdlT3V0cHV0S2V5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQgeyBEZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IgfSBmcm9tICcuL2RlcGxveWVkLWJhY2tlbmQtY2xpZW50L2RlcGxveWVkX3Jlc291cmNlc19lbnVtZXJhdG9yLmpzJztcbmltcG9ydCB7IFN0YWNrU3RhdHVzTWFwcGVyIH0gZnJvbSAnLi9kZXBsb3llZC1iYWNrZW5kLWNsaWVudC9zdGFja19zdGF0dXNfbWFwcGVyLmpzJztcbmltcG9ydCB7IEFyblBhcnNlciB9IGZyb20gJy4vZGVwbG95ZWQtYmFja2VuZC1jbGllbnQvYXJuX3BhcnNlci5qcyc7XG5cbi8qKlxuICogRGVwbG95bWVudCBDbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHREZXBsb3llZEJhY2tlbmRDbGllbnQgaW1wbGVtZW50cyBEZXBsb3llZEJhY2tlbmRDbGllbnQge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIGRlcGxveW1lbnQgY2xpZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNmbkNsaWVudDogQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzM0NsaWVudDogUzNDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBiYWNrZW5kT3V0cHV0Q2xpZW50OiBCYWNrZW5kT3V0cHV0Q2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95ZWRSZXNvdXJjZXNFbnVtZXJhdG9yOiBEZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFja1N0YXR1c01hcHBlcjogU3RhY2tTdGF0dXNNYXBwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcm5QYXJzZXI6IEFyblBhcnNlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBzYW5kYm94IHdpdGggdGhlIHNwZWNpZmllZCBpZFxuICAgKi9cbiAgZGVsZXRlU2FuZGJveCA9IGFzeW5jIChcbiAgICBzYW5kYm94QmFja2VuZElkZW50aWZpZXI6IE9taXQ8QmFja2VuZElkZW50aWZpZXIsICd0eXBlJz5cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gQmFja2VuZElkZW50aWZpZXJDb252ZXJzaW9ucy50b1N0YWNrTmFtZSh7XG4gICAgICAuLi5zYW5kYm94QmFja2VuZElkZW50aWZpZXIsXG4gICAgICB0eXBlOiAnc2FuZGJveCcsXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChuZXcgRGVsZXRlU3RhY2tDb21tYW5kKHsgU3RhY2tOYW1lOiBzdGFja05hbWUgfSkpO1xuICB9O1xuICAvKipcbiAgICogRmV0Y2hlcyBhbGwgYmFja2VuZCBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpZWQgYmFja2VuZFxuICAgKi9cbiAgZ2V0QmFja2VuZE1ldGFkYXRhID0gYXN5bmMgKFxuICAgIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXJcbiAgKTogUHJvbWlzZTxCYWNrZW5kTWV0YWRhdGE+ID0+IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBCYWNrZW5kSWRlbnRpZmllckNvbnZlcnNpb25zLnRvU3RhY2tOYW1lKGJhY2tlbmRJZCk7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRCYWNrZW5kTWV0YWRhdGEoc3RhY2tOYW1lKTtcbiAgfTtcblxuICBsaXN0QmFja2VuZHMgPSAoXG4gICAgbGlzdEJhY2tlbmRzUmVxdWVzdD86IExpc3RCYWNrZW5kc1JlcXVlc3RcbiAgKTogTGlzdEJhY2tlbmRzUmVzcG9uc2UgPT4ge1xuICAgIGNvbnN0IGJhY2tlbmRzID0gdGhpcy5saXN0QmFja2VuZHNJbnRlcm5hbChsaXN0QmFja2VuZHNSZXF1ZXN0KTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0QmFja2VuZFN1bW1hcnlCeVBhZ2U6ICgpID0+IGJhY2tlbmRzLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIHN0YWNrcyBmb3Igc3BlY2lmaWMgZGVwbG95bWVudCB0eXBlIGFuZCBzdGF0dXNcbiAgICogQHlpZWxkc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyAqbGlzdEJhY2tlbmRzSW50ZXJuYWwoXG4gICAgbGlzdEJhY2tlbmRzUmVxdWVzdD86IExpc3RCYWNrZW5kc1JlcXVlc3RcbiAgKSB7XG4gICAgY29uc3Qgc3RhY2tNZXRhZGF0YTogQmFja2VuZFN1bW1hcnlNZXRhZGF0YVtdID0gW107XG4gICAgbGV0IG5leHRUb2tlbjtcbiAgICBjb25zdCBkZXBsb3ltZW50VHlwZSA9IGxpc3RCYWNrZW5kc1JlcXVlc3Q/LmRlcGxveW1lbnRUeXBlO1xuICAgIGNvbnN0IHN0YXR1c0ZpbHRlciA9IGxpc3RCYWNrZW5kc1JlcXVlc3Q/LmJhY2tlbmRTdGF0dXNGaWx0ZXJzXG4gICAgICA/IGxpc3RCYWNrZW5kc1JlcXVlc3Q/LmJhY2tlbmRTdGF0dXNGaWx0ZXJzXG4gICAgICA6IFtdO1xuICAgIGRvIHtcbiAgICAgIGNvbnN0IGxpc3RTdGFja3NSZXNwb25zZSA9IGF3YWl0IHRoaXMubGlzdFN0YWNrcyhuZXh0VG9rZW4sIHN0YXR1c0ZpbHRlcik7XG5cbiAgICAgIGNvbnN0IHN0YWNrTWV0YWRhdGFQcm9taXNlcyA9IGxpc3RTdGFja3NSZXNwb25zZS5zdGFja1N1bW1hcmllc1xuICAgICAgICAuZmlsdGVyKChzdGFja1N1bW1hcnk6IFN0YWNrU3VtbWFyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmdldEJhY2tlbmRTdGFja1R5cGUoc3RhY2tTdW1tYXJ5LlN0YWNrTmFtZSkgPT09IGRlcGxveW1lbnRUeXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcChhc3luYyAoc3RhY2tTdW1tYXJ5OiBTdGFja1N1bW1hcnkpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBsb3ltZW50VHlwZSA9IGF3YWl0IHRoaXMudHJ5R2V0RGVwbG95bWVudFR5cGUoc3RhY2tTdW1tYXJ5KTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBzdGFja1N1bW1hcnkuU3RhY2tOYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGJhY2tlbmRJZDogQmFja2VuZElkZW50aWZpZXJDb252ZXJzaW9ucy5mcm9tU3RhY2tOYW1lKFxuICAgICAgICAgICAgICBzdGFja1N1bW1hcnkuU3RhY2tOYW1lXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGFzdFVwZGF0ZWQ6XG4gICAgICAgICAgICAgIHN0YWNrU3VtbWFyeS5MYXN0VXBkYXRlZFRpbWUgPz8gc3RhY2tTdW1tYXJ5LkNyZWF0aW9uVGltZSxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICAgICAgc3RhY2tTdW1tYXJ5LlN0YWNrU3RhdHVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVwbG95bWVudFR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN0YWNrTWV0YWRhdGFSZXNvbHZlZFByb21pc2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHN0YWNrTWV0YWRhdGFQcm9taXNlc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkTWV0YWRhdGEgPSBzdGFja01ldGFkYXRhUmVzb2x2ZWRQcm9taXNlcy5maWx0ZXIoXG4gICAgICAgIChzdGFja01ldGFkYXRhKSA9PiBzdGFja01ldGFkYXRhLmRlcGxveW1lbnRUeXBlID09PSBkZXBsb3ltZW50VHlwZVxuICAgICAgKTtcblxuICAgICAgc3RhY2tNZXRhZGF0YS5wdXNoKC4uLmZpbHRlcmVkTWV0YWRhdGEpO1xuICAgICAgbmV4dFRva2VuID0gbGlzdFN0YWNrc1Jlc3BvbnNlLm5leHRUb2tlbjtcblxuICAgICAgaWYgKHN0YWNrTWV0YWRhdGEubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHlpZWxkIHN0YWNrTWV0YWRhdGE7XG4gICAgICB9XG4gICAgfSB3aGlsZSAoc3RhY2tNZXRhZGF0YS5sZW5ndGggPT09IDAgJiYgbmV4dFRva2VuKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QmFja2VuZFN0YWNrVHlwZSA9IChcbiAgICBzdGFja05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGJhY2tlbmRJZGVudGlmaWVyID1cbiAgICAgIEJhY2tlbmRJZGVudGlmaWVyQ29udmVyc2lvbnMuZnJvbVN0YWNrTmFtZShzdGFja05hbWUpO1xuICAgIHJldHVybiBiYWNrZW5kSWRlbnRpZmllcj8udHlwZTtcbiAgfTtcblxuICBwcml2YXRlIHRyeUdldERlcGxveW1lbnRUeXBlID0gYXN5bmMgKFxuICAgIHN0YWNrU3VtbWFyeTogU3RhY2tTdW1tYXJ5XG4gICk6IFByb21pc2U8RGVwbG95bWVudFR5cGUgfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBjb25zdCBiYWNrZW5kSWRlbnRpZmllciA9IHtcbiAgICAgIHN0YWNrTmFtZTogc3RhY2tTdW1tYXJ5LlN0YWNrTmFtZSBhcyBzdHJpbmcsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYWNrZW5kT3V0cHV0OiBCYWNrZW5kT3V0cHV0ID1cbiAgICAgICAgYXdhaXQgdGhpcy5iYWNrZW5kT3V0cHV0Q2xpZW50LmdldE91dHB1dChiYWNrZW5kSWRlbnRpZmllcik7XG5cbiAgICAgIHJldHVybiBiYWNrZW5kT3V0cHV0W3BsYXRmb3JtT3V0cHV0S2V5XS5wYXlsb2FkXG4gICAgICAgIC5kZXBsb3ltZW50VHlwZSBhcyBEZXBsb3ltZW50VHlwZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKFxuICAgICAgICAoZXJyb3IgYXMgQmFja2VuZE91dHB1dENsaWVudEVycm9yKS5jb2RlID09PVxuICAgICAgICBCYWNrZW5kT3V0cHV0Q2xpZW50RXJyb3JUeXBlLk1FVEFEQVRBX1JFVFJJRVZBTF9FUlJPUlxuICAgICAgKSB7XG4gICAgICAgIC8vIElnbm9yZSBzdGFja3Mgd2hlcmUgbWV0YWRhdGEgY2Fubm90IGJlIHJldHJpZXZlZC4gVGhlc2UgYXJlIG5vdCBBbXBsaWZ5IHN0YWNrcywgb3Igbm90IGNvbXBhdGlibGUgd2l0aCB0aGlzIGxpYnJhcnkuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGxpc3RTdGFja3MgPSBhc3luYyAoXG4gICAgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgc3RhY2tTdGF0dXNGaWx0ZXI6IEJhY2tlbmRTdGF0dXNbXVxuICApOiBQcm9taXNlPHtcbiAgICBzdGFja1N1bW1hcmllczogU3RhY2tTdW1tYXJ5W107XG4gICAgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0+ID0+IHtcbiAgICBjb25zdCBzdGFja3M6IExpc3RTdGFja3NDb21tYW5kT3V0cHV0ID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgIG5ldyBMaXN0U3RhY2tzQ29tbWFuZCh7XG4gICAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgICBTdGFja1N0YXR1c0ZpbHRlcjpcbiAgICAgICAgICBzdGFja1N0YXR1c0ZpbHRlci5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHN0YWNrU3RhdHVzRmlsdGVyXG4gICAgICAgICAgICA6IE9iamVjdC52YWx1ZXMoU3RhY2tTdGF0dXMpLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoc3RhdHVzKSA9PiBzdGF0dXMgIT09IFN0YWNrU3RhdHVzLkRFTEVURV9DT01QTEVURVxuICAgICAgICAgICAgICApLFxuICAgICAgfSlcbiAgICApO1xuICAgIG5leHRUb2tlbiA9IHN0YWNrcy5OZXh0VG9rZW47XG4gICAgcmV0dXJuIHsgc3RhY2tTdW1tYXJpZXM6IHN0YWNrcy5TdGFja1N1bW1hcmllcyA/PyBbXSwgbmV4dFRva2VuIH07XG4gIH07XG5cbiAgcHJpdmF0ZSBidWlsZEJhY2tlbmRNZXRhZGF0YSA9IGFzeW5jIChcbiAgICBzdGFja05hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPEJhY2tlbmRNZXRhZGF0YT4gPT4ge1xuICAgIGNvbnN0IHN0YWNrQmFja2VuZElkZW50aWZpZXIgPSB7XG4gICAgICBzdGFja05hbWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGJhY2tlbmRPdXRwdXQ6IEJhY2tlbmRPdXRwdXQgPVxuICAgICAgYXdhaXQgdGhpcy5iYWNrZW5kT3V0cHV0Q2xpZW50LmdldE91dHB1dChzdGFja0JhY2tlbmRJZGVudGlmaWVyKTtcbiAgICBjb25zdCBzdGFja0Rlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KVxuICAgICk7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja0Rlc2NyaXB0aW9uPy5TdGFja3M/LlswXTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgc3RhY2s/LlN0YWNrU3RhdHVzXG4gICAgKTtcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IHN0YWNrPy5MYXN0VXBkYXRlZFRpbWUgPz8gc3RhY2s/LkNyZWF0aW9uVGltZTtcblxuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgIG5ldyBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgY2hpbGRTdGFja1Byb21pc2VzOiBQcm9taXNlPFN0YWNrIHwgdW5kZWZpbmVkPltdID1cbiAgICAgIHN0YWNrUmVzb3VyY2VzLlN0YWNrUmVzb3VyY2VTdW1tYXJpZXM/LmZpbHRlcihcbiAgICAgICAgKHN0YWNrUmVzb3VyY2VTdW1tYXJ5OiBTdGFja1Jlc291cmNlU3VtbWFyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzdGFja1Jlc291cmNlU3VtbWFyeS5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaydcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApLm1hcChhc3luYyAoc3RhY2tSZXNvdXJjZVN1bW1hcnk6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5KSA9PiB7XG4gICAgICAgIC8vIGFybjphd3M6e3NlcnZpY2V9OntyZWdpb259OnthY2NvdW50fTpzdGFjay97c3RhY2tOYW1lfS97YWRkaXRpb25hbEZpZWxkc31cbiAgICAgICAgY29uc3QgYXJuUGFydHMgPSBzdGFja1Jlc291cmNlU3VtbWFyeS5QaHlzaWNhbFJlc291cmNlSWQ/LnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IGNoaWxkU3RhY2tOYW1lID0gYXJuUGFydHM/LlsxXTtcbiAgICAgICAgaWYgKCFjaGlsZFN0YWNrTmFtZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFja0Rlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm5DbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBjaGlsZFN0YWNrTmFtZSB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHN0YWNrID0gc3RhY2tEZXNjcmlwdGlvbj8uU3RhY2tzPy5bMF07XG4gICAgICAgIHJldHVybiBzdGFjaztcbiAgICAgIH0pID8/IFtdO1xuXG4gICAgY29uc3QgY2hpbGRTdGFja3MgPSBhd2FpdCBQcm9taXNlLmFsbChjaGlsZFN0YWNrUHJvbWlzZXMpO1xuICAgIGNvbnN0IGF1dGhTdGFjayA9IGNoaWxkU3RhY2tzLmZpbmQoXG4gICAgICAobmVzdGVkU3RhY2s6IFN0YWNrU3VtbWFyeSB8IHVuZGVmaW5lZCkgPT5cbiAgICAgICAgbmVzdGVkU3RhY2s/LlN0YWNrTmFtZT8uaW5jbHVkZXMoJ2F1dGgnKVxuICAgICk7XG4gICAgY29uc3Qgc3RvcmFnZVN0YWNrID0gY2hpbGRTdGFja3MuZmluZChcbiAgICAgIChuZXN0ZWRTdGFjazogU3RhY2tTdW1tYXJ5IHwgdW5kZWZpbmVkKSA9PlxuICAgICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnc3RvcmFnZScpXG4gICAgKTtcbiAgICBjb25zdCBhcGlTdGFjayA9IGNoaWxkU3RhY2tzLmZpbmQoKG5lc3RlZFN0YWNrOiBTdGFja1N1bW1hcnkgfCB1bmRlZmluZWQpID0+XG4gICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnZGF0YScpXG4gICAgKTtcbiAgICBjb25zdCBmdW5jdGlvblN0YWNrID0gY2hpbGRTdGFja3MuZmluZChcbiAgICAgIChuZXN0ZWRTdGFjazogU3RhY2tTdW1tYXJ5IHwgdW5kZWZpbmVkKSA9PlxuICAgICAgICBuZXN0ZWRTdGFjaz8uU3RhY2tOYW1lPy5pbmNsdWRlcygnZnVuY3Rpb24nKVxuICAgICk7XG5cbiAgICAvLyBzdGFjaz8uU3RhY2tJZCBpcyB0aGUgQVJOIG9mIHRoZSBzdGFja1xuICAgIGNvbnN0IHsgYWNjb3VudElkLCByZWdpb24gfSA9IHRoaXMuYXJuUGFyc2VyLnRyeVBhcnNlQXJuKFxuICAgICAgc3RhY2s/LlN0YWNrSWQgYXMgc3RyaW5nXG4gICAgKTtcbiAgICBjb25zdCByZXNvdXJjZXMgPVxuICAgICAgYXdhaXQgdGhpcy5kZXBsb3llZFJlc291cmNlc0VudW1lcmF0b3IubGlzdERlcGxveWVkUmVzb3VyY2VzKFxuICAgICAgICB0aGlzLmNmbkNsaWVudCxcbiAgICAgICAgc3RhY2tOYW1lLFxuICAgICAgICBhY2NvdW50SWQsXG4gICAgICAgIHJlZ2lvblxuICAgICAgKTtcblxuICAgIGNvbnN0IGJhY2tlbmRNZXRhZGF0YU9iamVjdDogQmFja2VuZE1ldGFkYXRhID0ge1xuICAgICAgZGVwbG95bWVudFR5cGU6IGJhY2tlbmRPdXRwdXRbcGxhdGZvcm1PdXRwdXRLZXldLnBheWxvYWRcbiAgICAgICAgLmRlcGxveW1lbnRUeXBlIGFzIERlcGxveW1lbnRUeXBlLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBzdGF0dXMsXG4gICAgICBuYW1lOiBzdGFja05hbWUsXG4gICAgICByZXNvdXJjZXMsXG4gICAgfTtcblxuICAgIGlmIChhdXRoU3RhY2spIHtcbiAgICAgIGJhY2tlbmRNZXRhZGF0YU9iamVjdC5hdXRoQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgc3RhdHVzOiB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgICAgIGF1dGhTdGFjay5TdGFja1N0YXR1c1xuICAgICAgICApLFxuICAgICAgICBsYXN0VXBkYXRlZDogYXV0aFN0YWNrLkxhc3RVcGRhdGVkVGltZSA/PyBhdXRoU3RhY2suQ3JlYXRpb25UaW1lLFxuICAgICAgICB1c2VyUG9vbElkOiBiYWNrZW5kT3V0cHV0W2F1dGhPdXRwdXRLZXldPy5wYXlsb2FkLnVzZXJQb29sSWQgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmFnZVN0YWNrKSB7XG4gICAgICBiYWNrZW5kTWV0YWRhdGFPYmplY3Quc3RvcmFnZUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICBzdG9yYWdlU3RhY2suU3RhY2tTdGF0dXNcbiAgICAgICAgKSxcbiAgICAgICAgbGFzdFVwZGF0ZWQ6IHN0b3JhZ2VTdGFjay5MYXN0VXBkYXRlZFRpbWUgPz8gc3RvcmFnZVN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgczNCdWNrZXROYW1lOiBiYWNrZW5kT3V0cHV0W3N0b3JhZ2VPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmJ1Y2tldE5hbWUgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoYXBpU3RhY2spIHtcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXNTdHJpbmcgPVxuICAgICAgICBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcztcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXMgPSBhZGRpdGlvbmFsQXV0aFR5cGVzU3RyaW5nXG4gICAgICAgID8gKGFkZGl0aW9uYWxBdXRoVHlwZXNTdHJpbmcuc3BsaXQoJywnKSBhcyBBcGlBdXRoVHlwZVtdKVxuICAgICAgICA6IFtdO1xuICAgICAgYmFja2VuZE1ldGFkYXRhT2JqZWN0LmFwaUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIHN0YXR1czogdGhpcy5zdGFja1N0YXR1c01hcHBlci50cmFuc2xhdGVTdGFja1N0YXR1cyhcbiAgICAgICAgICBhcGlTdGFjay5TdGFja1N0YXR1c1xuICAgICAgICApLFxuICAgICAgICBsYXN0VXBkYXRlZDogYXBpU3RhY2suTGFzdFVwZGF0ZWRUaW1lID8/IGFwaVN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgZ3JhcGhxbEVuZHBvaW50OiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBcGlFbmRwb2ludCBhcyBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHRBdXRoVHlwZTogYmFja2VuZE91dHB1dFtncmFwaHFsT3V0cHV0S2V5XT8ucGF5bG9hZFxuICAgICAgICAgIC5hd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlIGFzIEFwaUF1dGhUeXBlLFxuICAgICAgICBhZGRpdGlvbmFsQXV0aFR5cGVzLFxuICAgICAgICBjb25mbGljdFJlc29sdXRpb25Nb2RlOiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNDb25mbGljdFJlc29sdXRpb25Nb2RlIGFzIENvbmZsaWN0UmVzb2x1dGlvbk1vZGUsXG4gICAgICAgIGFwaUlkOiBiYWNrZW5kT3V0cHV0W2dyYXBocWxPdXRwdXRLZXldPy5wYXlsb2FkXG4gICAgICAgICAgLmF3c0FwcHN5bmNBcGlJZCBhcyBzdHJpbmcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChmdW5jdGlvblN0YWNrKSB7XG4gICAgICBjb25zdCBmdW5jdGlvblJlc291cmNlcyA9IHJlc291cmNlcy5maWx0ZXIoXG4gICAgICAgIChyZXNvdXJjZSkgPT4gcmVzb3VyY2UucmVzb3VyY2VUeXBlID09PSAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uQ29uZmlndXJhdGlvbnM6IEZ1bmN0aW9uQ29uZmlndXJhdGlvbltdID0gW107XG4gICAgICBjb25zdCBkZWZpbmVkRnVuY3Rpb25zU3RyaW5nID1cbiAgICAgICAgYmFja2VuZE91dHB1dFtmdW5jdGlvbk91dHB1dEtleV0/LnBheWxvYWQuZGVmaW5lZEZ1bmN0aW9ucztcbiAgICAgIGNvbnN0IGN1c3RvbWVyRnVuY3Rpb25OYW1lcyA9IGRlZmluZWRGdW5jdGlvbnNTdHJpbmdcbiAgICAgICAgPyAoSlNPTi5wYXJzZShkZWZpbmVkRnVuY3Rpb25zU3RyaW5nKSBhcyBzdHJpbmdbXSlcbiAgICAgICAgOiBbXTtcblxuICAgICAgY3VzdG9tZXJGdW5jdGlvbk5hbWVzLmZvckVhY2goKGZ1bmN0aW9uTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZSA9IGZ1bmN0aW9uUmVzb3VyY2VzLmZpbmQoXG4gICAgICAgICAgKGZ1bmMpID0+IGZ1bmMucGh5c2ljYWxSZXNvdXJjZUlkID09PSBmdW5jdGlvbk5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICBmdW5jdGlvbkNvbmZpZ3VyYXRpb25zLnB1c2goe1xuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YWNrU3RhdHVzTWFwcGVyLnRyYW5zbGF0ZVN0YWNrU3RhdHVzKFxuICAgICAgICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVN0YXR1c1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGVkOlxuICAgICAgICAgICAgICByZXNvdXJjZS5sYXN0VXBkYXRlZCA/P1xuICAgICAgICAgICAgICBmdW5jdGlvblN0YWNrLkxhc3RVcGRhdGVkVGltZSA/P1xuICAgICAgICAgICAgICBmdW5jdGlvblN0YWNrLkNyZWF0aW9uVGltZSxcbiAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGJhY2tlbmRNZXRhZGF0YU9iamVjdC5mdW5jdGlvbkNvbmZpZ3VyYXRpb25zID0gZnVuY3Rpb25Db25maWd1cmF0aW9ucztcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2VuZE1ldGFkYXRhT2JqZWN0O1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hTY2hlbWEgPSBhc3luYyAoXG4gICAgc2NoZW1hUzNVcmk6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGlmICghc2NoZW1hUzNVcmkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hUzNVcmkgb3V0cHV0IGlzIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG5cbiAgICAvLyBzMzovL3tidWNrZXROYW1lfS97ZmlsZU5hbWV9XG4gICAgY29uc3QgdXJpUGFydHMgPSBzY2hlbWFTM1VyaS5zcGxpdCgnLycpO1xuICAgIGNvbnN0IGJ1Y2tldE5hbWUgPSB1cmlQYXJ0c1syXTtcbiAgICBjb25zdCBvYmplY3RQYXRoID0gdXJpUGFydHMuc2xpY2UoMywgdXJpUGFydHMubGVuZ3RoKS5qb2luKCcvJyk7XG5cbiAgICBpZiAoIWJ1Y2tldE5hbWUgfHwgIW9iamVjdFBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hUzNVcmkgaXMgbm90IHZhbGlkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgczNSZXNwb25zZSA9IGF3YWl0IHRoaXMuczNDbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRPYmplY3RDb21tYW5kKHsgQnVja2V0OiBidWNrZXROYW1lLCBLZXk6IG9iamVjdFBhdGggfSlcbiAgICApO1xuXG4gICAgaWYgKCFzM1Jlc3BvbnNlLkJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgczNSZXNwb25zZSBmcm9tICR7c2NoZW1hUzNVcml9IGRvZXMgbm90IGNvbnRhaW4gYSBCb2R5YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHMzUmVzcG9uc2UuQm9keT8udHJhbnNmb3JtVG9TdHJpbmcoKTtcbiAgfTtcbn1cbiJdfQ==
{
"name": "@aws-amplify/deployed-backend-client",
"version": "0.4.0-beta.2",
"version": "0.4.0-beta.3",
"type": "module",

@@ -22,3 +22,3 @@ "publishConfig": {

"@aws-amplify/backend-output-schemas": "^0.7.0-beta.0",
"@aws-amplify/platform-core": "^0.5.0-beta.1",
"@aws-amplify/platform-core": "^0.5.0-beta.2",
"@aws-sdk/client-amplify": "^3.465.0",

@@ -25,0 +25,0 @@ "@aws-sdk/client-cloudformation": "^3.465.0",

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