New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@eventual/core

Package Overview
Dependencies
Maintainers
2
Versions
164
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eventual/core - npm Package Compare versions

Comparing version 0.40.0 to 0.40.1

18

lib/cjs/entity/entity.d.ts
/// <reference types="node" />
import { z } from "zod";
import { KeyDefinition } from "../internal/entity.js";
import { EntityIndexSpec, EntitySpec, EntityStreamOptions } from "../internal/service-spec.js";
import { EntityIndexSpec, EntitySpec, EntityStreamOperation, EntityStreamOptions } from "../internal/service-spec.js";
import type { CompositeKey, EntityCompositeKeyPart, IndexCompositeKeyPart, KeyAttributes, QueryKey } from "./key.js";

@@ -67,5 +67,5 @@ import type { EntityStream, EntityStreamHandler } from "./stream.js";

*/
scan(request?: EntityQueryOptions): Promise<EntityQueryResult<Attr>>;
scan(request?: EntityScanOptions): Promise<EntityQueryResult<Attr>>;
index<Name extends string = string, const IndexPartition extends IndexCompositeKeyPart<Attr> | undefined = undefined, const IndexSort extends IndexCompositeKeyPart<Attr> | undefined = undefined>(name: Name, options: EntityIndexOptions<Attr, IndexPartition, IndexSort>): EntityIndexMapper<Name, Attr, Partition, IndexPartition, IndexSort>;
stream<Name extends string = string>(name: Name, options: EntityStreamOptions<Attr, Partition, Sort>, handler: EntityStreamHandler<Attr, Partition, Sort>): EntityStream<Name, Attr, Partition, Sort>;
stream<Name extends string = string, Operations extends EntityStreamOperation[] = EntityStreamOperation[]>(name: Name, options: EntityStreamOptions<Attr, Partition, Sort, Operations>, handler: EntityStreamHandler<Attr, Partition, Sort, Operations>): EntityStream<Name, Attr, Partition, Sort>;
stream<Name extends string = string>(name: string, handler: EntityStreamHandler<Attr, Partition, Sort>): EntityStream<Name, Attr, Partition, Sort>;

@@ -171,3 +171,3 @@ }

*/
scan(request?: EntityQueryOptions): Promise<EntityQueryResult<IndexAttr>>;
scan(request?: EntityScanOptions): Promise<EntityQueryResult<IndexAttr>>;
}

@@ -188,3 +188,3 @@ export interface EntityQueryResult<Attr extends Attributes = Attributes> {

}
export interface EntityQueryOptions extends EntityReadOptions {
export interface EntityScanOptions extends EntityReadOptions {
/**

@@ -197,2 +197,10 @@ * Number of items to retrieve

}
export interface EntityQueryOptions extends EntityScanOptions {
/**
* Determines the direction of the items returned in the query based on the sort key.
*
* @default ASC - ascending order
*/
direction?: "ASC" | "DESC";
}
export interface EntityConsistencyOptions {

@@ -199,0 +207,0 @@ /**

@@ -221,2 +221,2 @@ "use strict";

exports.entity = entity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLG1EQUk4QjtBQUM5QiwrREFBMkQ7QUFDM0QscURBQTRFO0FBQzVFLHFEQUFpRDtBQUNqRCxpRUFNcUM7QUFnSnhCLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSxDQUFDLEtBQTJCLEVBQWlCLEVBQUU7UUFDNUQsT0FBTyxtQkFBbUIsRUFBRSxDQUFDLG9CQUFvQixDQUMvQyxJQUFBLDZCQUFrQixFQUF5QiwyQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDdEUsU0FBUyxFQUFFLFVBQVU7WUFDckIsS0FBSztTQUNOLENBQUMsRUFDRixLQUFLLElBQUksRUFBRTtZQUNULE9BQU8sSUFBQSw4QkFBYSxHQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUM7QUF3QkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRERztBQUNILFNBQWdCLE1BQU0sQ0FNcEIsSUFBVSxFQUNWLE9BQTZDO0lBRTdDLElBQUksSUFBQSxvQkFBUSxHQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksa0JBQWtCLENBQUMsQ0FBQztLQUM5RDtJQUVELE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEM7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBK0MsRUFBRSxDQUFDO0lBRS9ELE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxVQUFVLFlBQVksT0FBQyxDQUFDLFNBQVM7UUFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ3BCLENBQUMsQ0FBRSxP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QU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEzTkQsd0JBMk5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7XG4gIGNyZWF0ZUV2ZW50dWFsQ2FsbCxcbiAgRW50aXR5Q2FsbCxcbiAgRXZlbnR1YWxDYWxsS2luZCxcbn0gZnJvbSBcIi4uL2ludGVybmFsL2NhbGxzLmpzXCI7XG5pbXBvcnQgeyBnZXRFbnRpdHlIb29rIH0gZnJvbSBcIi4uL2ludGVybmFsL2VudGl0eS1ob29rLmpzXCI7XG5pbXBvcnQgeyBjb21wdXRlS2V5RGVmaW5pdGlvbiwgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9lbnRpdHkuanNcIjtcbmltcG9ydCB7IGVudGl0aWVzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHtcbiAgRW50aXR5SW5kZXhTcGVjLFxuICBFbnRpdHlTcGVjLFxuICBFbnRpdHlTdHJlYW1PcHRpb25zLFxuICBpc1NvdXJjZUxvY2F0aW9uLFxuICBTb3VyY2VMb2NhdGlvbixcbn0gZnJvbSBcIi4uL2ludGVybmFsL3NlcnZpY2Utc3BlYy5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBDb21wb3NpdGVLZXksXG4gIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQsXG4gIEluZGV4Q29tcG9zaXRlS2V5UGFydCxcbiAgS2V5QXR0cmlidXRlcyxcbiAgUXVlcnlLZXksXG59IGZyb20gXCIuL2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTdHJlYW0sIEVudGl0eVN0cmVhbUhhbmRsZXIgfSBmcm9tIFwiLi9zdHJlYW0uanNcIjtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlQmluYXJ5VmFsdWUgPVxuICB8IEFycmF5QnVmZmVyXG4gIHwgQmxvYlxuICB8IEJ1ZmZlclxuICB8IERhdGFWaWV3XG4gIHwgRmlsZVxuICB8IEludDhBcnJheVxuICB8IFVpbnQ4QXJyYXlcbiAgfCBVaW50OENsYW1wZWRBcnJheVxuICB8IEludDE2QXJyYXlcbiAgfCBVaW50MTZBcnJheVxuICB8IEludDMyQXJyYXlcbiAgfCBVaW50MzJBcnJheVxuICB8IEZsb2F0MzJBcnJheVxuICB8IEZsb2F0NjRBcnJheVxuICB8IEJpZ0ludDY0QXJyYXlcbiAgfCBCaWdVaW50NjRBcnJheTtcblxudHlwZSBBdHRyaWJ1dGVTY2FsYXJWYWx1ZSA9XG4gIHwgbnVsbFxuICB8IHVuZGVmaW5lZFxuICB8IGJpZ2ludFxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IGJvb2xlYW5cbiAgfCBBdHRyaWJ1dGVCaW5hcnlWYWx1ZTtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlVmFsdWUgPVxuICB8IEF0dHJpYnV0ZXNcbiAgfCBBdHRyaWJ1dGVTY2FsYXJWYWx1ZVxuICB8IFNldDxBdHRyaWJ1dGVTY2FsYXJWYWx1ZT5cbiAgfCBBdHRyaWJ1dGVWYWx1ZVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZXMge1xuICBba2V5OiBzdHJpbmddOiBBdHRyaWJ1dGVWYWx1ZTtcbn1cblxuLyoqXG4gKiBUdXJucyBhIHtAbGluayBBdHRyaWJ1dGVzfSB0eXBlIGludG8gYSBab2Qge0BsaW5rIHouWm9kUmF3U2hhcGV9LlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlab2RTaGFwZTxBdHRyIGV4dGVuZHMgQXR0cmlidXRlcz4gPSB7XG4gIFtrZXkgaW4ga2V5b2YgQXR0cl06IHouWm9kVHlwZTxBdHRyW2tleV0+O1xufTtcblxuLyoqXG4gKiBBbiBldmVudHVhbCBlbnRpdHkuXG4gKlxuICogQHNlZSBlbnRpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHk8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgT21pdDxcbiAgICBFbnRpdHlTcGVjPE5hbWU+LFxuICAgIFwiYXR0cmlidXRlc1wiIHwgXCJzdHJlYW1zXCIgfCBcInBhcnRpdGlvblwiIHwgXCJzb3J0XCIgfCBcImluZGljZXNcIlxuICA+IHtcbiAga2luZDogXCJFbnRpdHlcIjtcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBhdHRyaWJ1dGVzOiBab2RBdHRyaWJ1dGVzT2JqZWN0PEF0dHI+O1xuICBpbmRpY2VzOiBFbnRpdHlJbmRleFtdO1xuICBzdHJlYW1zOiBFbnRpdHlTdHJlYW08YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+W107XG4gIC8qKlxuICAgKiBHZXQgYSB2YWx1ZS5cbiAgICogSWYgeW91ciB2YWx1ZXMgdXNlIGNvbXBvc2l0ZSBrZXlzLCB0aGUgbmFtZXNwYWNlIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBrZXkgb3Ige0BsaW5rIENvbXBvc2l0ZUtleX0gb2YgdGhlIHZhbHVlIHRvIHJldHJpZXZlLlxuICAgKi9cbiAgZ2V0KFxuICAgIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eVJlYWRPcHRpb25zXG4gICk6IFByb21pc2U8QXR0ciB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBHZXQgYSB2YWx1ZSBhbmQgbWV0YWRhdGEgbGlrZSB2ZXJzaW9uLlxuICAgKiBJZiB5b3VyIHZhbHVlcyB1c2UgY29tcG9zaXRlIGtleXMsIHRoZSBuYW1lc3BhY2UgbXVzdCBiZSBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIGtleSBvciB7QGxpbmsgQ29tcG9zaXRlS2V5fSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUuXG4gICAqL1xuICBnZXRXaXRoTWV0YWRhdGEoXG4gICAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICBvcHRpb25zPzogRW50aXR5UmVhZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxFbnRpdHlXaXRoTWV0YWRhdGE8QXR0cj4gfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogU2V0cyBvciB1cGRhdGVzIGEgdmFsdWUgd2l0aGluIGFuIGVudGl0eSBhbmQgb3B0aW9uYWxseSBhIG5hbWVzcGFjZS5cbiAgICpcbiAgICogVmFsdWVzIHdpdGggbmFtZXNwYWNlcyBhcmUgY29uc2lkZXJlZCBkaXN0aW5jdCBmcm9tIHZhbHVlIHdpdGhvdXQgYSBuYW1lc3BhY2Ugb3Igd2l0aGluIGRpZmZlcmVudCBuYW1lc3BhY2VzLlxuICAgKiBWYWx1ZXMgYW5kIGtleXMgY2FuIG9ubHkgYmUgbGlzdGVkIHdpdGhpbiBhIHNpbmdsZSBuYW1lc3BhY2UuXG4gICAqL1xuICBzZXQoZW50aXR5OiBBdHRyLCBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucyk6IFByb21pc2U8eyB2ZXJzaW9uOiBudW1iZXIgfT47XG4gIC8qKlxuICAgKiBEZWxldGVzIGEgc2luZ2xlIGVudHJ5IHdpdGhpbiBhbiBlbnRpdHkgYW5kIG5hbWVzcGFjZS5cbiAgICovXG4gIGRlbGV0ZShcbiAgICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlDb25zaXN0ZW5jeU9wdGlvbnNcbiAgKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIFF1ZXJ5IHRoZSBlbnRpdHkgdXNpbmcgdGhlIHBhcnRpdGlvbiBrZXkgYW5kIG9wdGlvbmFsbHkgcGFydCBvZiB0aGUgc29ydCBrZXkuXG4gICAqL1xuICBxdWVyeShcbiAgICBrZXk6IFF1ZXJ5S2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgcmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHI+PjtcbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGl0ZW1zIGluIHRoZSB0YWJsZSwgdXAgdG8gdGhlIGxpbWl0IGdpdmVuIG9yIDFNQiAob24gQVdTKS5cbiAgICpcbiAgICogSW4gZ2VuZXJhbCwgc2NhbiBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBzaG91bGQgYmUgYXZvaWRlZCBpbiBmYXZvciBvZiBxdWVyeVxuICAgKiB1bmxlc3MgaXQgaXMgbmVjZXNzYXJ5IHRvIGdldCBhbGwgaXRlbXMgaW4gYSB0YWJsZSBhY3Jvc3MgYWxsIG9yIG1vc3QgcGFydGl0aW9ucy5cbiAgICovXG4gIHNjYW4ocmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8QXR0cj4+O1xuICBpbmRleDxcbiAgICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIGNvbnN0IEluZGV4UGFydGl0aW9uIGV4dGVuZHNcbiAgICAgIHwgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgICB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBjb25zdCBJbmRleFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IEVudGl0eUluZGV4T3B0aW9uczxBdHRyLCBJbmRleFBhcnRpdGlvbiwgSW5kZXhTb3J0PlxuICApOiBFbnRpdHlJbmRleE1hcHBlcjxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIEluZGV4UGFydGl0aW9uLCBJbmRleFNvcnQ+O1xuICBzdHJlYW08TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICk6IEVudGl0eVN0cmVhbTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzdHJlYW08TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICApOiBFbnRpdHlTdHJlYW08TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0Pjtcbn1cblxuZXhwb3J0IGNvbnN0IEVudGl0eSA9IHtcbiAgdHJhbnNhY3RXcml0ZTogKGl0ZW1zOiBFbnRpdHlUcmFuc2FjdEl0ZW1bXSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInRyYW5zYWN0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgb3BlcmF0aW9uOiBcInRyYW5zYWN0XCIsXG4gICAgICAgIGl0ZW1zLFxuICAgICAgfSksXG4gICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkudHJhbnNhY3RXcml0ZShpdGVtcyk7XG4gICAgICB9XG4gICAgKTtcbiAgfSxcbn07XG5cbi8qKlxuICogVHJpZXMgdGhlIHtAbGluayBBdHRyaWJ1dGVzfSB0eXBlIHRvIHRoZSBjb21wdXRlZCBvdXRwdXQgb2YgdGhlIG9iamVjdC5cbiAqXG4gKiBUT0RPOiBleHRlbmQgdGhpcyB0eXBlIHRvIHN1cHBvcnQgaW50ZXJzZWN0aW9uIGFuZCB1bmlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgWm9kQXR0cmlidXRlc09iamVjdDxUIGV4dGVuZHMgQXR0cmlidXRlcz4gPSB6LlpvZE9iamVjdDxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgVFxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlPcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4ge1xuICBhdHRyaWJ1dGVzOiBab2RBdHRyaWJ1dGVzT2JqZWN0PEF0dHI+IHwgRW50aXR5Wm9kU2hhcGU8QXR0cj47XG4gIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICBzb3J0PzogU29ydDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVudGl0eSB3aGljaCBob2xkcyBkYXRhLlxuICpcbiAqIEFuIGVudGl0eSdzIGtleXMgYXJlIG1hZGUgdXAgb2Ygb25lIG9yIG1vcmUgYXR0cmlidXRlcyBpbiB0aGUgZW50aXR5LlxuICogV2hlbiBhbiBlbnRpdHkncyBrZXkgaXMgbWFkZSB1cCBvZiBtb3JlIHRoYW4gb25lIGF0dHJpYnV0ZSwgaXQgaXMgY29uc2lkZXJlZCB0byBiZSBhIGNvbXBvc2l0ZSBrZXkuXG4gKlxuICogRWFjaCBhdHRyaWJ1dGUgb2YgdGhlIGNvbXBvc2l0ZSBrZXkgaXMgY29uc2lkZXJlZCB0byBiZSBlaXRoZXIgYSBwYXJ0aXRpb24ga2V5IG9yIGEgc29ydCBrZXksIHdoaWNoIHdlIGNvbnNpZGVyIGEgY29tcG9zaXRlIGtleSBwYXJ0LlxuICogRWFjaCBlbnRpdHkgaXMgcmVxdWlyZWQgdG8gYXQgbGVhc3QgaGF2ZSBvbmUgcGFydGl0aW9uIGtleSBhdHRyaWJ1dGUsIGJ1dCBtYXkgaGF2ZSBtYXkgcGFydGl0aW9uIGFuZCBvciBzb3J0IGtleSBhdHRyaWJ1dGVzLlxuICogVG8gcmV0cmlldmUgYSBzaW5nbGUgdmFsdWUgd2l0aCBhbiBlbnRpdHksIHRoZSBlbnRpcmUgY29tcG9zaXRlIGtleSBtdXN0IGJlIHVzZWQsIHVudGlsIHRoZSBxdWVyeSBvcGVyYXRpb24gaXMgdXNlZCB0byByZXR1cm4gbXVsdGlwbGUgZW50aXRpZXMgKHdpdGhpbiBhIHBhcnRpdGlvbikuXG4gKlxuICogQSBwYXJ0aXRpb24ga2V5IHNlcGFyYXRlcyBkYXRhIHdpdGhpbiBhbiBlbnRpdHkuIFdoZW4gdXNpbmcgdGhlIFF1ZXJ5IG9wZXJhdGlvbiwgZGF0YSBjYW4gb25seSBiZSBxdWVyaWVkIHdpdGhpblxuICogYSBzaW5nbGUgcGFydGl0aW9uLlxuICpcbiAqIEEgc29ydCBrZXkgZGV0ZXJtaW5lcyB0aGUgb3JkZXIgb2YgdGhlIHZhbHVlcyB3aGVuIHJ1bm5pbmcgYSBxdWVyeS4gSXQgYWxzbyBhbGxvd3MgZm9yIHJhbmdlcyBvZiB2YWx1ZXMgdG8gYmUgcXVlcmllZFxuICogdXNpbmcgb25seSBzb21lIG9mIHRoZSBzb3J0IGtleSBhdHRyaWJ1dGVzIChpbiBvcmRlcikuXG4gKlxuICogYGBgdHNcbiAqIC8vIGxldHMgdGFrZSBhbiBleGFtcGxlIHdoZXJlIHdlIGhhdmUgcG9zdHMgZm9yIGEgdXNlciwgc2VwYXJhdGVkIGJ5IGZvcnVtLlxuICogY29uc3QgdXNlckNvbW1lbnRzID0gZW50aXR5KFwidXNlckNvbW1lbnRzXCIsIHtcbiAqICAgIGF0dHJpYnV0ZXM6IHtcbiAqICAgICAgIGZvcnVtOiB6LnN0cmluZygpLFxuICogICAgICAgdXNlcklkOiB6LnN0cmluZygpLFxuICogICAgICAgcG9zdElkOiB6LnN0cmluZygpLFxuICogICAgICAgY29tbWVudElkOiB6LnN0cmluZygpLFxuICogICAgICAgbWVzc2FnZTogei5zdHJpbmcoKVxuICogICAgfSxcbiAqICAgIHBhcnRpdGlvbjogW1wiZm9ydW1cIiwgXCJ1c2VySWRcIl0sXG4gKiAgICBzb3J0OiBbXCJwb3N0SWRcIiwgXCJpZFwiXSxcbiAqIH0pO1xuICpcbiAqIC8vIGFkZCBhIG5ldyBwb3N0IGNvbW1lbnRcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5zZXQoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIixcbiAqICAgIHVzZXJJZDogXCIxXCIsXG4gKiAgICBwb3N0SWQ6IFwiMTAwXCIsXG4gKiAgICBjb21tZW50SWQ6IFwiYWJjXCIsXG4gKiAgICBtZXNzYWdlOiBcIkkgbG92ZSBnYW1lc1wiXG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYWxsIGNvbW1lbnRzIGZvciBhIHVzZXIgaW4gYSBmb3J1bVxuICogYXdhaXQgdXNlckNvbW1lbnRzLnF1ZXJ5KHtcbiAqICAgIGZvcnVtOiBcImdhbWVzXCIsIC8vIHJlcXVpcmVkIGluIHRoZSBxdWVyeVxuICogICAgdXNlcklkOiBcIjFcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYWxsIGNvbW1lbnRzIGZvciBhIHVzZXIgaW4gYSBmb3J1bSBhbmQgYSBwb3N0XG4gKiBhd2FpdCB1c2VyQ29tbWVudHMucXVlcnkoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiAgICB1c2VySWQ6IFwiMVwiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqICAgIHBvc3Q6IFwiMTAwXCIsIC8vIG9wdGlvbmFsIGluIHRoZSBxdWVyeVxuICogfSk7XG4gKlxuICogLy8gZ2V0IGEgc2luZ2xlIHBvc3RcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5nZXQoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIixcbiAqICAgIHVzZXJJZDogXCIxXCIsXG4gKiAgICBwb3N0SWQ6IFwiMTAwXCIsXG4gKiAgICBjb21tZW50SWQ6IFwiYWJjXCJcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHk8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBjb25zdCBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBjb25zdCBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPihcbiAgbmFtZTogTmFtZSxcbiAgb3B0aW9uczogRW50aXR5T3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4pOiBFbnRpdHk8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIGlmIChlbnRpdGllcygpLmhhcyhuYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZW50aXR5IHdpdGggbmFtZSAnJHtuYW1lfScgYWxyZWFkeSBleGlzdHNgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGljZXM6IEVudGl0eUluZGV4W10gPSBbXTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYWludGFpbiBhIGxpbWl0ZWQgbnVtYmVyIG9mIHN0cmVhbXMgb24gdGhlIGVudGl0eS5cbiAgICovXG4gIGNvbnN0IHN0cmVhbXM6IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXSA9IFtdO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPVxuICAgIG9wdGlvbnMuYXR0cmlidXRlcyBpbnN0YW5jZW9mIHouWm9kT2JqZWN0XG4gICAgICA/IG9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgOiAoei5vYmplY3Qob3B0aW9ucy5hdHRyaWJ1dGVzKSBhcyB1bmtub3duIGFzIFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj4pO1xuXG4gIGNvbnN0IGVudGl0eTogRW50aXR5PE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4gPSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIF9fZW50aXR5QnJhbmQ6IHVuZGVmaW5lZCxcbiAgICBraW5kOiBcIkVudGl0eVwiLFxuICAgIG5hbWUsXG4gICAga2V5OiBjb21wdXRlS2V5RGVmaW5pdGlvbihhdHRyaWJ1dGVzLCBvcHRpb25zLnBhcnRpdGlvbiwgb3B0aW9ucy5zb3J0KSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGluZGljZXMsXG4gICAgc3RyZWFtcyxcbiAgICBnZXQ6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImdldFwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgb3BlcmF0aW9uOiBcImdldFwiLFxuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuZ2V0KG5hbWUsIC4uLmFyZ3MpIGFzIFByb21pc2U8QXR0cj47XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBnZXRXaXRoTWV0YWRhdGE6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImdldFdpdGhNZXRhZGF0YVwiPj4oXG4gICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJnZXRXaXRoTWV0YWRhdGFcIixcbiAgICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5nZXRXaXRoTWV0YWRhdGEobmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBzZXQ6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInNldFwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwic2V0XCIsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuc2V0KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgZGVsZXRlOiAoLi4uYXJncykgPT4ge1xuICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJkZWxldGVcIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLmRlbGV0ZShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHF1ZXJ5OiAoLi4uYXJncykgPT4ge1xuICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJxdWVyeVwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwicXVlcnlcIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5xdWVyeShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHNjYW46ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInNjYW5cIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgb3BlcmF0aW9uOiBcInNjYW5cIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5zY2FuKG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgaW5kZXg6ICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCBbaW5kZXhOYW1lLCBpbmRleE9wdGlvbnNdID0gYXJncztcblxuICAgICAgaWYgKGluZGljZXMuc29tZSgoaSkgPT4gaS5uYW1lID09PSBpbmRleE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggb2YgbmFtZSAke2luZGV4TmFtZX0gYWxyZWFkeSBleGlzdHMgb24gJHtuYW1lfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRleDogRW50aXR5SW5kZXggPSB7XG4gICAgICAgIGtpbmQ6IFwiRW50aXR5SW5kZXhcIixcbiAgICAgICAga2V5OiBjb21wdXRlS2V5RGVmaW5pdGlvbihcbiAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgIChcInBhcnRpdGlvblwiIGluIGluZGV4T3B0aW9ucyA/IGluZGV4T3B0aW9ucy5wYXJ0aXRpb24gOiB1bmRlZmluZWQpID8/XG4gICAgICAgICAgICBvcHRpb25zLnBhcnRpdGlvbixcbiAgICAgICAgICBpbmRleE9wdGlvbnMuc29ydCA/PyBvcHRpb25zLnNvcnRcbiAgICAgICAgKSxcbiAgICAgICAgbmFtZTogaW5kZXhOYW1lLFxuICAgICAgICBwYXJ0aXRpb246XG4gICAgICAgICAgXCJwYXJ0aXRpb25cIiBpbiBpbmRleE9wdGlvbnMgPyBpbmRleE9wdGlvbnMucGFydGl0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3J0OiBpbmRleE9wdGlvbnMuc29ydCxcbiAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgcXVlcnk6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwicXVlcnlJbmRleFwiPj4oXG4gICAgICAgICAgICAgIEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgaW5kZXhOYW1lLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogXCJxdWVyeUluZGV4XCIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKCkgPT4gZ2V0RW50aXR5SG9vaygpLnF1ZXJ5SW5kZXgobmFtZSwgaW5kZXhOYW1lLCAuLi5hcmdzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHNjYW46ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2NhbkluZGV4XCI+PihcbiAgICAgICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBcInNjYW5JbmRleFwiLFxuICAgICAgICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICgpID0+IGdldEVudGl0eUhvb2soKS5zY2FuSW5kZXgobmFtZSwgaW5kZXhOYW1lLCAuLi5hcmdzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBpbmRpY2VzLnB1c2goaW5kZXgpO1xuXG4gICAgICByZXR1cm4gaW5kZXggYXMgYW55O1xuICAgIH0sXG4gICAgc3RyZWFtOiAoXG4gICAgICAuLi5hcmdzOlxuICAgICAgICB8IFtuYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0Pl1cbiAgICAgICAgfCBbXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgICAgICBdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICAgICAgXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgICAgIF1cbiAgICApID0+IHtcbiAgICAgIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgc3RyZWFtTmFtZSwgb3B0aW9ucywgaGFuZGxlcl0gPVxuICAgICAgICBhcmdzLmxlbmd0aCA9PT0gMlxuICAgICAgICAgID8gWywgYXJnc1swXSwgLCBhcmdzWzFdXVxuICAgICAgICAgIDogYXJncy5sZW5ndGggPT09IDRcbiAgICAgICAgICA/IGFyZ3NcbiAgICAgICAgICA6IGlzU291cmNlTG9jYXRpb24oYXJnc1swXSkgJiYgdHlwZW9mIGFyZ3NbMV0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IFthcmdzWzBdLCBhcmdzWzFdIGFzIHN0cmluZywgLCBhcmdzWzJdXVxuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAsXG4gICAgICAgICAgICAgIGFyZ3NbMF0gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICBhcmdzWzFdIGFzIEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgICAgYXJnc1syXSxcbiAgICAgICAgICAgIF07XG5cbiAgICAgIGlmIChzdHJlYW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSB0d28gc3RyZWFtcyBhcmUgYWxsb3dlZCBwZXIgZW50aXR5LlwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50aXR5U3RyZWFtOiBFbnRpdHlTdHJlYW08YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+ID0ge1xuICAgICAgICBraW5kOiBcIkVudGl0eVN0cmVhbVwiLFxuICAgICAgICBoYW5kbGVyLFxuICAgICAgICBuYW1lOiBzdHJlYW1OYW1lLFxuICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBzb3VyY2VMb2NhdGlvbixcbiAgICAgIH07XG5cbiAgICAgIHN0cmVhbXMucHVzaChlbnRpdHlTdHJlYW0pO1xuXG4gICAgICByZXR1cm4gZW50aXR5U3RyZWFtO1xuICAgIH0sXG4gIH07XG5cbiAgZW50aXRpZXMoKS5zZXQobmFtZSwgZW50aXR5IGFzIGFueSk7XG5cbiAgcmV0dXJuIGVudGl0eTtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5SW5kZXhPcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+ID1cbiAgfCB7XG4gICAgICBwYXJ0aXRpb246IFBhcnRpdGlvbjtcbiAgICAgIHNvcnQ/OiBTb3J0O1xuICAgIH1cbiAgfCB7XG4gICAgICBzb3J0OiBTb3J0O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEVudGl0eUluZGV4TWFwcGVyPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgRW50aXR5UGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIEluZGV4UGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+ID0gSW5kZXhQYXJ0aXRpb24gZXh0ZW5kcyB1bmRlZmluZWRcbiAgPyBFbnRpdHlJbmRleDxOYW1lLCBBdHRyLCBFbnRpdHlQYXJ0aXRpb24sIFNvcnQ+XG4gIDogRW50aXR5SW5kZXg8TmFtZSwgQXR0ciwgRXhjbHVkZTxJbmRleFBhcnRpdGlvbiwgdW5kZWZpbmVkPiwgU29ydD47XG5cbi8qKlxuICogQW4gaW5kZXgncyBrZXkgYXR0cmlidXRlcyBhcmUgbmV2ZXIgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlJbmRleEF0dHJpYnV0ZXM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gPSB7XG4gIFtrIGluIGtleW9mIEF0dHJdOiBrIGV4dGVuZHMgS2V5QXR0cmlidXRlczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgPyBFeGNsdWRlPEF0dHJba10sIHVuZGVmaW5lZD5cbiAgICA6IEF0dHJba107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4PFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBFbnRpdHlBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPiA9IEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPixcbiAgU29ydCBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBJbmRleENvbXBvc2l0ZUtleVBhcnQ8RW50aXR5QXR0cj5cbiAgICB8IHVuZGVmaW5lZCxcbiAgSW5kZXhBdHRyIGV4dGVuZHMgRW50aXR5SW5kZXhBdHRyaWJ1dGVzPFxuICAgIEVudGl0eUF0dHIsXG4gICAgUGFydGl0aW9uLFxuICAgIFNvcnRcbiAgPiA9IEVudGl0eUluZGV4QXR0cmlidXRlczxFbnRpdHlBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4+IGV4dGVuZHMgRW50aXR5SW5kZXhTcGVjPE5hbWU+IHtcbiAga2luZDogXCJFbnRpdHlJbmRleFwiO1xuICBxdWVyeShcbiAgICBxdWVyeUtleTogUXVlcnlLZXk8SW5kZXhBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlRdWVyeU9wdGlvbnNcbiAgKTogUHJvbWlzZTxFbnRpdHlRdWVyeVJlc3VsdDxJbmRleEF0dHI+PjtcbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGl0ZW1zIGluIHRoZSB0YWJsZSwgdXAgdG8gdGhlIGxpbWl0IGdpdmVuIG9yIDFNQiAob24gQVdTKS5cbiAgICpcbiAgICogSW4gZ2VuZXJhbCwgc2NhbiBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBzaG91bGQgYmUgYXZvaWRlZCBpbiBmYXZvciBvZiBxdWVyeVxuICAgKiB1bmxlc3MgaXQgaXMgbmVjZXNzYXJ5IHRvIGdldCBhbGwgaXRlbXMgaW4gYSB0YWJsZSBhY3Jvc3MgYWxsIG9yIG1vc3QgcGFydGl0aW9ucy5cbiAgICovXG4gIHNjYW4ocmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8SW5kZXhBdHRyPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5UXVlcnlSZXN1bHQ8QXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzPiB7XG4gIGVudHJpZXM/OiBFbnRpdHlXaXRoTWV0YWRhdGE8QXR0cj5bXTtcbiAgLyoqXG4gICAqIFJldHVybmVkIHdoZW4gdGhlcmUgYXJlIG1vcmUgdmFsdWVzIHRoYW4gdGhlIGxpbWl0IGFsbG93ZWQgdG8gcmV0dXJuLlxuICAgKi9cbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlYWRPcHRpb25zIHtcbiAgLyoqXG4gICAqIHdoZW4gY29uc2lzdGVudCByZWFkIGlzIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBxdWVyeSBvciBzY2FuIG1heSBub3QgaW5jbHVkZSB0aGUgbGF0ZXN0IGNoYW5nZXMgdG8gdGhlIGVudGl0eSB2YWx1ZXMuXG4gICAqIFNldHRpbmcgY29uc2lzdGVudCByZWFkIHRvIHRydWUgd2lsbCBpbmNyZWFzZSB0aGUgY29zdCBvZiB0aGUgcmVhZCBhbmQgbWF5IHRha2UgbG9uZ2VyIHRvIHJldHVybi5cbiAgICovXG4gIGNvbnNpc3RlbnRSZWFkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlRdWVyeU9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0cmlldmVcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbnNpc3RlbmN5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhwZWN0ZWQgdmVyc2lvbiBvZiB0aGUgZW50aXR5IGluIHRoZSBlbnRpdHkuXG4gICAqXG4gICAqIFVzZWQgdG8gc3VwcG9ydCBjb25zaXN0ZW50IHdyaXRlcyBhbmQgZGVsZXRlcy5cbiAgICogQSB2YWx1ZSBvZiAwIHdpbGwgb25seSBwYXNzIGlmIHRoZSBpdGVtIGlzIG5ldy5cbiAgICovXG4gIGV4cGVjdGVkVmVyc2lvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTZXRPcHRpb25zIGV4dGVuZHMgRW50aXR5Q29uc2lzdGVuY3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSB0aGUgdmVyc2lvbiBvbiBjaGFuZ2UuXG4gICAqIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhlIHZhbHVlIGhhcyBiZWVuIHNldCwgaXQgd2lsbCBiZSBzZXQgdG8gMS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAtIHZlcnNpb24gd2lsbCBiZSBpbmNyZW1lbnRlZC5cbiAgICovXG4gIGluY3JlbWVudFZlcnNpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVdpdGhNZXRhZGF0YTxBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXM+IHtcbiAgdmFsdWU6IEF0dHI7XG4gIHZlcnNpb246IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEVudGl0eVRyYW5zYWN0SXRlbUJhc2U8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZFxuPiB7XG4gIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiB8IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5VHJhbnNhY3RJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IGFueSxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiA9XG4gIHwgRW50aXR5VHJhbnNhY3RTZXRPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVRyYW5zYWN0RGVsZXRlT3BlcmF0aW9uPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlUcmFuc2FjdENvbmRpdGlvbmFsT3BlcmF0aW9uPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RTZXRPcGVyYXRpb248XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcInNldFwiO1xuICB2YWx1ZTogQXR0cjtcbiAgb3B0aW9ucz86IEVudGl0eVNldE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3REZWxldGVPcGVyYXRpb248XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiO1xuICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucztcbn1cblxuLyoqXG4gKiBVc2VkIGluIHRyYW5zYWN0aW9ucywgY2FuY2VscyB0aGUgdHJhbnNhY3Rpb24gaWYgdGhlIGtleSdzIHZlcnNpb24gZG9lcyBub3QgbWF0Y2guXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RDb25kaXRpb25hbE9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwiY29uZGl0aW9uXCI7XG4gIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHZlcnNpb24/OiBudW1iZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBQ3hCLG1EQUk4QjtBQUM5QiwrREFBMkQ7QUFDM0QscURBQTRFO0FBQzVFLHFEQUFpRDtBQUNqRCxpRUFPcUM7QUFtSnhCLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSxDQUFDLEtBQTJCLEVBQWlCLEVBQUU7UUFDNUQsT0FBTyxtQkFBbUIsRUFBRSxDQUFDLG9CQUFvQixDQUMvQyxJQUFBLDZCQUFrQixFQUF5QiwyQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDdEUsU0FBUyxFQUFFLFVBQVU7WUFDckIsS0FBSztTQUNOLENBQUMsRUFDRixLQUFLLElBQUksRUFBRTtZQUNULE9BQU8sSUFBQSw4QkFBYSxHQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUM7QUF3QkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRERztBQUNILFNBQWdCLE1BQU0sQ0FNcEIsSUFBVSxFQUNWLE9BQTZDO0lBRTdDLElBQUksSUFBQSxvQkFBUSxHQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksa0JBQWtCLENBQUMsQ0FBQztLQUM5RDtJQUVELE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEM7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBK0MsRUFBRSxDQUFDO0lBRS9ELE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxVQUFVLFlBQVksT0FBQyxDQUFDLFNBQVM7UUFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ3BCLENBQUMsQ0FBRSxP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QU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEzTkQsd0JBMk5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7XG4gIGNyZWF0ZUV2ZW50dWFsQ2FsbCxcbiAgRW50aXR5Q2FsbCxcbiAgRXZlbnR1YWxDYWxsS2luZCxcbn0gZnJvbSBcIi4uL2ludGVybmFsL2NhbGxzLmpzXCI7XG5pbXBvcnQgeyBnZXRFbnRpdHlIb29rIH0gZnJvbSBcIi4uL2ludGVybmFsL2VudGl0eS1ob29rLmpzXCI7XG5pbXBvcnQgeyBjb21wdXRlS2V5RGVmaW5pdGlvbiwgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9lbnRpdHkuanNcIjtcbmltcG9ydCB7IGVudGl0aWVzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHtcbiAgRW50aXR5SW5kZXhTcGVjLFxuICBFbnRpdHlTcGVjLFxuICBFbnRpdHlTdHJlYW1PcGVyYXRpb24sXG4gIEVudGl0eVN0cmVhbU9wdGlvbnMsXG4gIGlzU291cmNlTG9jYXRpb24sXG4gIFNvdXJjZUxvY2F0aW9uLFxufSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvc2l0ZUtleSxcbiAgRW50aXR5Q29tcG9zaXRlS2V5UGFydCxcbiAgSW5kZXhDb21wb3NpdGVLZXlQYXJ0LFxuICBLZXlBdHRyaWJ1dGVzLFxuICBRdWVyeUtleSxcbn0gZnJvbSBcIi4va2V5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0cmVhbSwgRW50aXR5U3RyZWFtSGFuZGxlciB9IGZyb20gXCIuL3N0cmVhbS5qc1wiO1xuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVCaW5hcnlWYWx1ZSA9XG4gIHwgQXJyYXlCdWZmZXJcbiAgfCBCbG9iXG4gIHwgQnVmZmVyXG4gIHwgRGF0YVZpZXdcbiAgfCBGaWxlXG4gIHwgSW50OEFycmF5XG4gIHwgVWludDhBcnJheVxuICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gIHwgSW50MTZBcnJheVxuICB8IFVpbnQxNkFycmF5XG4gIHwgSW50MzJBcnJheVxuICB8IFVpbnQzMkFycmF5XG4gIHwgRmxvYXQzMkFycmF5XG4gIHwgRmxvYXQ2NEFycmF5XG4gIHwgQmlnSW50NjRBcnJheVxuICB8IEJpZ1VpbnQ2NEFycmF5O1xuXG50eXBlIEF0dHJpYnV0ZVNjYWxhclZhbHVlID1cbiAgfCBudWxsXG4gIHwgdW5kZWZpbmVkXG4gIHwgYmlnaW50XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgYm9vbGVhblxuICB8IEF0dHJpYnV0ZUJpbmFyeVZhbHVlO1xuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVWYWx1ZSA9XG4gIHwgQXR0cmlidXRlc1xuICB8IEF0dHJpYnV0ZVNjYWxhclZhbHVlXG4gIHwgU2V0PEF0dHJpYnV0ZVNjYWxhclZhbHVlPlxuICB8IEF0dHJpYnV0ZVZhbHVlW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlcyB7XG4gIFtrZXk6IHN0cmluZ106IEF0dHJpYnV0ZVZhbHVlO1xufVxuXG4vKipcbiAqIFR1cm5zIGEge0BsaW5rIEF0dHJpYnV0ZXN9IHR5cGUgaW50byBhIFpvZCB7QGxpbmsgei5ab2RSYXdTaGFwZX0uXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eVpvZFNoYXBlPEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzPiA9IHtcbiAgW2tleSBpbiBrZXlvZiBBdHRyXTogei5ab2RUeXBlPEF0dHJba2V5XT47XG59O1xuXG4vKipcbiAqIEFuIGV2ZW50dWFsIGVudGl0eS5cbiAqXG4gKiBAc2VlIGVudGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBPbWl0PFxuICAgIEVudGl0eVNwZWM8TmFtZT4sXG4gICAgXCJhdHRyaWJ1dGVzXCIgfCBcInN0cmVhbXNcIiB8IFwicGFydGl0aW9uXCIgfCBcInNvcnRcIiB8IFwiaW5kaWNlc1wiXG4gID4ge1xuICBraW5kOiBcIkVudGl0eVwiO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIGF0dHJpYnV0ZXM6IFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj47XG4gIGluZGljZXM6IEVudGl0eUluZGV4W107XG4gIHN0cmVhbXM6IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXTtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlLlxuICAgKiBJZiB5b3VyIHZhbHVlcyB1c2UgY29tcG9zaXRlIGtleXMsIHRoZSBuYW1lc3BhY2UgbXVzdCBiZSBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIGtleSBvciB7QGxpbmsgQ29tcG9zaXRlS2V5fSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUuXG4gICAqL1xuICBnZXQoXG4gICAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICBvcHRpb25zPzogRW50aXR5UmVhZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxBdHRyIHwgdW5kZWZpbmVkPjtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlIGFuZCBtZXRhZGF0YSBsaWtlIHZlcnNpb24uXG4gICAqIElmIHlvdXIgdmFsdWVzIHVzZSBjb21wb3NpdGUga2V5cywgdGhlIG5hbWVzcGFjZSBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0ga2V5IG9yIHtAbGluayBDb21wb3NpdGVLZXl9IG9mIHRoZSB2YWx1ZSB0byByZXRyaWV2ZS5cbiAgICovXG4gIGdldFdpdGhNZXRhZGF0YShcbiAgICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlSZWFkT3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVdpdGhNZXRhZGF0YTxBdHRyPiB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBTZXRzIG9yIHVwZGF0ZXMgYSB2YWx1ZSB3aXRoaW4gYW4gZW50aXR5IGFuZCBvcHRpb25hbGx5IGEgbmFtZXNwYWNlLlxuICAgKlxuICAgKiBWYWx1ZXMgd2l0aCBuYW1lc3BhY2VzIGFyZSBjb25zaWRlcmVkIGRpc3RpbmN0IGZyb20gdmFsdWUgd2l0aG91dCBhIG5hbWVzcGFjZSBvciB3aXRoaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuXG4gICAqIFZhbHVlcyBhbmQga2V5cyBjYW4gb25seSBiZSBsaXN0ZWQgd2l0aGluIGEgc2luZ2xlIG5hbWVzcGFjZS5cbiAgICovXG4gIHNldChlbnRpdHk6IEF0dHIsIG9wdGlvbnM/OiBFbnRpdHlTZXRPcHRpb25zKTogUHJvbWlzZTx7IHZlcnNpb246IG51bWJlciB9PjtcbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBzaW5nbGUgZW50cnkgd2l0aGluIGFuIGVudGl0eSBhbmQgbmFtZXNwYWNlLlxuICAgKi9cbiAgZGVsZXRlKFxuICAgIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eUNvbnNpc3RlbmN5T3B0aW9uc1xuICApOiBQcm9taXNlPHZvaWQ+O1xuICAvKipcbiAgICogUXVlcnkgdGhlIGVudGl0eSB1c2luZyB0aGUgcGFydGl0aW9uIGtleSBhbmQgb3B0aW9uYWxseSBwYXJ0IG9mIHRoZSBzb3J0IGtleS5cbiAgICovXG4gIHF1ZXJ5KFxuICAgIGtleTogUXVlcnlLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICByZXF1ZXN0PzogRW50aXR5UXVlcnlPcHRpb25zXG4gICk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8QXR0cj4+O1xuICAvKipcbiAgICogUmV0dXJucyBhbGwgaXRlbXMgaW4gdGhlIHRhYmxlLCB1cCB0byB0aGUgbGltaXQgZ2l2ZW4gb3IgMU1CIChvbiBBV1MpLlxuICAgKlxuICAgKiBJbiBnZW5lcmFsLCBzY2FuIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIHNob3VsZCBiZSBhdm9pZGVkIGluIGZhdm9yIG9mIHF1ZXJ5XG4gICAqIHVubGVzcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCBpdGVtcyBpbiBhIHRhYmxlIGFjcm9zcyBhbGwgb3IgbW9zdCBwYXJ0aXRpb25zLlxuICAgKi9cbiAgc2NhbihyZXF1ZXN0PzogRW50aXR5U2Nhbk9wdGlvbnMpOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHI+PjtcbiAgaW5kZXg8XG4gICAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBjb25zdCBJbmRleFBhcnRpdGlvbiBleHRlbmRzXG4gICAgICB8IEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgY29uc3QgSW5kZXhTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gID4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBFbnRpdHlJbmRleE9wdGlvbnM8QXR0ciwgSW5kZXhQYXJ0aXRpb24sIEluZGV4U29ydD5cbiAgKTogRW50aXR5SW5kZXhNYXBwZXI8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBJbmRleFBhcnRpdGlvbiwgSW5kZXhTb3J0PjtcbiAgc3RyZWFtPFxuICAgIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgT3BlcmF0aW9ucyBleHRlbmRzIEVudGl0eVN0cmVhbU9wZXJhdGlvbltdID0gRW50aXR5U3RyZWFtT3BlcmF0aW9uW11cbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0LCBPcGVyYXRpb25zPixcbiAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydCwgT3BlcmF0aW9ucz5cbiAgKTogRW50aXR5U3RyZWFtPE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHN0cmVhbTxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICk6IEVudGl0eVN0cmVhbTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xufVxuXG5leHBvcnQgY29uc3QgRW50aXR5ID0ge1xuICB0cmFuc2FjdFdyaXRlOiAoaXRlbXM6IEVudGl0eVRyYW5zYWN0SXRlbVtdKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwidHJhbnNhY3RcIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICBvcGVyYXRpb246IFwidHJhbnNhY3RcIixcbiAgICAgICAgaXRlbXMsXG4gICAgICB9KSxcbiAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS50cmFuc2FjdFdyaXRlKGl0ZW1zKTtcbiAgICAgIH1cbiAgICApO1xuICB9LFxufTtcblxuLyoqXG4gKiBUcmllcyB0aGUge0BsaW5rIEF0dHJpYnV0ZXN9IHR5cGUgdG8gdGhlIGNvbXB1dGVkIG91dHB1dCBvZiB0aGUgb2JqZWN0LlxuICpcbiAqIFRPRE86IGV4dGVuZCB0aGlzIHR5cGUgdG8gc3VwcG9ydCBpbnRlcnNlY3Rpb24gYW5kIHVuaW9uLlxuICovXG5leHBvcnQgdHlwZSBab2RBdHRyaWJ1dGVzT2JqZWN0PFQgZXh0ZW5kcyBBdHRyaWJ1dGVzPiA9IHouWm9kT2JqZWN0PFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBUXG4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eU9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPiB7XG4gIGF0dHJpYnV0ZXM6IFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj4gfCBFbnRpdHlab2RTaGFwZTxBdHRyPjtcbiAgcGFydGl0aW9uOiBQYXJ0aXRpb247XG4gIHNvcnQ/OiBTb3J0O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZW50aXR5IHdoaWNoIGhvbGRzIGRhdGEuXG4gKlxuICogQW4gZW50aXR5J3Mga2V5cyBhcmUgbWFkZSB1cCBvZiBvbmUgb3IgbW9yZSBhdHRyaWJ1dGVzIGluIHRoZSBlbnRpdHkuXG4gKiBXaGVuIGFuIGVudGl0eSdzIGtleSBpcyBtYWRlIHVwIG9mIG1vcmUgdGhhbiBvbmUgYXR0cmlidXRlLCBpdCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgY29tcG9zaXRlIGtleS5cbiAqXG4gKiBFYWNoIGF0dHJpYnV0ZSBvZiB0aGUgY29tcG9zaXRlIGtleSBpcyBjb25zaWRlcmVkIHRvIGJlIGVpdGhlciBhIHBhcnRpdGlvbiBrZXkgb3IgYSBzb3J0IGtleSwgd2hpY2ggd2UgY29uc2lkZXIgYSBjb21wb3NpdGUga2V5IHBhcnQuXG4gKiBFYWNoIGVudGl0eSBpcyByZXF1aXJlZCB0byBhdCBsZWFzdCBoYXZlIG9uZSBwYXJ0aXRpb24ga2V5IGF0dHJpYnV0ZSwgYnV0IG1heSBoYXZlIG1heSBwYXJ0aXRpb24gYW5kIG9yIHNvcnQga2V5IGF0dHJpYnV0ZXMuXG4gKiBUbyByZXRyaWV2ZSBhIHNpbmdsZSB2YWx1ZSB3aXRoIGFuIGVudGl0eSwgdGhlIGVudGlyZSBjb21wb3NpdGUga2V5IG11c3QgYmUgdXNlZCwgdW50aWwgdGhlIHF1ZXJ5IG9wZXJhdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtdWx0aXBsZSBlbnRpdGllcyAod2l0aGluIGEgcGFydGl0aW9uKS5cbiAqXG4gKiBBIHBhcnRpdGlvbiBrZXkgc2VwYXJhdGVzIGRhdGEgd2l0aGluIGFuIGVudGl0eS4gV2hlbiB1c2luZyB0aGUgUXVlcnkgb3BlcmF0aW9uLCBkYXRhIGNhbiBvbmx5IGJlIHF1ZXJpZWQgd2l0aGluXG4gKiBhIHNpbmdsZSBwYXJ0aXRpb24uXG4gKlxuICogQSBzb3J0IGtleSBkZXRlcm1pbmVzIHRoZSBvcmRlciBvZiB0aGUgdmFsdWVzIHdoZW4gcnVubmluZyBhIHF1ZXJ5LiBJdCBhbHNvIGFsbG93cyBmb3IgcmFuZ2VzIG9mIHZhbHVlcyB0byBiZSBxdWVyaWVkXG4gKiB1c2luZyBvbmx5IHNvbWUgb2YgdGhlIHNvcnQga2V5IGF0dHJpYnV0ZXMgKGluIG9yZGVyKS5cbiAqXG4gKiBgYGB0c1xuICogLy8gbGV0cyB0YWtlIGFuIGV4YW1wbGUgd2hlcmUgd2UgaGF2ZSBwb3N0cyBmb3IgYSB1c2VyLCBzZXBhcmF0ZWQgYnkgZm9ydW0uXG4gKiBjb25zdCB1c2VyQ29tbWVudHMgPSBlbnRpdHkoXCJ1c2VyQ29tbWVudHNcIiwge1xuICogICAgYXR0cmlidXRlczoge1xuICogICAgICAgZm9ydW06IHouc3RyaW5nKCksXG4gKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBwb3N0SWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBjb21tZW50SWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBtZXNzYWdlOiB6LnN0cmluZygpXG4gKiAgICB9LFxuICogICAgcGFydGl0aW9uOiBbXCJmb3J1bVwiLCBcInVzZXJJZFwiXSxcbiAqICAgIHNvcnQ6IFtcInBvc3RJZFwiLCBcImlkXCJdLFxuICogfSk7XG4gKlxuICogLy8gYWRkIGEgbmV3IHBvc3QgY29tbWVudFxuICogYXdhaXQgdXNlckNvbW1lbnRzLnNldCh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLFxuICogICAgdXNlcklkOiBcIjFcIixcbiAqICAgIHBvc3RJZDogXCIxMDBcIixcbiAqICAgIGNvbW1lbnRJZDogXCJhYmNcIixcbiAqICAgIG1lc3NhZ2U6IFwiSSBsb3ZlIGdhbWVzXCJcbiAqIH0pO1xuICpcbiAqIC8vIGdldCBhbGwgY29tbWVudHMgZm9yIGEgdXNlciBpbiBhIGZvcnVtXG4gKiBhd2FpdCB1c2VyQ29tbWVudHMucXVlcnkoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiAgICB1c2VySWQ6IFwiMVwiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqIH0pO1xuICpcbiAqIC8vIGdldCBhbGwgY29tbWVudHMgZm9yIGEgdXNlciBpbiBhIGZvcnVtIGFuZCBhIHBvc3RcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5xdWVyeSh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqICAgIHVzZXJJZDogXCIxXCIsIC8vIHJlcXVpcmVkIGluIHRoZSBxdWVyeVxuICogICAgcG9zdDogXCIxMDBcIiwgLy8gb3B0aW9uYWwgaW4gdGhlIHF1ZXJ5XG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYSBzaW5nbGUgcG9zdFxuICogYXdhaXQgdXNlckNvbW1lbnRzLmdldCh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLFxuICogICAgdXNlcklkOiBcIjFcIixcbiAqICAgIHBvc3RJZDogXCIxMDBcIixcbiAqICAgIGNvbW1lbnRJZDogXCJhYmNcIlxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIGNvbnN0IFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIGNvbnN0IFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuICBuYW1lOiBOYW1lLFxuICBvcHRpb25zOiBFbnRpdHlPcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbik6IEVudGl0eTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgaWYgKGVudGl0aWVzKCkuaGFzKG5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBlbnRpdHkgd2l0aCBuYW1lICcke25hbWV9JyBhbHJlYWR5IGV4aXN0c2ApO1xuICB9XG5cbiAgY29uc3QgaW5kaWNlczogRW50aXR5SW5kZXhbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1haW50YWluIGEgbGltaXRlZCBudW1iZXIgb2Ygc3RyZWFtcyBvbiB0aGUgZW50aXR5LlxuICAgKi9cbiAgY29uc3Qgc3RyZWFtczogRW50aXR5U3RyZWFtPGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PltdID0gW107XG5cbiAgY29uc3QgYXR0cmlidXRlcyA9XG4gICAgb3B0aW9ucy5hdHRyaWJ1dGVzIGluc3RhbmNlb2Ygei5ab2RPYmplY3RcbiAgICAgID8gb3B0aW9ucy5hdHRyaWJ1dGVzXG4gICAgICA6ICh6Lm9iamVjdChvcHRpb25zLmF0dHJpYnV0ZXMpIGFzIHVua25vd24gYXMgWm9kQXR0cmlidXRlc09iamVjdDxBdHRyPik7XG5cbiAgY29uc3QgZW50aXR5OiBFbnRpdHk8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiA9IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgX19lbnRpdHlCcmFuZDogdW5kZWZpbmVkLFxuICAgIGtpbmQ6IFwiRW50aXR5XCIsXG4gICAgbmFtZSxcbiAgICBrZXk6IGNvbXB1dGVLZXlEZWZpbml0aW9uKGF0dHJpYnV0ZXMsIG9wdGlvbnMucGFydGl0aW9uLCBvcHRpb25zLnNvcnQpLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgaW5kaWNlcyxcbiAgICBzdHJlYW1zLFxuICAgIGdldDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwiZ2V0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBvcGVyYXRpb246IFwiZ2V0XCIsXG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5nZXQobmFtZSwgLi4uYXJncykgYXMgUHJvbWlzZTxBdHRyPjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIGdldFdpdGhNZXRhZGF0YTogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwiZ2V0V2l0aE1ldGFkYXRhXCI+PihcbiAgICAgICAgICBFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImdldFdpdGhNZXRhZGF0YVwiLFxuICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLmdldFdpdGhNZXRhZGF0YShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHNldDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2V0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgIG9wZXJhdGlvbjogXCJzZXRcIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5zZXQobmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBkZWxldGU6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImRlbGV0ZVwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwiZGVsZXRlXCIsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuZGVsZXRlKG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgcXVlcnk6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInF1ZXJ5XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgIG9wZXJhdGlvbjogXCJxdWVyeVwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLnF1ZXJ5KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgc2NhbjogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2NhblwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwic2NhblwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLnNjYW4obmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBpbmRleDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IFtpbmRleE5hbWUsIGluZGV4T3B0aW9uc10gPSBhcmdzO1xuXG4gICAgICBpZiAoaW5kaWNlcy5zb21lKChpKSA9PiBpLm5hbWUgPT09IGluZGV4TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbmRleCBvZiBuYW1lICR7aW5kZXhOYW1lfSBhbHJlYWR5IGV4aXN0cyBvbiAke25hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluZGV4OiBFbnRpdHlJbmRleCA9IHtcbiAgICAgICAga2luZDogXCJFbnRpdHlJbmRleFwiLFxuICAgICAgICBrZXk6IGNvbXB1dGVLZXlEZWZpbml0aW9uKFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgKFwicGFydGl0aW9uXCIgaW4gaW5kZXhPcHRpb25zID8gaW5kZXhPcHRpb25zLnBhcnRpdGlvbiA6IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgICAgIG9wdGlvbnMucGFydGl0aW9uLFxuICAgICAgICAgIGluZGV4T3B0aW9ucy5zb3J0ID8/IG9wdGlvbnMuc29ydFxuICAgICAgICApLFxuICAgICAgICBuYW1lOiBpbmRleE5hbWUsXG4gICAgICAgIHBhcnRpdGlvbjpcbiAgICAgICAgICBcInBhcnRpdGlvblwiIGluIGluZGV4T3B0aW9ucyA/IGluZGV4T3B0aW9ucy5wYXJ0aXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIHNvcnQ6IGluZGV4T3B0aW9ucy5zb3J0LFxuICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICBxdWVyeTogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJxdWVyeUluZGV4XCI+PihcbiAgICAgICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBcInF1ZXJ5SW5kZXhcIixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAoKSA9PiBnZXRFbnRpdHlIb29rKCkucXVlcnlJbmRleChuYW1lLCBpbmRleE5hbWUsIC4uLmFyZ3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJzY2FuSW5kZXhcIj4+KFxuICAgICAgICAgICAgICBFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgIGluZGV4TmFtZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwic2NhbkluZGV4XCIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKCkgPT4gZ2V0RW50aXR5SG9vaygpLnNjYW5JbmRleChuYW1lLCBpbmRleE5hbWUsIC4uLmFyZ3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGluZGljZXMucHVzaChpbmRleCk7XG5cbiAgICAgIHJldHVybiBpbmRleCBhcyBhbnk7XG4gICAgfSxcbiAgICBzdHJlYW06IChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW25hbWU6IHN0cmluZywgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgICAgIF1cbiAgICAgICAgfCBbXG4gICAgICAgICAgICBzb3VyY2VMb2NhdGlvbjogU291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgICAgICBdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgb3B0aW9uczogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICAgICAgXVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBzdHJlYW1OYW1lLCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgICAgIGFyZ3MubGVuZ3RoID09PSAyXG4gICAgICAgICAgPyBbLCBhcmdzWzBdLCAsIGFyZ3NbMV1dXG4gICAgICAgICAgOiBhcmdzLmxlbmd0aCA9PT0gNFxuICAgICAgICAgID8gYXJnc1xuICAgICAgICAgIDogaXNTb3VyY2VMb2NhdGlvbihhcmdzWzBdKSAmJiB0eXBlb2YgYXJnc1sxXSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gW2FyZ3NbMF0sIGFyZ3NbMV0gYXMgc3RyaW5nLCAsIGFyZ3NbMl1dXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICxcbiAgICAgICAgICAgICAgYXJnc1swXSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIGFyZ3NbMV0gYXMgRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICAgICBhcmdzWzJdLFxuICAgICAgICAgICAgXTtcblxuICAgICAgaWYgKHN0cmVhbXMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IHR3byBzdHJlYW1zIGFyZSBhbGxvd2VkIHBlciBlbnRpdHkuXCIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRpdHlTdHJlYW06IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4gPSB7XG4gICAgICAgIGtpbmQ6IFwiRW50aXR5U3RyZWFtXCIsXG4gICAgICAgIGhhbmRsZXIsXG4gICAgICAgIG5hbWU6IHN0cmVhbU5hbWUsXG4gICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgfTtcblxuICAgICAgc3RyZWFtcy5wdXNoKGVudGl0eVN0cmVhbSk7XG5cbiAgICAgIHJldHVybiBlbnRpdHlTdHJlYW07XG4gICAgfSxcbiAgfTtcblxuICBlbnRpdGllcygpLnNldChuYW1lLCBlbnRpdHkgYXMgYW55KTtcblxuICByZXR1cm4gZW50aXR5O1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlJbmRleE9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gPVxuICB8IHtcbiAgICAgIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICAgICAgc29ydD86IFNvcnQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHNvcnQ6IFNvcnQ7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgRW50aXR5SW5kZXhNYXBwZXI8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBFbnRpdHlQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgSW5kZXhQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gPSBJbmRleFBhcnRpdGlvbiBleHRlbmRzIHVuZGVmaW5lZFxuICA/IEVudGl0eUluZGV4PE5hbWUsIEF0dHIsIEVudGl0eVBhcnRpdGlvbiwgU29ydD5cbiAgOiBFbnRpdHlJbmRleDxOYW1lLCBBdHRyLCBFeGNsdWRlPEluZGV4UGFydGl0aW9uLCB1bmRlZmluZWQ+LCBTb3J0PjtcblxuLyoqXG4gKiBBbiBpbmRleCdzIGtleSBhdHRyaWJ1dGVzIGFyZSBuZXZlciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eUluZGV4QXR0cmlidXRlczxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiA9IHtcbiAgW2sgaW4ga2V5b2YgQXR0cl06IGsgZXh0ZW5kcyBLZXlBdHRyaWJ1dGVzPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICA/IEV4Y2x1ZGU8QXR0cltrXSwgdW5kZWZpbmVkPlxuICAgIDogQXR0cltrXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5SW5kZXg8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEVudGl0eUF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+ID0gSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+LFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPlxuICAgIHwgdW5kZWZpbmVkLFxuICBJbmRleEF0dHIgZXh0ZW5kcyBFbnRpdHlJbmRleEF0dHJpYnV0ZXM8XG4gICAgRW50aXR5QXR0cixcbiAgICBQYXJ0aXRpb24sXG4gICAgU29ydFxuICA+ID0gRW50aXR5SW5kZXhBdHRyaWJ1dGVzPEVudGl0eUF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbj4gZXh0ZW5kcyBFbnRpdHlJbmRleFNwZWM8TmFtZT4ge1xuICBraW5kOiBcIkVudGl0eUluZGV4XCI7XG4gIHF1ZXJ5KFxuICAgIHF1ZXJ5S2V5OiBRdWVyeUtleTxJbmRleEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eVF1ZXJ5T3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEluZGV4QXR0cj4+O1xuICAvKipcbiAgICogUmV0dXJucyBhbGwgaXRlbXMgaW4gdGhlIHRhYmxlLCB1cCB0byB0aGUgbGltaXQgZ2l2ZW4gb3IgMU1CIChvbiBBV1MpLlxuICAgKlxuICAgKiBJbiBnZW5lcmFsLCBzY2FuIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIHNob3VsZCBiZSBhdm9pZGVkIGluIGZhdm9yIG9mIHF1ZXJ5XG4gICAqIHVubGVzcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCBpdGVtcyBpbiBhIHRhYmxlIGFjcm9zcyBhbGwgb3IgbW9zdCBwYXJ0aXRpb25zLlxuICAgKi9cbiAgc2NhbihyZXF1ZXN0PzogRW50aXR5U2Nhbk9wdGlvbnMpOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEluZGV4QXR0cj4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcz4ge1xuICBlbnRyaWVzPzogRW50aXR5V2l0aE1ldGFkYXRhPEF0dHI+W107XG4gIC8qKlxuICAgKiBSZXR1cm5lZCB3aGVuIHRoZXJlIGFyZSBtb3JlIHZhbHVlcyB0aGFuIHRoZSBsaW1pdCBhbGxvd2VkIHRvIHJldHVybi5cbiAgICovXG4gIG5leHRUb2tlbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiB3aGVuIGNvbnNpc3RlbnQgcmVhZCBpcyBmYWxzZSBvciB1bmRlZmluZWQsIGEgcXVlcnkgb3Igc2NhbiBtYXkgbm90IGluY2x1ZGUgdGhlIGxhdGVzdCBjaGFuZ2VzIHRvIHRoZSBlbnRpdHkgdmFsdWVzLlxuICAgKiBTZXR0aW5nIGNvbnNpc3RlbnQgcmVhZCB0byB0cnVlIHdpbGwgaW5jcmVhc2UgdGhlIGNvc3Qgb2YgdGhlIHJlYWQgYW5kIG1heSB0YWtlIGxvbmdlciB0byByZXR1cm4uXG4gICAqL1xuICBjb25zaXN0ZW50UmVhZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U2Nhbk9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0cmlldmVcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVF1ZXJ5T3B0aW9ucyBleHRlbmRzIEVudGl0eVNjYW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgaXRlbXMgcmV0dXJuZWQgaW4gdGhlIHF1ZXJ5IGJhc2VkIG9uIHRoZSBzb3J0IGtleS5cbiAgICpcbiAgICogQGRlZmF1bHQgQVNDIC0gYXNjZW5kaW5nIG9yZGVyXG4gICAqL1xuICBkaXJlY3Rpb24/OiBcIkFTQ1wiIHwgXCJERVNDXCI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q29uc2lzdGVuY3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCB2ZXJzaW9uIG9mIHRoZSBlbnRpdHkgaW4gdGhlIGVudGl0eS5cbiAgICpcbiAgICogVXNlZCB0byBzdXBwb3J0IGNvbnNpc3RlbnQgd3JpdGVzIGFuZCBkZWxldGVzLlxuICAgKiBBIHZhbHVlIG9mIDAgd2lsbCBvbmx5IHBhc3MgaWYgdGhlIGl0ZW0gaXMgbmV3LlxuICAgKi9cbiAgZXhwZWN0ZWRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNldE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlDb25zaXN0ZW5jeU9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXBkYXRlIHRoZSB2ZXJzaW9uIG9uIGNoYW5nZS5cbiAgICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgdmFsdWUgaGFzIGJlZW4gc2V0LCBpdCB3aWxsIGJlIHNldCB0byAxLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gdmVyc2lvbiB3aWxsIGJlIGluY3JlbWVudGVkLlxuICAgKi9cbiAgaW5jcmVtZW50VmVyc2lvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5V2l0aE1ldGFkYXRhPEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcz4ge1xuICB2YWx1ZTogQXR0cjtcbiAgdmVyc2lvbjogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkXG4+IHtcbiAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHwgc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlUcmFuc2FjdEl0ZW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+ID1cbiAgfCBFbnRpdHlUcmFuc2FjdFNldE9wZXJhdGlvbjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gIHwgRW50aXR5VHJhbnNhY3REZWxldGVPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVRyYW5zYWN0Q29uZGl0aW9uYWxPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdFNldE9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwic2V0XCI7XG4gIHZhbHVlOiBBdHRyO1xuICBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdERlbGV0ZU9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwiZGVsZXRlXCI7XG4gIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIG9wdGlvbnM/OiBFbnRpdHlTZXRPcHRpb25zO1xufVxuXG4vKipcbiAqIFVzZWQgaW4gdHJhbnNhY3Rpb25zLCBjYW5jZWxzIHRoZSB0cmFuc2FjdGlvbiBpZiB0aGUga2V5J3MgdmVyc2lvbiBkb2VzIG5vdCBtYXRjaC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdENvbmRpdGlvbmFsT3BlcmF0aW9uPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IGFueSxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEVudGl0eVRyYW5zYWN0SXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG9wZXJhdGlvbjogXCJjb25kaXRpb25cIjtcbiAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgdmVyc2lvbj86IG51bWJlcjtcbn1cbiJdfQ==

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

import { EntityStreamOptions, EntityStreamSpec, SourceLocation } from "../internal/service-spec.js";
import { EntityStreamOperation, EntityStreamOptions, EntityStreamSpec, SourceLocation } from "../internal/service-spec.js";
import type { ServiceContext } from "../service.js";

@@ -11,7 +11,7 @@ import type { Entity, Attributes } from "./entity.js";

}
export interface EntityStreamHandler<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> {
export interface EntityStreamHandler<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> {
/**
* Provides the keys, new value
*/
(item: EntityStreamItem<Attr, Partition, Sort>, context: EntityStreamContext): Promise<void | false> | void | false;
(item: EntityStreamItem<Attr, Partition, Sort, Operations>, context: EntityStreamContext): Promise<void | false> | void | false;
}

@@ -23,3 +23,5 @@ export interface EntityStreamItemBase<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> {

}
export type EntityStreamItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> = EntityStreamInsertItem<Attr, Partition, Sort> | EntityStreamModifyItem<Attr, Partition, Sort> | EntityStreamRemoveItem<Attr, Partition, Sort>;
export type EntityStreamItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> = (EntityStreamInsertItem<Attr, Partition, Sort> | EntityStreamModifyItem<Attr, Partition, Sort> | EntityStreamRemoveItem<Attr, Partition, Sort>) & {
operation: Operations[number];
};
export interface EntityStreamInsertItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> extends EntityStreamItemBase<Attr, Partition, Sort> {

@@ -26,0 +28,0 @@ newValue: Attr;

@@ -36,2 +36,2 @@ "use strict";

exports.entityStream = entityStream;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBS3FDO0FBb0dyQyxTQUFnQixZQUFZLENBSzFCLEdBQUcsSUF3QkU7SUFFTCxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUNwRCxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQUFBRCxFQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUEsa0NBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUM7b0JBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsQ0FBQyxDQUFXO29CQUNqQixJQUFJLENBQUMsQ0FBQyxDQUF1QztvQkFDN0MsQUFEOEM7b0JBRTlDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ1I7Z0JBQ0gsQ0FBQyxDQUFDO29CQUNFLEFBREQ7b0JBRUMsSUFBSSxDQUFDLENBQUMsQ0FBVztvQkFDakIsSUFBSSxDQUFDLENBQUMsQ0FBdUM7b0JBQzdDLElBQUksQ0FBQyxDQUFDLENBQStDO29CQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNSLENBQUM7SUFFUixPQUFPLGNBQWM7UUFDbkIsQ0FBQyxDQUFDLE9BQU87WUFDUCxDQUFDLENBQUMsYUFBYTtnQkFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUN2RCxDQUFDLENBQUMsYUFBYTtnQkFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7WUFDdkMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUE3REQsb0NBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5U3RyZWFtT3B0aW9ucyxcbiAgRW50aXR5U3RyZWFtU3BlYyxcbiAgU291cmNlTG9jYXRpb24sXG4gIGlzU291cmNlTG9jYXRpb24sXG59IGZyb20gXCIuLi9pbnRlcm5hbC9zZXJ2aWNlLXNwZWMuanNcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHksIEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5Q29tcG9zaXRlS2V5UGFydCwgS2V5TWFwIH0gZnJvbSBcIi4va2V5LmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtQ29udGV4dCB7XG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGFpbmluZyBzZXJ2aWNlLlxuICAgKi9cbiAgc2VydmljZTogU2VydmljZUNvbnRleHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSGFuZGxlcjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IHtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBrZXlzLCBuZXcgdmFsdWVcbiAgICovXG4gIChcbiAgICBpdGVtOiBFbnRpdHlTdHJlYW1JdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgY29udGV4dDogRW50aXR5U3RyZWFtQ29udGV4dFxuICApOiBQcm9taXNlPHZvaWQgfCBmYWxzZT4gfCB2b2lkIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSXRlbUJhc2U8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIHN0cmVhbU5hbWU6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBrZXk6IEtleU1hcDxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlTdHJlYW1JdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gPVxuICB8IEVudGl0eVN0cmVhbUluc2VydEl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVN0cmVhbU1vZGlmeUl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVN0cmVhbVJlbW92ZUl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1JbnNlcnRJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgbmV3VmFsdWU6IEF0dHI7XG4gIG5ld1ZlcnNpb246IG51bWJlcjtcbiAgb3BlcmF0aW9uOiBcImluc2VydFwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbU1vZGlmeUl0ZW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEVudGl0eVN0cmVhbUl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwibW9kaWZ5XCI7XG4gIG5ld1ZhbHVlOiBBdHRyO1xuICBuZXdWZXJzaW9uOiBudW1iZXI7XG4gIG9sZFZhbHVlPzogQXR0cjtcbiAgb2xkVmVyc2lvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1SZW1vdmVJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcInJlbW92ZVwiO1xuICBvbGRWYWx1ZT86IEF0dHI7XG4gIG9sZFZlcnNpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1TcGVjPE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBraW5kOiBcIkVudGl0eVN0cmVhbVwiO1xuICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlTdHJlYW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBjb25zdCBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBjb25zdCBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZFxuPihcbiAgLi4uYXJnczpcbiAgICB8IFtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuICAgIHwgW1xuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgb3B0aW9uczogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgIF1cbiAgICB8IFtcbiAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4gICAgfCBbXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4pIHtcbiAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBuYW1lLCBlbnRpdHksIG9wdGlvbnMsIGhhbmRsZXJdID1cbiAgICBhcmdzLmxlbmd0aCA9PT0gM1xuICAgICAgPyBbLCBhcmdzWzBdLCBhcmdzWzFdLCAsIGFyZ3NbMl1dXG4gICAgICA6IGFyZ3MubGVuZ3RoID09PSA1XG4gICAgICA/IGFyZ3NcbiAgICAgIDogaXNTb3VyY2VMb2NhdGlvbihhcmdzWzBdKVxuICAgICAgPyBbXG4gICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICBhcmdzWzFdIGFzIHN0cmluZyxcbiAgICAgICAgICBhcmdzWzJdIGFzIEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgLFxuICAgICAgICAgIGFyZ3NbM10sXG4gICAgICAgIF1cbiAgICAgIDogW1xuICAgICAgICAgICxcbiAgICAgICAgICBhcmdzWzBdIGFzIHN0cmluZyxcbiAgICAgICAgICBhcmdzWzFdIGFzIEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgYXJnc1syXSBhcyBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgYXJnc1szXSxcbiAgICAgICAgXTtcblxuICByZXR1cm4gc291cmNlTG9jYXRpb25cbiAgICA/IG9wdGlvbnNcbiAgICAgID8gLy8gQHRzLWlnbm9yZVxuICAgICAgICBlbnRpdHkuc3RyZWFtKHNvdXJjZUxvY2F0aW9uLCBuYW1lLCBvcHRpb25zLCBoYW5kbGVyKVxuICAgICAgOiAvLyBAdHMtaWdub3JlXG4gICAgICAgIGVudGl0eS5zdHJlYW0oc291cmNlTG9jYXRpb24sIG5hbWUsIGhhbmRsZXIpXG4gICAgOiBvcHRpb25zXG4gICAgPyBlbnRpdHkuc3RyZWFtKG5hbWUsIG9wdGlvbnMsIGhhbmRsZXIpXG4gICAgOiBlbnRpdHkuc3RyZWFtKG5hbWUsIGhhbmRsZXIpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBTXFDO0FBdUdyQyxTQUFnQixZQUFZLENBSzFCLEdBQUcsSUF3QkU7SUFFTCxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUNwRCxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQUFBRCxFQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUEsa0NBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUM7b0JBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsQ0FBQyxDQUFXO29CQUNqQixJQUFJLENBQUMsQ0FBQyxDQUF1QztvQkFDN0MsQUFEOEM7b0JBRTlDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ1I7Z0JBQ0gsQ0FBQyxDQUFDO29CQUNFLEFBREQ7b0JBRUMsSUFBSSxDQUFDLENBQUMsQ0FBVztvQkFDakIsSUFBSSxDQUFDLENBQUMsQ0FBdUM7b0JBQzdDLElBQUksQ0FBQyxDQUFDLENBQStDO29CQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNSLENBQUM7SUFFUixPQUFPLGNBQWM7UUFDbkIsQ0FBQyxDQUFDLE9BQU87WUFDUCxDQUFDLENBQUMsYUFBYTtnQkFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUN2RCxDQUFDLENBQUMsYUFBYTtnQkFDYixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7WUFDdkMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUE3REQsb0NBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5U3RyZWFtT3BlcmF0aW9uLFxuICBFbnRpdHlTdHJlYW1PcHRpb25zLFxuICBFbnRpdHlTdHJlYW1TcGVjLFxuICBTb3VyY2VMb2NhdGlvbixcbiAgaXNTb3VyY2VMb2NhdGlvbixcbn0gZnJvbSBcIi4uL2ludGVybmFsL3NlcnZpY2Utc3BlYy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCIuLi9zZXJ2aWNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eSwgQXR0cmlidXRlcyB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0LCBLZXlNYXAgfSBmcm9tIFwiLi9rZXkuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1Db250ZXh0IHtcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250YWluaW5nIHNlcnZpY2UuXG4gICAqL1xuICBzZXJ2aWNlOiBTZXJ2aWNlQ29udGV4dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1IYW5kbGVyPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWQsXG4gIE9wZXJhdGlvbnMgZXh0ZW5kcyBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXSA9IEVudGl0eVN0cmVhbU9wZXJhdGlvbltdXG4+IHtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBrZXlzLCBuZXcgdmFsdWVcbiAgICovXG4gIChcbiAgICBpdGVtOiBFbnRpdHlTdHJlYW1JdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydCwgT3BlcmF0aW9ucz4sXG4gICAgY29udGV4dDogRW50aXR5U3RyZWFtQ29udGV4dFxuICApOiBQcm9taXNlPHZvaWQgfCBmYWxzZT4gfCB2b2lkIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSXRlbUJhc2U8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIHN0cmVhbU5hbWU6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBrZXk6IEtleU1hcDxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlTdHJlYW1JdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWQsXG4gIE9wZXJhdGlvbnMgZXh0ZW5kcyBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXSA9IEVudGl0eVN0cmVhbU9wZXJhdGlvbltdXG4+ID0gKFxuICB8IEVudGl0eVN0cmVhbUluc2VydEl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVN0cmVhbU1vZGlmeUl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVN0cmVhbVJlbW92ZUl0ZW08QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuKSAmIHsgb3BlcmF0aW9uOiBPcGVyYXRpb25zW251bWJlcl0gfTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1JbnNlcnRJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgbmV3VmFsdWU6IEF0dHI7XG4gIG5ld1ZlcnNpb246IG51bWJlcjtcbiAgb3BlcmF0aW9uOiBcImluc2VydFwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbU1vZGlmeUl0ZW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEVudGl0eVN0cmVhbUl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwibW9kaWZ5XCI7XG4gIG5ld1ZhbHVlOiBBdHRyO1xuICBuZXdWZXJzaW9uOiBudW1iZXI7XG4gIG9sZFZhbHVlPzogQXR0cjtcbiAgb2xkVmVyc2lvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1SZW1vdmVJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcInJlbW92ZVwiO1xuICBvbGRWYWx1ZT86IEF0dHI7XG4gIG9sZFZlcnNpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1TcGVjPE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBraW5kOiBcIkVudGl0eVN0cmVhbVwiO1xuICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlTdHJlYW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBjb25zdCBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBjb25zdCBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZFxuPihcbiAgLi4uYXJnczpcbiAgICB8IFtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuICAgIHwgW1xuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgb3B0aW9uczogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgIF1cbiAgICB8IFtcbiAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4gICAgfCBbXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4pIHtcbiAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBuYW1lLCBlbnRpdHksIG9wdGlvbnMsIGhhbmRsZXJdID1cbiAgICBhcmdzLmxlbmd0aCA9PT0gM1xuICAgICAgPyBbLCBhcmdzWzBdLCBhcmdzWzFdLCAsIGFyZ3NbMl1dXG4gICAgICA6IGFyZ3MubGVuZ3RoID09PSA1XG4gICAgICA/IGFyZ3NcbiAgICAgIDogaXNTb3VyY2VMb2NhdGlvbihhcmdzWzBdKVxuICAgICAgPyBbXG4gICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICBhcmdzWzFdIGFzIHN0cmluZyxcbiAgICAgICAgICBhcmdzWzJdIGFzIEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgLFxuICAgICAgICAgIGFyZ3NbM10sXG4gICAgICAgIF1cbiAgICAgIDogW1xuICAgICAgICAgICxcbiAgICAgICAgICBhcmdzWzBdIGFzIHN0cmluZyxcbiAgICAgICAgICBhcmdzWzFdIGFzIEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgYXJnc1syXSBhcyBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgYXJnc1szXSxcbiAgICAgICAgXTtcblxuICByZXR1cm4gc291cmNlTG9jYXRpb25cbiAgICA/IG9wdGlvbnNcbiAgICAgID8gLy8gQHRzLWlnbm9yZVxuICAgICAgICBlbnRpdHkuc3RyZWFtKHNvdXJjZUxvY2F0aW9uLCBuYW1lLCBvcHRpb25zLCBoYW5kbGVyKVxuICAgICAgOiAvLyBAdHMtaWdub3JlXG4gICAgICAgIGVudGl0eS5zdHJlYW0oc291cmNlTG9jYXRpb24sIG5hbWUsIGhhbmRsZXIpXG4gICAgOiBvcHRpb25zXG4gICAgPyBlbnRpdHkuc3RyZWFtKG5hbWUsIG9wdGlvbnMsIGhhbmRsZXIpXG4gICAgOiBlbnRpdHkuc3RyZWFtKG5hbWUsIGhhbmRsZXIpO1xufVxuIl19

@@ -180,3 +180,3 @@ import type openapi from "openapi3-ts";

export type EntityStreamOperation = "insert" | "modify" | "remove";
export interface EntityStreamOptions<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> extends FunctionRuntimeProps {
export interface EntityStreamOptions<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> extends FunctionRuntimeProps {
/**

@@ -187,3 +187,3 @@ * A list of operations to be send to the stream.

*/
operations?: EntityStreamOperation[];
operations?: Operations;
/**

@@ -190,0 +190,0 @@ * When true, the old value will be sent with the new value.

@@ -11,2 +11,2 @@ "use strict";

exports.isSourceLocation = isSourceLocation;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtSkEsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBTTtJQUNyQyxPQUFPLENBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDOUIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHkuanNcIjtcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUtleVBhcnQsXG4gIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQsXG4gIFN0cmVhbVF1ZXJ5S2V5LFxufSBmcm9tIFwiLi4vZW50aXR5L2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc3RQYXJhbXMgfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uU2NoZWR1bGUgfSBmcm9tIFwiLi4vc2NoZWR1bGUuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgU3Vic2NyaXB0aW9uRmlsdGVyLFxuICBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHMsXG59IGZyb20gXCIuLi9zdWJzY3JpcHRpb24uanNcIjtcbmltcG9ydCB7IEtleURlZmluaXRpb24gfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgVGFza1NwZWMgfSBmcm9tIFwiLi90YXNrLmpzXCI7XG5cbi8qKlxuICogU3BlY2lmaWNhdGlvbiBmb3IgYW4gRXZlbnR1YWwgYXBwbGljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlYyB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHdvcmtmbG93c1xuICAgKi9cbiAgd29ya2Zsb3dzOiBXb3JrZmxvd1NwZWNbXTtcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNwZWNbXTtcbiAgdGFza3M6IFRhc2tTcGVjW107XG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W107XG4gIC8qKlxuICAgKiBPcGVuIEFQSSAzIHNjaGVtYSBkZWZpbml0aW9ucyBmb3IgYWxsIGtub3duIEV2ZW50cyBpbiB0aGlzIFNlcnZpY2UuXG4gICAqL1xuICBldmVudHM6IEV2ZW50U3BlY1tdO1xuICAvKipcbiAgICogSW5kaXZpZHVhbGx5IGJ1bmRsZWQge0BsaW5rIEV2ZW50RnVuY3Rpb259cyBjb250YWluaW5nIGEgc2luZ2xlIGBzdWJzY3JpcHRpb25gIGV2ZW50IGhhbmRsZXIuXG4gICAqL1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25TcGVjW107XG4gIGJ1Y2tldHM6IHtcbiAgICBidWNrZXRzOiBCdWNrZXRTcGVjW107XG4gIH07XG4gIGVudGl0aWVzOiB7XG4gICAgZW50aXRpZXM6IEVudGl0eVNwZWNbXTtcbiAgfTtcbiAgb3BlbkFwaToge1xuICAgIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWMge1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICB0aW1lb3V0PzogRHVyYXRpb25TY2hlZHVsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgU3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdGhpcyBFdmVudCBIYW5kbGVyIGlzIHN1YnNjcmliZWQgdG8uIEFueSBldmVudCBmbG93aW5nXG4gICAqIHRocm91Z2ggdGhlIFNlcnZpY2UncyBFdmVudCBCdXMgdGhhdCBtYXRjaCB0aGVzZSBjcml0ZXJpYSB3aWxsIGJlXG4gICAqIHNlbnQgdG8gdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBmaWx0ZXJzOiBTdWJzY3JpcHRpb25GaWx0ZXJbXTtcbiAgLyoqXG4gICAqIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBFdmVudCBIYW5kbGVyLlxuICAgKi9cbiAgcHJvcHM/OiBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXIuXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnQncyBnbG9iYWxseSB1bmlxdWUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIFNjaGVtYSBvZiB0aGUgRXZlbnQuXG4gICAqL1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kT3V0cHV0IHtcbiAgc2NoZW1hPzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGF0dXMgY29kZSBvZiB0aGUgb3V0cHV0IHVzZWQgaW4gY29tbWFuZHMgd2l0aCBhIHJlc3QgcGF0aC5cbiAgICpcbiAgICogUlBDIGNvbW1hbmRzIGFsd2F5cyByZXR1cm4gYSBzaW5nbGUgMjAwIHJlc3BvbnNlLlxuICAgKi9cbiAgcmVzdFN0YXR1c0NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBMb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgc3VtbWFyeSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBzdW1tYXJ5Pzogc3RyaW5nO1xuICBpbnB1dD86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICAvKipcbiAgICogT3V0cHV0IHVzZWQgYnkgUlBDIGNvbW1hbmRzIGFuZCBSZXN0IGNvbW1hbmRzIHRvIGRlZmluZSB0aGUgb3V0cHV0IG9mIHRoZSBoYW5kbGVyLlxuICAgKlxuICAgKiBSUEMgd2lsbCBhbHdheXMgaGF2ZSBhIHN0YXR1cyBjb2RlIG9mIDIwMCwgYnV0IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBkZXNjcmlwdGlvbiBvZiBcIk9LXCIuXG4gICAqXG4gICAqIFRoZSBSRVNUIGNvbW1hbmQgd2lsbCByZXR1cm4gYSAyMDAgcmVzcG9uc2UgdW5sZXNzIGFuIGFsdGVybmF0aXZlIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgb3V0cHV0PzogQ29tbWFuZE91dHB1dDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG91dHB1dHMgcHJvdmlkZWQgYnkgYW4gaHR0cCBBUEkgY29tbWFuZCB1c2luZyBwYXNzdGhyb3VnaCBtb2RlLlxuICAgKlxuICAgKiBUaGVzZSBjb21tYW5kcyByZXR1cm4gYSB7QGxpbmsgSHR0cFJlc3BvbnNlfSB3aGljaCBjYW4gZGVmaW5lIGFueSBudW1iZXIgb2Ygb3V0cHV0cyB3aXRoIGN1c3RvbSBzdGF0dXMgY29kZXMuXG4gICAqXG4gICAqIFRoZSBvdXRwdXRzIGFyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSB7QGxpbmsgQXBpU3BlY2lmaWNhdGlvbn0uXG4gICAqL1xuICBvdXRwdXRzPzogQ29tbWFuZE91dHB1dFtdO1xuICBwYXRoPzogUGF0aDtcbiAgbWV0aG9kPzogTWV0aG9kO1xuICBwYXJhbXM/OiBSZXN0UGFyYW1zPElucHV0LCBQYXRoLCBNZXRob2Q+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xuICBwYXNzVGhyb3VnaD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIHRvIGlzb2xhdGUgcnBjIHBhdGhzLlxuICAgKlxuICAgKiAvcnBjWy9uYW1lc3BhY2VdL2NvbW1hbmRcbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHNjaGVtYSB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NvdXJjZUxvY2F0aW9uKGE6IGFueSk6IGEgaXMgU291cmNlTG9jYXRpb24ge1xuICByZXR1cm4gKFxuICAgIGEgJiZcbiAgICB0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBhLmZpbGVOYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGEuZXhwb3J0TmFtZSA9PT0gXCJzdHJpbmdcIlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0aW9uIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZXhwb3J0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYXMge1xuICBbc2NoZW1hTmFtZTogc3RyaW5nXTogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dTcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIEdsb2JhbGx5IHVuaXF1ZSBJRCBvZiB0aGlzIHtAbGluayBXb3JrZmxvd30uXG4gICAqL1xuICBuYW1lOiBOYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBoYW5kbGVyczogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlclNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgQnVja2V0Tm90aWZpY2F0aW9uRXZlbnRUeXBlID0gXCJwdXRcIiB8IFwiY29weVwiIHwgXCJkZWxldGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyT3B0aW9ucyBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIGV2ZW50VHlwZXM/OiBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGVbXTtcbiAgLyoqXG4gICAqIEZpbHRlciBvYmplY3RzIGluIHRoZSBzdHJlYW0gYnkgcHJlZml4IG9yIHN1ZmZpeC5cbiAgICovXG4gIGZpbHRlcnM/OiB7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zO1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIC8qKlxuICAgKiBBbiBPcHRpb25hbCBzY2hlbWEgZm9yIHRoZSBlbnRpdHkgd2l0aGluIGFuIGVudGl0eS5cbiAgICovXG4gIGF0dHJpYnV0ZXM6IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICBzdHJlYW1zOiBFbnRpdHlTdHJlYW1TcGVjW107XG4gIGluZGljZXM6IEVudGl0eUluZGV4U3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlTdHJlYW1PcGVyYXRpb24gPSBcImluc2VydFwiIHwgXCJtb2RpZnlcIiB8IFwicmVtb3ZlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtT3B0aW9uczxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgb3BlcmF0aW9ucz86IEVudGl0eVN0cmVhbU9wZXJhdGlvbltdO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgb2xkIHZhbHVlIHdpbGwgYmUgc2VudCB3aXRoIHRoZSBuZXcgdmFsdWUuXG4gICAqL1xuICBpbmNsdWRlT2xkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGtleSBxdWVyaWVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcXVlcnlLZXlzPzogU3RyZWFtUXVlcnlLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbVNwZWM8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlJbmRleFNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgcGFydGl0aW9uPzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xuICBzb3J0PzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRNYW5pZmVzdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VTcGVjOiBTZXJ2aWNlU3BlYztcbiAgc2VydmljZVVybDogc3RyaW5nO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtSkEsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBTTtJQUNyQyxPQUFPLENBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDOUIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHkuanNcIjtcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUtleVBhcnQsXG4gIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQsXG4gIFN0cmVhbVF1ZXJ5S2V5LFxufSBmcm9tIFwiLi4vZW50aXR5L2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc3RQYXJhbXMgfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uU2NoZWR1bGUgfSBmcm9tIFwiLi4vc2NoZWR1bGUuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgU3Vic2NyaXB0aW9uRmlsdGVyLFxuICBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHMsXG59IGZyb20gXCIuLi9zdWJzY3JpcHRpb24uanNcIjtcbmltcG9ydCB7IEtleURlZmluaXRpb24gfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgVGFza1NwZWMgfSBmcm9tIFwiLi90YXNrLmpzXCI7XG5cbi8qKlxuICogU3BlY2lmaWNhdGlvbiBmb3IgYW4gRXZlbnR1YWwgYXBwbGljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlYyB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHdvcmtmbG93c1xuICAgKi9cbiAgd29ya2Zsb3dzOiBXb3JrZmxvd1NwZWNbXTtcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNwZWNbXTtcbiAgdGFza3M6IFRhc2tTcGVjW107XG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W107XG4gIC8qKlxuICAgKiBPcGVuIEFQSSAzIHNjaGVtYSBkZWZpbml0aW9ucyBmb3IgYWxsIGtub3duIEV2ZW50cyBpbiB0aGlzIFNlcnZpY2UuXG4gICAqL1xuICBldmVudHM6IEV2ZW50U3BlY1tdO1xuICAvKipcbiAgICogSW5kaXZpZHVhbGx5IGJ1bmRsZWQge0BsaW5rIEV2ZW50RnVuY3Rpb259cyBjb250YWluaW5nIGEgc2luZ2xlIGBzdWJzY3JpcHRpb25gIGV2ZW50IGhhbmRsZXIuXG4gICAqL1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25TcGVjW107XG4gIGJ1Y2tldHM6IHtcbiAgICBidWNrZXRzOiBCdWNrZXRTcGVjW107XG4gIH07XG4gIGVudGl0aWVzOiB7XG4gICAgZW50aXRpZXM6IEVudGl0eVNwZWNbXTtcbiAgfTtcbiAgb3BlbkFwaToge1xuICAgIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWMge1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICB0aW1lb3V0PzogRHVyYXRpb25TY2hlZHVsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgU3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdGhpcyBFdmVudCBIYW5kbGVyIGlzIHN1YnNjcmliZWQgdG8uIEFueSBldmVudCBmbG93aW5nXG4gICAqIHRocm91Z2ggdGhlIFNlcnZpY2UncyBFdmVudCBCdXMgdGhhdCBtYXRjaCB0aGVzZSBjcml0ZXJpYSB3aWxsIGJlXG4gICAqIHNlbnQgdG8gdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBmaWx0ZXJzOiBTdWJzY3JpcHRpb25GaWx0ZXJbXTtcbiAgLyoqXG4gICAqIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBFdmVudCBIYW5kbGVyLlxuICAgKi9cbiAgcHJvcHM/OiBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXIuXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnQncyBnbG9iYWxseSB1bmlxdWUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIFNjaGVtYSBvZiB0aGUgRXZlbnQuXG4gICAqL1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kT3V0cHV0IHtcbiAgc2NoZW1hPzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGF0dXMgY29kZSBvZiB0aGUgb3V0cHV0IHVzZWQgaW4gY29tbWFuZHMgd2l0aCBhIHJlc3QgcGF0aC5cbiAgICpcbiAgICogUlBDIGNvbW1hbmRzIGFsd2F5cyByZXR1cm4gYSBzaW5nbGUgMjAwIHJlc3BvbnNlLlxuICAgKi9cbiAgcmVzdFN0YXR1c0NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBMb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgc3VtbWFyeSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBzdW1tYXJ5Pzogc3RyaW5nO1xuICBpbnB1dD86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICAvKipcbiAgICogT3V0cHV0IHVzZWQgYnkgUlBDIGNvbW1hbmRzIGFuZCBSZXN0IGNvbW1hbmRzIHRvIGRlZmluZSB0aGUgb3V0cHV0IG9mIHRoZSBoYW5kbGVyLlxuICAgKlxuICAgKiBSUEMgd2lsbCBhbHdheXMgaGF2ZSBhIHN0YXR1cyBjb2RlIG9mIDIwMCwgYnV0IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBkZXNjcmlwdGlvbiBvZiBcIk9LXCIuXG4gICAqXG4gICAqIFRoZSBSRVNUIGNvbW1hbmQgd2lsbCByZXR1cm4gYSAyMDAgcmVzcG9uc2UgdW5sZXNzIGFuIGFsdGVybmF0aXZlIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgb3V0cHV0PzogQ29tbWFuZE91dHB1dDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG91dHB1dHMgcHJvdmlkZWQgYnkgYW4gaHR0cCBBUEkgY29tbWFuZCB1c2luZyBwYXNzdGhyb3VnaCBtb2RlLlxuICAgKlxuICAgKiBUaGVzZSBjb21tYW5kcyByZXR1cm4gYSB7QGxpbmsgSHR0cFJlc3BvbnNlfSB3aGljaCBjYW4gZGVmaW5lIGFueSBudW1iZXIgb2Ygb3V0cHV0cyB3aXRoIGN1c3RvbSBzdGF0dXMgY29kZXMuXG4gICAqXG4gICAqIFRoZSBvdXRwdXRzIGFyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSB7QGxpbmsgQXBpU3BlY2lmaWNhdGlvbn0uXG4gICAqL1xuICBvdXRwdXRzPzogQ29tbWFuZE91dHB1dFtdO1xuICBwYXRoPzogUGF0aDtcbiAgbWV0aG9kPzogTWV0aG9kO1xuICBwYXJhbXM/OiBSZXN0UGFyYW1zPElucHV0LCBQYXRoLCBNZXRob2Q+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xuICBwYXNzVGhyb3VnaD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIHRvIGlzb2xhdGUgcnBjIHBhdGhzLlxuICAgKlxuICAgKiAvcnBjWy9uYW1lc3BhY2VdL2NvbW1hbmRcbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHNjaGVtYSB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NvdXJjZUxvY2F0aW9uKGE6IGFueSk6IGEgaXMgU291cmNlTG9jYXRpb24ge1xuICByZXR1cm4gKFxuICAgIGEgJiZcbiAgICB0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBhLmZpbGVOYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGEuZXhwb3J0TmFtZSA9PT0gXCJzdHJpbmdcIlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0aW9uIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZXhwb3J0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYXMge1xuICBbc2NoZW1hTmFtZTogc3RyaW5nXTogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dTcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIEdsb2JhbGx5IHVuaXF1ZSBJRCBvZiB0aGlzIHtAbGluayBXb3JrZmxvd30uXG4gICAqL1xuICBuYW1lOiBOYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBoYW5kbGVyczogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlclNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgQnVja2V0Tm90aWZpY2F0aW9uRXZlbnRUeXBlID0gXCJwdXRcIiB8IFwiY29weVwiIHwgXCJkZWxldGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyT3B0aW9ucyBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIGV2ZW50VHlwZXM/OiBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGVbXTtcbiAgLyoqXG4gICAqIEZpbHRlciBvYmplY3RzIGluIHRoZSBzdHJlYW0gYnkgcHJlZml4IG9yIHN1ZmZpeC5cbiAgICovXG4gIGZpbHRlcnM/OiB7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zO1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIC8qKlxuICAgKiBBbiBPcHRpb25hbCBzY2hlbWEgZm9yIHRoZSBlbnRpdHkgd2l0aGluIGFuIGVudGl0eS5cbiAgICovXG4gIGF0dHJpYnV0ZXM6IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICBzdHJlYW1zOiBFbnRpdHlTdHJlYW1TcGVjW107XG4gIGluZGljZXM6IEVudGl0eUluZGV4U3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlTdHJlYW1PcGVyYXRpb24gPSBcImluc2VydFwiIHwgXCJtb2RpZnlcIiB8IFwicmVtb3ZlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtT3B0aW9uczxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkLFxuICBPcGVyYXRpb25zIGV4dGVuZHMgRW50aXR5U3RyZWFtT3BlcmF0aW9uW10gPSBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXVxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIG9wZXJhdGlvbnM/OiBPcGVyYXRpb25zO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgb2xkIHZhbHVlIHdpbGwgYmUgc2VudCB3aXRoIHRoZSBuZXcgdmFsdWUuXG4gICAqL1xuICBpbmNsdWRlT2xkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGtleSBxdWVyaWVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcXVlcnlLZXlzPzogU3RyZWFtUXVlcnlLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbVNwZWM8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlJbmRleFNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICBuYW1lOiBOYW1lO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgcGFydGl0aW9uPzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xuICBzb3J0PzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRNYW5pZmVzdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VTcGVjOiBTZXJ2aWNlU3BlYztcbiAgc2VydmljZVVybDogc3RyaW5nO1xufVxuIl19
/// <reference types="node" resolution-mode="require"/>
import { z } from "zod";
import { KeyDefinition } from "../internal/entity.js";
import { EntityIndexSpec, EntitySpec, EntityStreamOptions } from "../internal/service-spec.js";
import { EntityIndexSpec, EntitySpec, EntityStreamOperation, EntityStreamOptions } from "../internal/service-spec.js";
import type { CompositeKey, EntityCompositeKeyPart, IndexCompositeKeyPart, KeyAttributes, QueryKey } from "./key.js";

@@ -67,5 +67,5 @@ import type { EntityStream, EntityStreamHandler } from "./stream.js";

*/
scan(request?: EntityQueryOptions): Promise<EntityQueryResult<Attr>>;
scan(request?: EntityScanOptions): Promise<EntityQueryResult<Attr>>;
index<Name extends string = string, const IndexPartition extends IndexCompositeKeyPart<Attr> | undefined = undefined, const IndexSort extends IndexCompositeKeyPart<Attr> | undefined = undefined>(name: Name, options: EntityIndexOptions<Attr, IndexPartition, IndexSort>): EntityIndexMapper<Name, Attr, Partition, IndexPartition, IndexSort>;
stream<Name extends string = string>(name: Name, options: EntityStreamOptions<Attr, Partition, Sort>, handler: EntityStreamHandler<Attr, Partition, Sort>): EntityStream<Name, Attr, Partition, Sort>;
stream<Name extends string = string, Operations extends EntityStreamOperation[] = EntityStreamOperation[]>(name: Name, options: EntityStreamOptions<Attr, Partition, Sort, Operations>, handler: EntityStreamHandler<Attr, Partition, Sort, Operations>): EntityStream<Name, Attr, Partition, Sort>;
stream<Name extends string = string>(name: string, handler: EntityStreamHandler<Attr, Partition, Sort>): EntityStream<Name, Attr, Partition, Sort>;

@@ -171,3 +171,3 @@ }

*/
scan(request?: EntityQueryOptions): Promise<EntityQueryResult<IndexAttr>>;
scan(request?: EntityScanOptions): Promise<EntityQueryResult<IndexAttr>>;
}

@@ -188,3 +188,3 @@ export interface EntityQueryResult<Attr extends Attributes = Attributes> {

}
export interface EntityQueryOptions extends EntityReadOptions {
export interface EntityScanOptions extends EntityReadOptions {
/**

@@ -197,2 +197,10 @@ * Number of items to retrieve

}
export interface EntityQueryOptions extends EntityScanOptions {
/**
* Determines the direction of the items returned in the query based on the sort key.
*
* @default ASC - ascending order
*/
direction?: "ASC" | "DESC";
}
export interface EntityConsistencyOptions {

@@ -199,0 +207,0 @@ /**

@@ -217,2 +217,2 @@ import { z } from "zod";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFJTCxnQkFBZ0IsR0FFakIsTUFBTSw2QkFBNkIsQ0FBQztBQWdKckMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSxDQUFDLEtBQTJCLEVBQWlCLEVBQUU7UUFDNUQsT0FBTyxtQkFBbUIsRUFBRSxDQUFDLG9CQUFvQixDQUMvQyxrQkFBa0IsQ0FBeUIsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQ3RFLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEtBQUs7U0FDTixDQUFDLEVBQ0YsS0FBSyxJQUFJLEVBQUU7WUFDVCxPQUFPLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDO0FBd0JGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0REc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQU1wQixJQUFVLEVBQ1YsT0FBNkM7SUFFN0MsSUFBSSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxrQkFBa0Is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O1FBQ3RCLENBQUM7S0FDRixDQUFDO0lBRUYsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFhLENBQUMsQ0FBQztJQUVwQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7XG4gIGNyZWF0ZUV2ZW50dWFsQ2FsbCxcbiAgRW50aXR5Q2FsbCxcbiAgRXZlbnR1YWxDYWxsS2luZCxcbn0gZnJvbSBcIi4uL2ludGVybmFsL2NhbGxzLmpzXCI7XG5pbXBvcnQgeyBnZXRFbnRpdHlIb29rIH0gZnJvbSBcIi4uL2ludGVybmFsL2VudGl0eS1ob29rLmpzXCI7XG5pbXBvcnQgeyBjb21wdXRlS2V5RGVmaW5pdGlvbiwgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9lbnRpdHkuanNcIjtcbmltcG9ydCB7IGVudGl0aWVzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHtcbiAgRW50aXR5SW5kZXhTcGVjLFxuICBFbnRpdHlTcGVjLFxuICBFbnRpdHlTdHJlYW1PcHRpb25zLFxuICBpc1NvdXJjZUxvY2F0aW9uLFxuICBTb3VyY2VMb2NhdGlvbixcbn0gZnJvbSBcIi4uL2ludGVybmFsL3NlcnZpY2Utc3BlYy5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBDb21wb3NpdGVLZXksXG4gIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQsXG4gIEluZGV4Q29tcG9zaXRlS2V5UGFydCxcbiAgS2V5QXR0cmlidXRlcyxcbiAgUXVlcnlLZXksXG59IGZyb20gXCIuL2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTdHJlYW0sIEVudGl0eVN0cmVhbUhhbmRsZXIgfSBmcm9tIFwiLi9zdHJlYW0uanNcIjtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlQmluYXJ5VmFsdWUgPVxuICB8IEFycmF5QnVmZmVyXG4gIHwgQmxvYlxuICB8IEJ1ZmZlclxuICB8IERhdGFWaWV3XG4gIHwgRmlsZVxuICB8IEludDhBcnJheVxuICB8IFVpbnQ4QXJyYXlcbiAgfCBVaW50OENsYW1wZWRBcnJheVxuICB8IEludDE2QXJyYXlcbiAgfCBVaW50MTZBcnJheVxuICB8IEludDMyQXJyYXlcbiAgfCBVaW50MzJBcnJheVxuICB8IEZsb2F0MzJBcnJheVxuICB8IEZsb2F0NjRBcnJheVxuICB8IEJpZ0ludDY0QXJyYXlcbiAgfCBCaWdVaW50NjRBcnJheTtcblxudHlwZSBBdHRyaWJ1dGVTY2FsYXJWYWx1ZSA9XG4gIHwgbnVsbFxuICB8IHVuZGVmaW5lZFxuICB8IGJpZ2ludFxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IGJvb2xlYW5cbiAgfCBBdHRyaWJ1dGVCaW5hcnlWYWx1ZTtcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlVmFsdWUgPVxuICB8IEF0dHJpYnV0ZXNcbiAgfCBBdHRyaWJ1dGVTY2FsYXJWYWx1ZVxuICB8IFNldDxBdHRyaWJ1dGVTY2FsYXJWYWx1ZT5cbiAgfCBBdHRyaWJ1dGVWYWx1ZVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZXMge1xuICBba2V5OiBzdHJpbmddOiBBdHRyaWJ1dGVWYWx1ZTtcbn1cblxuLyoqXG4gKiBUdXJucyBhIHtAbGluayBBdHRyaWJ1dGVzfSB0eXBlIGludG8gYSBab2Qge0BsaW5rIHouWm9kUmF3U2hhcGV9LlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlab2RTaGFwZTxBdHRyIGV4dGVuZHMgQXR0cmlidXRlcz4gPSB7XG4gIFtrZXkgaW4ga2V5b2YgQXR0cl06IHouWm9kVHlwZTxBdHRyW2tleV0+O1xufTtcblxuLyoqXG4gKiBBbiBldmVudHVhbCBlbnRpdHkuXG4gKlxuICogQHNlZSBlbnRpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHk8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgT21pdDxcbiAgICBFbnRpdHlTcGVjPE5hbWU+LFxuICAgIFwiYXR0cmlidXRlc1wiIHwgXCJzdHJlYW1zXCIgfCBcInBhcnRpdGlvblwiIHwgXCJzb3J0XCIgfCBcImluZGljZXNcIlxuICA+IHtcbiAga2luZDogXCJFbnRpdHlcIjtcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBhdHRyaWJ1dGVzOiBab2RBdHRyaWJ1dGVzT2JqZWN0PEF0dHI+O1xuICBpbmRpY2VzOiBFbnRpdHlJbmRleFtdO1xuICBzdHJlYW1zOiBFbnRpdHlTdHJlYW08YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+W107XG4gIC8qKlxuICAgKiBHZXQgYSB2YWx1ZS5cbiAgICogSWYgeW91ciB2YWx1ZXMgdXNlIGNvbXBvc2l0ZSBrZXlzLCB0aGUgbmFtZXNwYWNlIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBrZXkgb3Ige0BsaW5rIENvbXBvc2l0ZUtleX0gb2YgdGhlIHZhbHVlIHRvIHJldHJpZXZlLlxuICAgKi9cbiAgZ2V0KFxuICAgIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eVJlYWRPcHRpb25zXG4gICk6IFByb21pc2U8QXR0ciB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBHZXQgYSB2YWx1ZSBhbmQgbWV0YWRhdGEgbGlrZSB2ZXJzaW9uLlxuICAgKiBJZiB5b3VyIHZhbHVlcyB1c2UgY29tcG9zaXRlIGtleXMsIHRoZSBuYW1lc3BhY2UgbXVzdCBiZSBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIGtleSBvciB7QGxpbmsgQ29tcG9zaXRlS2V5fSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUuXG4gICAqL1xuICBnZXRXaXRoTWV0YWRhdGEoXG4gICAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICBvcHRpb25zPzogRW50aXR5UmVhZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxFbnRpdHlXaXRoTWV0YWRhdGE8QXR0cj4gfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogU2V0cyBvciB1cGRhdGVzIGEgdmFsdWUgd2l0aGluIGFuIGVudGl0eSBhbmQgb3B0aW9uYWxseSBhIG5hbWVzcGFjZS5cbiAgICpcbiAgICogVmFsdWVzIHdpdGggbmFtZXNwYWNlcyBhcmUgY29uc2lkZXJlZCBkaXN0aW5jdCBmcm9tIHZhbHVlIHdpdGhvdXQgYSBuYW1lc3BhY2Ugb3Igd2l0aGluIGRpZmZlcmVudCBuYW1lc3BhY2VzLlxuICAgKiBWYWx1ZXMgYW5kIGtleXMgY2FuIG9ubHkgYmUgbGlzdGVkIHdpdGhpbiBhIHNpbmdsZSBuYW1lc3BhY2UuXG4gICAqL1xuICBzZXQoZW50aXR5OiBBdHRyLCBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucyk6IFByb21pc2U8eyB2ZXJzaW9uOiBudW1iZXIgfT47XG4gIC8qKlxuICAgKiBEZWxldGVzIGEgc2luZ2xlIGVudHJ5IHdpdGhpbiBhbiBlbnRpdHkgYW5kIG5hbWVzcGFjZS5cbiAgICovXG4gIGRlbGV0ZShcbiAgICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlDb25zaXN0ZW5jeU9wdGlvbnNcbiAgKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIFF1ZXJ5IHRoZSBlbnRpdHkgdXNpbmcgdGhlIHBhcnRpdGlvbiBrZXkgYW5kIG9wdGlvbmFsbHkgcGFydCBvZiB0aGUgc29ydCBrZXkuXG4gICAqL1xuICBxdWVyeShcbiAgICBrZXk6IFF1ZXJ5S2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgcmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHI+PjtcbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGl0ZW1zIGluIHRoZSB0YWJsZSwgdXAgdG8gdGhlIGxpbWl0IGdpdmVuIG9yIDFNQiAob24gQVdTKS5cbiAgICpcbiAgICogSW4gZ2VuZXJhbCwgc2NhbiBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBzaG91bGQgYmUgYXZvaWRlZCBpbiBmYXZvciBvZiBxdWVyeVxuICAgKiB1bmxlc3MgaXQgaXMgbmVjZXNzYXJ5IHRvIGdldCBhbGwgaXRlbXMgaW4gYSB0YWJsZSBhY3Jvc3MgYWxsIG9yIG1vc3QgcGFydGl0aW9ucy5cbiAgICovXG4gIHNjYW4ocmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8QXR0cj4+O1xuICBpbmRleDxcbiAgICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIGNvbnN0IEluZGV4UGFydGl0aW9uIGV4dGVuZHNcbiAgICAgIHwgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgICB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBjb25zdCBJbmRleFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IEVudGl0eUluZGV4T3B0aW9uczxBdHRyLCBJbmRleFBhcnRpdGlvbiwgSW5kZXhTb3J0PlxuICApOiBFbnRpdHlJbmRleE1hcHBlcjxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIEluZGV4UGFydGl0aW9uLCBJbmRleFNvcnQ+O1xuICBzdHJlYW08TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICk6IEVudGl0eVN0cmVhbTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzdHJlYW08TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICApOiBFbnRpdHlTdHJlYW08TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0Pjtcbn1cblxuZXhwb3J0IGNvbnN0IEVudGl0eSA9IHtcbiAgdHJhbnNhY3RXcml0ZTogKGl0ZW1zOiBFbnRpdHlUcmFuc2FjdEl0ZW1bXSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInRyYW5zYWN0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgb3BlcmF0aW9uOiBcInRyYW5zYWN0XCIsXG4gICAgICAgIGl0ZW1zLFxuICAgICAgfSksXG4gICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkudHJhbnNhY3RXcml0ZShpdGVtcyk7XG4gICAgICB9XG4gICAgKTtcbiAgfSxcbn07XG5cbi8qKlxuICogVHJpZXMgdGhlIHtAbGluayBBdHRyaWJ1dGVzfSB0eXBlIHRvIHRoZSBjb21wdXRlZCBvdXRwdXQgb2YgdGhlIG9iamVjdC5cbiAqXG4gKiBUT0RPOiBleHRlbmQgdGhpcyB0eXBlIHRvIHN1cHBvcnQgaW50ZXJzZWN0aW9uIGFuZCB1bmlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgWm9kQXR0cmlidXRlc09iamVjdDxUIGV4dGVuZHMgQXR0cmlidXRlcz4gPSB6LlpvZE9iamVjdDxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgVFxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlPcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4ge1xuICBhdHRyaWJ1dGVzOiBab2RBdHRyaWJ1dGVzT2JqZWN0PEF0dHI+IHwgRW50aXR5Wm9kU2hhcGU8QXR0cj47XG4gIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICBzb3J0PzogU29ydDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVudGl0eSB3aGljaCBob2xkcyBkYXRhLlxuICpcbiAqIEFuIGVudGl0eSdzIGtleXMgYXJlIG1hZGUgdXAgb2Ygb25lIG9yIG1vcmUgYXR0cmlidXRlcyBpbiB0aGUgZW50aXR5LlxuICogV2hlbiBhbiBlbnRpdHkncyBrZXkgaXMgbWFkZSB1cCBvZiBtb3JlIHRoYW4gb25lIGF0dHJpYnV0ZSwgaXQgaXMgY29uc2lkZXJlZCB0byBiZSBhIGNvbXBvc2l0ZSBrZXkuXG4gKlxuICogRWFjaCBhdHRyaWJ1dGUgb2YgdGhlIGNvbXBvc2l0ZSBrZXkgaXMgY29uc2lkZXJlZCB0byBiZSBlaXRoZXIgYSBwYXJ0aXRpb24ga2V5IG9yIGEgc29ydCBrZXksIHdoaWNoIHdlIGNvbnNpZGVyIGEgY29tcG9zaXRlIGtleSBwYXJ0LlxuICogRWFjaCBlbnRpdHkgaXMgcmVxdWlyZWQgdG8gYXQgbGVhc3QgaGF2ZSBvbmUgcGFydGl0aW9uIGtleSBhdHRyaWJ1dGUsIGJ1dCBtYXkgaGF2ZSBtYXkgcGFydGl0aW9uIGFuZCBvciBzb3J0IGtleSBhdHRyaWJ1dGVzLlxuICogVG8gcmV0cmlldmUgYSBzaW5nbGUgdmFsdWUgd2l0aCBhbiBlbnRpdHksIHRoZSBlbnRpcmUgY29tcG9zaXRlIGtleSBtdXN0IGJlIHVzZWQsIHVudGlsIHRoZSBxdWVyeSBvcGVyYXRpb24gaXMgdXNlZCB0byByZXR1cm4gbXVsdGlwbGUgZW50aXRpZXMgKHdpdGhpbiBhIHBhcnRpdGlvbikuXG4gKlxuICogQSBwYXJ0aXRpb24ga2V5IHNlcGFyYXRlcyBkYXRhIHdpdGhpbiBhbiBlbnRpdHkuIFdoZW4gdXNpbmcgdGhlIFF1ZXJ5IG9wZXJhdGlvbiwgZGF0YSBjYW4gb25seSBiZSBxdWVyaWVkIHdpdGhpblxuICogYSBzaW5nbGUgcGFydGl0aW9uLlxuICpcbiAqIEEgc29ydCBrZXkgZGV0ZXJtaW5lcyB0aGUgb3JkZXIgb2YgdGhlIHZhbHVlcyB3aGVuIHJ1bm5pbmcgYSBxdWVyeS4gSXQgYWxzbyBhbGxvd3MgZm9yIHJhbmdlcyBvZiB2YWx1ZXMgdG8gYmUgcXVlcmllZFxuICogdXNpbmcgb25seSBzb21lIG9mIHRoZSBzb3J0IGtleSBhdHRyaWJ1dGVzIChpbiBvcmRlcikuXG4gKlxuICogYGBgdHNcbiAqIC8vIGxldHMgdGFrZSBhbiBleGFtcGxlIHdoZXJlIHdlIGhhdmUgcG9zdHMgZm9yIGEgdXNlciwgc2VwYXJhdGVkIGJ5IGZvcnVtLlxuICogY29uc3QgdXNlckNvbW1lbnRzID0gZW50aXR5KFwidXNlckNvbW1lbnRzXCIsIHtcbiAqICAgIGF0dHJpYnV0ZXM6IHtcbiAqICAgICAgIGZvcnVtOiB6LnN0cmluZygpLFxuICogICAgICAgdXNlcklkOiB6LnN0cmluZygpLFxuICogICAgICAgcG9zdElkOiB6LnN0cmluZygpLFxuICogICAgICAgY29tbWVudElkOiB6LnN0cmluZygpLFxuICogICAgICAgbWVzc2FnZTogei5zdHJpbmcoKVxuICogICAgfSxcbiAqICAgIHBhcnRpdGlvbjogW1wiZm9ydW1cIiwgXCJ1c2VySWRcIl0sXG4gKiAgICBzb3J0OiBbXCJwb3N0SWRcIiwgXCJpZFwiXSxcbiAqIH0pO1xuICpcbiAqIC8vIGFkZCBhIG5ldyBwb3N0IGNvbW1lbnRcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5zZXQoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIixcbiAqICAgIHVzZXJJZDogXCIxXCIsXG4gKiAgICBwb3N0SWQ6IFwiMTAwXCIsXG4gKiAgICBjb21tZW50SWQ6IFwiYWJjXCIsXG4gKiAgICBtZXNzYWdlOiBcIkkgbG92ZSBnYW1lc1wiXG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYWxsIGNvbW1lbnRzIGZvciBhIHVzZXIgaW4gYSBmb3J1bVxuICogYXdhaXQgdXNlckNvbW1lbnRzLnF1ZXJ5KHtcbiAqICAgIGZvcnVtOiBcImdhbWVzXCIsIC8vIHJlcXVpcmVkIGluIHRoZSBxdWVyeVxuICogICAgdXNlcklkOiBcIjFcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYWxsIGNvbW1lbnRzIGZvciBhIHVzZXIgaW4gYSBmb3J1bSBhbmQgYSBwb3N0XG4gKiBhd2FpdCB1c2VyQ29tbWVudHMucXVlcnkoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiAgICB1c2VySWQ6IFwiMVwiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqICAgIHBvc3Q6IFwiMTAwXCIsIC8vIG9wdGlvbmFsIGluIHRoZSBxdWVyeVxuICogfSk7XG4gKlxuICogLy8gZ2V0IGEgc2luZ2xlIHBvc3RcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5nZXQoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIixcbiAqICAgIHVzZXJJZDogXCIxXCIsXG4gKiAgICBwb3N0SWQ6IFwiMTAwXCIsXG4gKiAgICBjb21tZW50SWQ6IFwiYWJjXCJcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHk8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBjb25zdCBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBjb25zdCBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPihcbiAgbmFtZTogTmFtZSxcbiAgb3B0aW9uczogRW50aXR5T3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4pOiBFbnRpdHk8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIGlmIChlbnRpdGllcygpLmhhcyhuYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZW50aXR5IHdpdGggbmFtZSAnJHtuYW1lfScgYWxyZWFkeSBleGlzdHNgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGljZXM6IEVudGl0eUluZGV4W10gPSBbXTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYWludGFpbiBhIGxpbWl0ZWQgbnVtYmVyIG9mIHN0cmVhbXMgb24gdGhlIGVudGl0eS5cbiAgICovXG4gIGNvbnN0IHN0cmVhbXM6IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXSA9IFtdO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPVxuICAgIG9wdGlvbnMuYXR0cmlidXRlcyBpbnN0YW5jZW9mIHouWm9kT2JqZWN0XG4gICAgICA/IG9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgOiAoei5vYmplY3Qob3B0aW9ucy5hdHRyaWJ1dGVzKSBhcyB1bmtub3duIGFzIFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj4pO1xuXG4gIGNvbnN0IGVudGl0eTogRW50aXR5PE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4gPSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIF9fZW50aXR5QnJhbmQ6IHVuZGVmaW5lZCxcbiAgICBraW5kOiBcIkVudGl0eVwiLFxuICAgIG5hbWUsXG4gICAga2V5OiBjb21wdXRlS2V5RGVmaW5pdGlvbihhdHRyaWJ1dGVzLCBvcHRpb25zLnBhcnRpdGlvbiwgb3B0aW9ucy5zb3J0KSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGluZGljZXMsXG4gICAgc3RyZWFtcyxcbiAgICBnZXQ6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImdldFwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgb3BlcmF0aW9uOiBcImdldFwiLFxuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuZ2V0KG5hbWUsIC4uLmFyZ3MpIGFzIFByb21pc2U8QXR0cj47XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBnZXRXaXRoTWV0YWRhdGE6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImdldFdpdGhNZXRhZGF0YVwiPj4oXG4gICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJnZXRXaXRoTWV0YWRhdGFcIixcbiAgICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5nZXRXaXRoTWV0YWRhdGEobmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBzZXQ6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInNldFwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwic2V0XCIsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuc2V0KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgZGVsZXRlOiAoLi4uYXJncykgPT4ge1xuICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJkZWxldGVcIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLmRlbGV0ZShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHF1ZXJ5OiAoLi4uYXJncykgPT4ge1xuICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJxdWVyeVwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwicXVlcnlcIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5xdWVyeShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHNjYW46ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInNjYW5cIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgb3BlcmF0aW9uOiBcInNjYW5cIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5zY2FuKG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgaW5kZXg6ICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCBbaW5kZXhOYW1lLCBpbmRleE9wdGlvbnNdID0gYXJncztcblxuICAgICAgaWYgKGluZGljZXMuc29tZSgoaSkgPT4gaS5uYW1lID09PSBpbmRleE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggb2YgbmFtZSAke2luZGV4TmFtZX0gYWxyZWFkeSBleGlzdHMgb24gJHtuYW1lfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRleDogRW50aXR5SW5kZXggPSB7XG4gICAgICAgIGtpbmQ6IFwiRW50aXR5SW5kZXhcIixcbiAgICAgICAga2V5OiBjb21wdXRlS2V5RGVmaW5pdGlvbihcbiAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgIChcInBhcnRpdGlvblwiIGluIGluZGV4T3B0aW9ucyA/IGluZGV4T3B0aW9ucy5wYXJ0aXRpb24gOiB1bmRlZmluZWQpID8/XG4gICAgICAgICAgICBvcHRpb25zLnBhcnRpdGlvbixcbiAgICAgICAgICBpbmRleE9wdGlvbnMuc29ydCA/PyBvcHRpb25zLnNvcnRcbiAgICAgICAgKSxcbiAgICAgICAgbmFtZTogaW5kZXhOYW1lLFxuICAgICAgICBwYXJ0aXRpb246XG4gICAgICAgICAgXCJwYXJ0aXRpb25cIiBpbiBpbmRleE9wdGlvbnMgPyBpbmRleE9wdGlvbnMucGFydGl0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3J0OiBpbmRleE9wdGlvbnMuc29ydCxcbiAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgcXVlcnk6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwicXVlcnlJbmRleFwiPj4oXG4gICAgICAgICAgICAgIEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgaW5kZXhOYW1lLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogXCJxdWVyeUluZGV4XCIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKCkgPT4gZ2V0RW50aXR5SG9vaygpLnF1ZXJ5SW5kZXgobmFtZSwgaW5kZXhOYW1lLCAuLi5hcmdzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHNjYW46ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2NhbkluZGV4XCI+PihcbiAgICAgICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBcInNjYW5JbmRleFwiLFxuICAgICAgICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICgpID0+IGdldEVudGl0eUhvb2soKS5zY2FuSW5kZXgobmFtZSwgaW5kZXhOYW1lLCAuLi5hcmdzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBpbmRpY2VzLnB1c2goaW5kZXgpO1xuXG4gICAgICByZXR1cm4gaW5kZXggYXMgYW55O1xuICAgIH0sXG4gICAgc3RyZWFtOiAoXG4gICAgICAuLi5hcmdzOlxuICAgICAgICB8IFtuYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0Pl1cbiAgICAgICAgfCBbXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgICAgICBdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICAgICAgXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgICAgIF1cbiAgICApID0+IHtcbiAgICAgIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgc3RyZWFtTmFtZSwgb3B0aW9ucywgaGFuZGxlcl0gPVxuICAgICAgICBhcmdzLmxlbmd0aCA9PT0gMlxuICAgICAgICAgID8gWywgYXJnc1swXSwgLCBhcmdzWzFdXVxuICAgICAgICAgIDogYXJncy5sZW5ndGggPT09IDRcbiAgICAgICAgICA/IGFyZ3NcbiAgICAgICAgICA6IGlzU291cmNlTG9jYXRpb24oYXJnc1swXSkgJiYgdHlwZW9mIGFyZ3NbMV0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IFthcmdzWzBdLCBhcmdzWzFdIGFzIHN0cmluZywgLCBhcmdzWzJdXVxuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAsXG4gICAgICAgICAgICAgIGFyZ3NbMF0gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICBhcmdzWzFdIGFzIEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgICAgYXJnc1syXSxcbiAgICAgICAgICAgIF07XG5cbiAgICAgIGlmIChzdHJlYW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSB0d28gc3RyZWFtcyBhcmUgYWxsb3dlZCBwZXIgZW50aXR5LlwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50aXR5U3RyZWFtOiBFbnRpdHlTdHJlYW08YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+ID0ge1xuICAgICAgICBraW5kOiBcIkVudGl0eVN0cmVhbVwiLFxuICAgICAgICBoYW5kbGVyLFxuICAgICAgICBuYW1lOiBzdHJlYW1OYW1lLFxuICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBzb3VyY2VMb2NhdGlvbixcbiAgICAgIH07XG5cbiAgICAgIHN0cmVhbXMucHVzaChlbnRpdHlTdHJlYW0pO1xuXG4gICAgICByZXR1cm4gZW50aXR5U3RyZWFtO1xuICAgIH0sXG4gIH07XG5cbiAgZW50aXRpZXMoKS5zZXQobmFtZSwgZW50aXR5IGFzIGFueSk7XG5cbiAgcmV0dXJuIGVudGl0eTtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5SW5kZXhPcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+ID1cbiAgfCB7XG4gICAgICBwYXJ0aXRpb246IFBhcnRpdGlvbjtcbiAgICAgIHNvcnQ/OiBTb3J0O1xuICAgIH1cbiAgfCB7XG4gICAgICBzb3J0OiBTb3J0O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEVudGl0eUluZGV4TWFwcGVyPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgRW50aXR5UGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIEluZGV4UGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+ID0gSW5kZXhQYXJ0aXRpb24gZXh0ZW5kcyB1bmRlZmluZWRcbiAgPyBFbnRpdHlJbmRleDxOYW1lLCBBdHRyLCBFbnRpdHlQYXJ0aXRpb24sIFNvcnQ+XG4gIDogRW50aXR5SW5kZXg8TmFtZSwgQXR0ciwgRXhjbHVkZTxJbmRleFBhcnRpdGlvbiwgdW5kZWZpbmVkPiwgU29ydD47XG5cbi8qKlxuICogQW4gaW5kZXgncyBrZXkgYXR0cmlidXRlcyBhcmUgbmV2ZXIgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlJbmRleEF0dHJpYnV0ZXM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gPSB7XG4gIFtrIGluIGtleW9mIEF0dHJdOiBrIGV4dGVuZHMgS2V5QXR0cmlidXRlczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgPyBFeGNsdWRlPEF0dHJba10sIHVuZGVmaW5lZD5cbiAgICA6IEF0dHJba107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4PFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBFbnRpdHlBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPiA9IEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPixcbiAgU29ydCBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBJbmRleENvbXBvc2l0ZUtleVBhcnQ8RW50aXR5QXR0cj5cbiAgICB8IHVuZGVmaW5lZCxcbiAgSW5kZXhBdHRyIGV4dGVuZHMgRW50aXR5SW5kZXhBdHRyaWJ1dGVzPFxuICAgIEVudGl0eUF0dHIsXG4gICAgUGFydGl0aW9uLFxuICAgIFNvcnRcbiAgPiA9IEVudGl0eUluZGV4QXR0cmlidXRlczxFbnRpdHlBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4+IGV4dGVuZHMgRW50aXR5SW5kZXhTcGVjPE5hbWU+IHtcbiAga2luZDogXCJFbnRpdHlJbmRleFwiO1xuICBxdWVyeShcbiAgICBxdWVyeUtleTogUXVlcnlLZXk8SW5kZXhBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlRdWVyeU9wdGlvbnNcbiAgKTogUHJvbWlzZTxFbnRpdHlRdWVyeVJlc3VsdDxJbmRleEF0dHI+PjtcbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGl0ZW1zIGluIHRoZSB0YWJsZSwgdXAgdG8gdGhlIGxpbWl0IGdpdmVuIG9yIDFNQiAob24gQVdTKS5cbiAgICpcbiAgICogSW4gZ2VuZXJhbCwgc2NhbiBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBzaG91bGQgYmUgYXZvaWRlZCBpbiBmYXZvciBvZiBxdWVyeVxuICAgKiB1bmxlc3MgaXQgaXMgbmVjZXNzYXJ5IHRvIGdldCBhbGwgaXRlbXMgaW4gYSB0YWJsZSBhY3Jvc3MgYWxsIG9yIG1vc3QgcGFydGl0aW9ucy5cbiAgICovXG4gIHNjYW4ocmVxdWVzdD86IEVudGl0eVF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8SW5kZXhBdHRyPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5UXVlcnlSZXN1bHQ8QXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzPiB7XG4gIGVudHJpZXM/OiBFbnRpdHlXaXRoTWV0YWRhdGE8QXR0cj5bXTtcbiAgLyoqXG4gICAqIFJldHVybmVkIHdoZW4gdGhlcmUgYXJlIG1vcmUgdmFsdWVzIHRoYW4gdGhlIGxpbWl0IGFsbG93ZWQgdG8gcmV0dXJuLlxuICAgKi9cbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlYWRPcHRpb25zIHtcbiAgLyoqXG4gICAqIHdoZW4gY29uc2lzdGVudCByZWFkIGlzIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBxdWVyeSBvciBzY2FuIG1heSBub3QgaW5jbHVkZSB0aGUgbGF0ZXN0IGNoYW5nZXMgdG8gdGhlIGVudGl0eSB2YWx1ZXMuXG4gICAqIFNldHRpbmcgY29uc2lzdGVudCByZWFkIHRvIHRydWUgd2lsbCBpbmNyZWFzZSB0aGUgY29zdCBvZiB0aGUgcmVhZCBhbmQgbWF5IHRha2UgbG9uZ2VyIHRvIHJldHVybi5cbiAgICovXG4gIGNvbnNpc3RlbnRSZWFkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlRdWVyeU9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0cmlldmVcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbnNpc3RlbmN5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhwZWN0ZWQgdmVyc2lvbiBvZiB0aGUgZW50aXR5IGluIHRoZSBlbnRpdHkuXG4gICAqXG4gICAqIFVzZWQgdG8gc3VwcG9ydCBjb25zaXN0ZW50IHdyaXRlcyBhbmQgZGVsZXRlcy5cbiAgICogQSB2YWx1ZSBvZiAwIHdpbGwgb25seSBwYXNzIGlmIHRoZSBpdGVtIGlzIG5ldy5cbiAgICovXG4gIGV4cGVjdGVkVmVyc2lvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTZXRPcHRpb25zIGV4dGVuZHMgRW50aXR5Q29uc2lzdGVuY3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSB0aGUgdmVyc2lvbiBvbiBjaGFuZ2UuXG4gICAqIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhlIHZhbHVlIGhhcyBiZWVuIHNldCwgaXQgd2lsbCBiZSBzZXQgdG8gMS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAtIHZlcnNpb24gd2lsbCBiZSBpbmNyZW1lbnRlZC5cbiAgICovXG4gIGluY3JlbWVudFZlcnNpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVdpdGhNZXRhZGF0YTxBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXM+IHtcbiAgdmFsdWU6IEF0dHI7XG4gIHZlcnNpb246IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEVudGl0eVRyYW5zYWN0SXRlbUJhc2U8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZFxuPiB7XG4gIGVudGl0eTogRW50aXR5PGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiB8IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5VHJhbnNhY3RJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IGFueSxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiA9XG4gIHwgRW50aXR5VHJhbnNhY3RTZXRPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVRyYW5zYWN0RGVsZXRlT3BlcmF0aW9uPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlUcmFuc2FjdENvbmRpdGlvbmFsT3BlcmF0aW9uPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RTZXRPcGVyYXRpb248XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcInNldFwiO1xuICB2YWx1ZTogQXR0cjtcbiAgb3B0aW9ucz86IEVudGl0eVNldE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3REZWxldGVPcGVyYXRpb248XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiO1xuICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucztcbn1cblxuLyoqXG4gKiBVc2VkIGluIHRyYW5zYWN0aW9ucywgY2FuY2VscyB0aGUgdHJhbnNhY3Rpb24gaWYgdGhlIGtleSdzIHZlcnNpb24gZG9lcyBub3QgbWF0Y2guXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RDb25kaXRpb25hbE9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwiY29uZGl0aW9uXCI7XG4gIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHZlcnNpb24/OiBudW1iZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFLTCxnQkFBZ0IsR0FFakIsTUFBTSw2QkFBNkIsQ0FBQztBQW1KckMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSxDQUFDLEtBQTJCLEVBQWlCLEVBQUU7UUFDNUQsT0FBTyxtQkFBbUIsRUFBRSxDQUFDLG9CQUFvQixDQUMvQyxrQkFBa0IsQ0FBeUIsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQ3RFLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEtBQUs7U0FDTixDQUFDLEVBQ0YsS0FBSyxJQUFJLEVBQUU7WUFDVCxPQUFPLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDO0FBd0JGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0REc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQU1wQixJQUFVLEVBQ1YsT0FBNkM7SUFFN0MsSUFBSSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxrQkFBa0Is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O1FBQ3RCLENBQUM7S0FDRixDQUFDO0lBRUYsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFhLENBQUMsQ0FBQztJQUVwQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7XG4gIGNyZWF0ZUV2ZW50dWFsQ2FsbCxcbiAgRW50aXR5Q2FsbCxcbiAgRXZlbnR1YWxDYWxsS2luZCxcbn0gZnJvbSBcIi4uL2ludGVybmFsL2NhbGxzLmpzXCI7XG5pbXBvcnQgeyBnZXRFbnRpdHlIb29rIH0gZnJvbSBcIi4uL2ludGVybmFsL2VudGl0eS1ob29rLmpzXCI7XG5pbXBvcnQgeyBjb21wdXRlS2V5RGVmaW5pdGlvbiwgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9lbnRpdHkuanNcIjtcbmltcG9ydCB7IGVudGl0aWVzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHtcbiAgRW50aXR5SW5kZXhTcGVjLFxuICBFbnRpdHlTcGVjLFxuICBFbnRpdHlTdHJlYW1PcGVyYXRpb24sXG4gIEVudGl0eVN0cmVhbU9wdGlvbnMsXG4gIGlzU291cmNlTG9jYXRpb24sXG4gIFNvdXJjZUxvY2F0aW9uLFxufSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvc2l0ZUtleSxcbiAgRW50aXR5Q29tcG9zaXRlS2V5UGFydCxcbiAgSW5kZXhDb21wb3NpdGVLZXlQYXJ0LFxuICBLZXlBdHRyaWJ1dGVzLFxuICBRdWVyeUtleSxcbn0gZnJvbSBcIi4va2V5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0cmVhbSwgRW50aXR5U3RyZWFtSGFuZGxlciB9IGZyb20gXCIuL3N0cmVhbS5qc1wiO1xuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVCaW5hcnlWYWx1ZSA9XG4gIHwgQXJyYXlCdWZmZXJcbiAgfCBCbG9iXG4gIHwgQnVmZmVyXG4gIHwgRGF0YVZpZXdcbiAgfCBGaWxlXG4gIHwgSW50OEFycmF5XG4gIHwgVWludDhBcnJheVxuICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gIHwgSW50MTZBcnJheVxuICB8IFVpbnQxNkFycmF5XG4gIHwgSW50MzJBcnJheVxuICB8IFVpbnQzMkFycmF5XG4gIHwgRmxvYXQzMkFycmF5XG4gIHwgRmxvYXQ2NEFycmF5XG4gIHwgQmlnSW50NjRBcnJheVxuICB8IEJpZ1VpbnQ2NEFycmF5O1xuXG50eXBlIEF0dHJpYnV0ZVNjYWxhclZhbHVlID1cbiAgfCBudWxsXG4gIHwgdW5kZWZpbmVkXG4gIHwgYmlnaW50XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgYm9vbGVhblxuICB8IEF0dHJpYnV0ZUJpbmFyeVZhbHVlO1xuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVWYWx1ZSA9XG4gIHwgQXR0cmlidXRlc1xuICB8IEF0dHJpYnV0ZVNjYWxhclZhbHVlXG4gIHwgU2V0PEF0dHJpYnV0ZVNjYWxhclZhbHVlPlxuICB8IEF0dHJpYnV0ZVZhbHVlW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlcyB7XG4gIFtrZXk6IHN0cmluZ106IEF0dHJpYnV0ZVZhbHVlO1xufVxuXG4vKipcbiAqIFR1cm5zIGEge0BsaW5rIEF0dHJpYnV0ZXN9IHR5cGUgaW50byBhIFpvZCB7QGxpbmsgei5ab2RSYXdTaGFwZX0uXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eVpvZFNoYXBlPEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzPiA9IHtcbiAgW2tleSBpbiBrZXlvZiBBdHRyXTogei5ab2RUeXBlPEF0dHJba2V5XT47XG59O1xuXG4vKipcbiAqIEFuIGV2ZW50dWFsIGVudGl0eS5cbiAqXG4gKiBAc2VlIGVudGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBPbWl0PFxuICAgIEVudGl0eVNwZWM8TmFtZT4sXG4gICAgXCJhdHRyaWJ1dGVzXCIgfCBcInN0cmVhbXNcIiB8IFwicGFydGl0aW9uXCIgfCBcInNvcnRcIiB8IFwiaW5kaWNlc1wiXG4gID4ge1xuICBraW5kOiBcIkVudGl0eVwiO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIGF0dHJpYnV0ZXM6IFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj47XG4gIGluZGljZXM6IEVudGl0eUluZGV4W107XG4gIHN0cmVhbXM6IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXTtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlLlxuICAgKiBJZiB5b3VyIHZhbHVlcyB1c2UgY29tcG9zaXRlIGtleXMsIHRoZSBuYW1lc3BhY2UgbXVzdCBiZSBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIGtleSBvciB7QGxpbmsgQ29tcG9zaXRlS2V5fSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUuXG4gICAqL1xuICBnZXQoXG4gICAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICBvcHRpb25zPzogRW50aXR5UmVhZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxBdHRyIHwgdW5kZWZpbmVkPjtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlIGFuZCBtZXRhZGF0YSBsaWtlIHZlcnNpb24uXG4gICAqIElmIHlvdXIgdmFsdWVzIHVzZSBjb21wb3NpdGUga2V5cywgdGhlIG5hbWVzcGFjZSBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0ga2V5IG9yIHtAbGluayBDb21wb3NpdGVLZXl9IG9mIHRoZSB2YWx1ZSB0byByZXRyaWV2ZS5cbiAgICovXG4gIGdldFdpdGhNZXRhZGF0YShcbiAgICBrZXk6IENvbXBvc2l0ZUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIG9wdGlvbnM/OiBFbnRpdHlSZWFkT3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVdpdGhNZXRhZGF0YTxBdHRyPiB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBTZXRzIG9yIHVwZGF0ZXMgYSB2YWx1ZSB3aXRoaW4gYW4gZW50aXR5IGFuZCBvcHRpb25hbGx5IGEgbmFtZXNwYWNlLlxuICAgKlxuICAgKiBWYWx1ZXMgd2l0aCBuYW1lc3BhY2VzIGFyZSBjb25zaWRlcmVkIGRpc3RpbmN0IGZyb20gdmFsdWUgd2l0aG91dCBhIG5hbWVzcGFjZSBvciB3aXRoaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuXG4gICAqIFZhbHVlcyBhbmQga2V5cyBjYW4gb25seSBiZSBsaXN0ZWQgd2l0aGluIGEgc2luZ2xlIG5hbWVzcGFjZS5cbiAgICovXG4gIHNldChlbnRpdHk6IEF0dHIsIG9wdGlvbnM/OiBFbnRpdHlTZXRPcHRpb25zKTogUHJvbWlzZTx7IHZlcnNpb246IG51bWJlciB9PjtcbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBzaW5nbGUgZW50cnkgd2l0aGluIGFuIGVudGl0eSBhbmQgbmFtZXNwYWNlLlxuICAgKi9cbiAgZGVsZXRlKFxuICAgIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eUNvbnNpc3RlbmN5T3B0aW9uc1xuICApOiBQcm9taXNlPHZvaWQ+O1xuICAvKipcbiAgICogUXVlcnkgdGhlIGVudGl0eSB1c2luZyB0aGUgcGFydGl0aW9uIGtleSBhbmQgb3B0aW9uYWxseSBwYXJ0IG9mIHRoZSBzb3J0IGtleS5cbiAgICovXG4gIHF1ZXJ5KFxuICAgIGtleTogUXVlcnlLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICByZXF1ZXN0PzogRW50aXR5UXVlcnlPcHRpb25zXG4gICk6IFByb21pc2U8RW50aXR5UXVlcnlSZXN1bHQ8QXR0cj4+O1xuICAvKipcbiAgICogUmV0dXJucyBhbGwgaXRlbXMgaW4gdGhlIHRhYmxlLCB1cCB0byB0aGUgbGltaXQgZ2l2ZW4gb3IgMU1CIChvbiBBV1MpLlxuICAgKlxuICAgKiBJbiBnZW5lcmFsLCBzY2FuIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIHNob3VsZCBiZSBhdm9pZGVkIGluIGZhdm9yIG9mIHF1ZXJ5XG4gICAqIHVubGVzcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCBpdGVtcyBpbiBhIHRhYmxlIGFjcm9zcyBhbGwgb3IgbW9zdCBwYXJ0aXRpb25zLlxuICAgKi9cbiAgc2NhbihyZXF1ZXN0PzogRW50aXR5U2Nhbk9wdGlvbnMpOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHI+PjtcbiAgaW5kZXg8XG4gICAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBjb25zdCBJbmRleFBhcnRpdGlvbiBleHRlbmRzXG4gICAgICB8IEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgY29uc3QgSW5kZXhTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gID4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBFbnRpdHlJbmRleE9wdGlvbnM8QXR0ciwgSW5kZXhQYXJ0aXRpb24sIEluZGV4U29ydD5cbiAgKTogRW50aXR5SW5kZXhNYXBwZXI8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBJbmRleFBhcnRpdGlvbiwgSW5kZXhTb3J0PjtcbiAgc3RyZWFtPFxuICAgIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgT3BlcmF0aW9ucyBleHRlbmRzIEVudGl0eVN0cmVhbU9wZXJhdGlvbltdID0gRW50aXR5U3RyZWFtT3BlcmF0aW9uW11cbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0LCBPcGVyYXRpb25zPixcbiAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydCwgT3BlcmF0aW9ucz5cbiAgKTogRW50aXR5U3RyZWFtPE5hbWUsIEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHN0cmVhbTxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICk6IEVudGl0eVN0cmVhbTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xufVxuXG5leHBvcnQgY29uc3QgRW50aXR5ID0ge1xuICB0cmFuc2FjdFdyaXRlOiAoaXRlbXM6IEVudGl0eVRyYW5zYWN0SXRlbVtdKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIGdldEV2ZW50dWFsQ2FsbEhvb2soKS5yZWdpc3RlckV2ZW50dWFsQ2FsbChcbiAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwidHJhbnNhY3RcIj4+KEV2ZW50dWFsQ2FsbEtpbmQuRW50aXR5Q2FsbCwge1xuICAgICAgICBvcGVyYXRpb246IFwidHJhbnNhY3RcIixcbiAgICAgICAgaXRlbXMsXG4gICAgICB9KSxcbiAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS50cmFuc2FjdFdyaXRlKGl0ZW1zKTtcbiAgICAgIH1cbiAgICApO1xuICB9LFxufTtcblxuLyoqXG4gKiBUcmllcyB0aGUge0BsaW5rIEF0dHJpYnV0ZXN9IHR5cGUgdG8gdGhlIGNvbXB1dGVkIG91dHB1dCBvZiB0aGUgb2JqZWN0LlxuICpcbiAqIFRPRE86IGV4dGVuZCB0aGlzIHR5cGUgdG8gc3VwcG9ydCBpbnRlcnNlY3Rpb24gYW5kIHVuaW9uLlxuICovXG5leHBvcnQgdHlwZSBab2RBdHRyaWJ1dGVzT2JqZWN0PFQgZXh0ZW5kcyBBdHRyaWJ1dGVzPiA9IHouWm9kT2JqZWN0PFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBUXG4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eU9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPiB7XG4gIGF0dHJpYnV0ZXM6IFpvZEF0dHJpYnV0ZXNPYmplY3Q8QXR0cj4gfCBFbnRpdHlab2RTaGFwZTxBdHRyPjtcbiAgcGFydGl0aW9uOiBQYXJ0aXRpb247XG4gIHNvcnQ/OiBTb3J0O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZW50aXR5IHdoaWNoIGhvbGRzIGRhdGEuXG4gKlxuICogQW4gZW50aXR5J3Mga2V5cyBhcmUgbWFkZSB1cCBvZiBvbmUgb3IgbW9yZSBhdHRyaWJ1dGVzIGluIHRoZSBlbnRpdHkuXG4gKiBXaGVuIGFuIGVudGl0eSdzIGtleSBpcyBtYWRlIHVwIG9mIG1vcmUgdGhhbiBvbmUgYXR0cmlidXRlLCBpdCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgY29tcG9zaXRlIGtleS5cbiAqXG4gKiBFYWNoIGF0dHJpYnV0ZSBvZiB0aGUgY29tcG9zaXRlIGtleSBpcyBjb25zaWRlcmVkIHRvIGJlIGVpdGhlciBhIHBhcnRpdGlvbiBrZXkgb3IgYSBzb3J0IGtleSwgd2hpY2ggd2UgY29uc2lkZXIgYSBjb21wb3NpdGUga2V5IHBhcnQuXG4gKiBFYWNoIGVudGl0eSBpcyByZXF1aXJlZCB0byBhdCBsZWFzdCBoYXZlIG9uZSBwYXJ0aXRpb24ga2V5IGF0dHJpYnV0ZSwgYnV0IG1heSBoYXZlIG1heSBwYXJ0aXRpb24gYW5kIG9yIHNvcnQga2V5IGF0dHJpYnV0ZXMuXG4gKiBUbyByZXRyaWV2ZSBhIHNpbmdsZSB2YWx1ZSB3aXRoIGFuIGVudGl0eSwgdGhlIGVudGlyZSBjb21wb3NpdGUga2V5IG11c3QgYmUgdXNlZCwgdW50aWwgdGhlIHF1ZXJ5IG9wZXJhdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtdWx0aXBsZSBlbnRpdGllcyAod2l0aGluIGEgcGFydGl0aW9uKS5cbiAqXG4gKiBBIHBhcnRpdGlvbiBrZXkgc2VwYXJhdGVzIGRhdGEgd2l0aGluIGFuIGVudGl0eS4gV2hlbiB1c2luZyB0aGUgUXVlcnkgb3BlcmF0aW9uLCBkYXRhIGNhbiBvbmx5IGJlIHF1ZXJpZWQgd2l0aGluXG4gKiBhIHNpbmdsZSBwYXJ0aXRpb24uXG4gKlxuICogQSBzb3J0IGtleSBkZXRlcm1pbmVzIHRoZSBvcmRlciBvZiB0aGUgdmFsdWVzIHdoZW4gcnVubmluZyBhIHF1ZXJ5LiBJdCBhbHNvIGFsbG93cyBmb3IgcmFuZ2VzIG9mIHZhbHVlcyB0byBiZSBxdWVyaWVkXG4gKiB1c2luZyBvbmx5IHNvbWUgb2YgdGhlIHNvcnQga2V5IGF0dHJpYnV0ZXMgKGluIG9yZGVyKS5cbiAqXG4gKiBgYGB0c1xuICogLy8gbGV0cyB0YWtlIGFuIGV4YW1wbGUgd2hlcmUgd2UgaGF2ZSBwb3N0cyBmb3IgYSB1c2VyLCBzZXBhcmF0ZWQgYnkgZm9ydW0uXG4gKiBjb25zdCB1c2VyQ29tbWVudHMgPSBlbnRpdHkoXCJ1c2VyQ29tbWVudHNcIiwge1xuICogICAgYXR0cmlidXRlczoge1xuICogICAgICAgZm9ydW06IHouc3RyaW5nKCksXG4gKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBwb3N0SWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBjb21tZW50SWQ6IHouc3RyaW5nKCksXG4gKiAgICAgICBtZXNzYWdlOiB6LnN0cmluZygpXG4gKiAgICB9LFxuICogICAgcGFydGl0aW9uOiBbXCJmb3J1bVwiLCBcInVzZXJJZFwiXSxcbiAqICAgIHNvcnQ6IFtcInBvc3RJZFwiLCBcImlkXCJdLFxuICogfSk7XG4gKlxuICogLy8gYWRkIGEgbmV3IHBvc3QgY29tbWVudFxuICogYXdhaXQgdXNlckNvbW1lbnRzLnNldCh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLFxuICogICAgdXNlcklkOiBcIjFcIixcbiAqICAgIHBvc3RJZDogXCIxMDBcIixcbiAqICAgIGNvbW1lbnRJZDogXCJhYmNcIixcbiAqICAgIG1lc3NhZ2U6IFwiSSBsb3ZlIGdhbWVzXCJcbiAqIH0pO1xuICpcbiAqIC8vIGdldCBhbGwgY29tbWVudHMgZm9yIGEgdXNlciBpbiBhIGZvcnVtXG4gKiBhd2FpdCB1c2VyQ29tbWVudHMucXVlcnkoe1xuICogICAgZm9ydW06IFwiZ2FtZXNcIiwgLy8gcmVxdWlyZWQgaW4gdGhlIHF1ZXJ5XG4gKiAgICB1c2VySWQ6IFwiMVwiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqIH0pO1xuICpcbiAqIC8vIGdldCBhbGwgY29tbWVudHMgZm9yIGEgdXNlciBpbiBhIGZvcnVtIGFuZCBhIHBvc3RcbiAqIGF3YWl0IHVzZXJDb21tZW50cy5xdWVyeSh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLCAvLyByZXF1aXJlZCBpbiB0aGUgcXVlcnlcbiAqICAgIHVzZXJJZDogXCIxXCIsIC8vIHJlcXVpcmVkIGluIHRoZSBxdWVyeVxuICogICAgcG9zdDogXCIxMDBcIiwgLy8gb3B0aW9uYWwgaW4gdGhlIHF1ZXJ5XG4gKiB9KTtcbiAqXG4gKiAvLyBnZXQgYSBzaW5nbGUgcG9zdFxuICogYXdhaXQgdXNlckNvbW1lbnRzLmdldCh7XG4gKiAgICBmb3J1bTogXCJnYW1lc1wiLFxuICogICAgdXNlcklkOiBcIjFcIixcbiAqICAgIHBvc3RJZDogXCIxMDBcIixcbiAqICAgIGNvbW1lbnRJZDogXCJhYmNcIlxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIGNvbnN0IFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIGNvbnN0IFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuICBuYW1lOiBOYW1lLFxuICBvcHRpb25zOiBFbnRpdHlPcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbik6IEVudGl0eTxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgaWYgKGVudGl0aWVzKCkuaGFzKG5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBlbnRpdHkgd2l0aCBuYW1lICcke25hbWV9JyBhbHJlYWR5IGV4aXN0c2ApO1xuICB9XG5cbiAgY29uc3QgaW5kaWNlczogRW50aXR5SW5kZXhbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1haW50YWluIGEgbGltaXRlZCBudW1iZXIgb2Ygc3RyZWFtcyBvbiB0aGUgZW50aXR5LlxuICAgKi9cbiAgY29uc3Qgc3RyZWFtczogRW50aXR5U3RyZWFtPGFueSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PltdID0gW107XG5cbiAgY29uc3QgYXR0cmlidXRlcyA9XG4gICAgb3B0aW9ucy5hdHRyaWJ1dGVzIGluc3RhbmNlb2Ygei5ab2RPYmplY3RcbiAgICAgID8gb3B0aW9ucy5hdHRyaWJ1dGVzXG4gICAgICA6ICh6Lm9iamVjdChvcHRpb25zLmF0dHJpYnV0ZXMpIGFzIHVua25vd24gYXMgWm9kQXR0cmlidXRlc09iamVjdDxBdHRyPik7XG5cbiAgY29uc3QgZW50aXR5OiBFbnRpdHk8TmFtZSwgQXR0ciwgUGFydGl0aW9uLCBTb3J0PiA9IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgX19lbnRpdHlCcmFuZDogdW5kZWZpbmVkLFxuICAgIGtpbmQ6IFwiRW50aXR5XCIsXG4gICAgbmFtZSxcbiAgICBrZXk6IGNvbXB1dGVLZXlEZWZpbml0aW9uKGF0dHJpYnV0ZXMsIG9wdGlvbnMucGFydGl0aW9uLCBvcHRpb25zLnNvcnQpLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgaW5kaWNlcyxcbiAgICBzdHJlYW1zLFxuICAgIGdldDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwiZ2V0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBvcGVyYXRpb246IFwiZ2V0XCIsXG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5nZXQobmFtZSwgLi4uYXJncykgYXMgUHJvbWlzZTxBdHRyPjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIGdldFdpdGhNZXRhZGF0YTogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwiZ2V0V2l0aE1ldGFkYXRhXCI+PihcbiAgICAgICAgICBFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImdldFdpdGhNZXRhZGF0YVwiLFxuICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLmdldFdpdGhNZXRhZGF0YShuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIHNldDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2V0XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgIG9wZXJhdGlvbjogXCJzZXRcIixcbiAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdldEVudGl0eUhvb2soKS5zZXQobmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBkZWxldGU6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcImRlbGV0ZVwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwiZGVsZXRlXCIsXG4gICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICB9KSxcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXRFbnRpdHlIb29rKCkuZGVsZXRlKG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgcXVlcnk6ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICBjcmVhdGVFdmVudHVhbENhbGw8RW50aXR5Q2FsbDxcInF1ZXJ5XCI+PihFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsIHtcbiAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgIG9wZXJhdGlvbjogXCJxdWVyeVwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLnF1ZXJ5KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgc2NhbjogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHJldHVybiBnZXRFdmVudHVhbENhbGxIb29rKCkucmVnaXN0ZXJFdmVudHVhbENhbGwoXG4gICAgICAgIGNyZWF0ZUV2ZW50dWFsQ2FsbDxFbnRpdHlDYWxsPFwic2NhblwiPj4oRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLCB7XG4gICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICBvcGVyYXRpb246IFwic2NhblwiLFxuICAgICAgICAgIHBhcmFtczogYXJncyxcbiAgICAgICAgfSksXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RW50aXR5SG9vaygpLnNjYW4obmFtZSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBpbmRleDogKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IFtpbmRleE5hbWUsIGluZGV4T3B0aW9uc10gPSBhcmdzO1xuXG4gICAgICBpZiAoaW5kaWNlcy5zb21lKChpKSA9PiBpLm5hbWUgPT09IGluZGV4TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbmRleCBvZiBuYW1lICR7aW5kZXhOYW1lfSBhbHJlYWR5IGV4aXN0cyBvbiAke25hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluZGV4OiBFbnRpdHlJbmRleCA9IHtcbiAgICAgICAga2luZDogXCJFbnRpdHlJbmRleFwiLFxuICAgICAgICBrZXk6IGNvbXB1dGVLZXlEZWZpbml0aW9uKFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgKFwicGFydGl0aW9uXCIgaW4gaW5kZXhPcHRpb25zID8gaW5kZXhPcHRpb25zLnBhcnRpdGlvbiA6IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgICAgIG9wdGlvbnMucGFydGl0aW9uLFxuICAgICAgICAgIGluZGV4T3B0aW9ucy5zb3J0ID8/IG9wdGlvbnMuc29ydFxuICAgICAgICApLFxuICAgICAgICBuYW1lOiBpbmRleE5hbWUsXG4gICAgICAgIHBhcnRpdGlvbjpcbiAgICAgICAgICBcInBhcnRpdGlvblwiIGluIGluZGV4T3B0aW9ucyA/IGluZGV4T3B0aW9ucy5wYXJ0aXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIHNvcnQ6IGluZGV4T3B0aW9ucy5zb3J0LFxuICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICBxdWVyeTogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJxdWVyeUluZGV4XCI+PihcbiAgICAgICAgICAgICAgRXZlbnR1YWxDYWxsS2luZC5FbnRpdHlDYWxsLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBcInF1ZXJ5SW5kZXhcIixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IGFyZ3MsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAoKSA9PiBnZXRFbnRpdHlIb29rKCkucXVlcnlJbmRleChuYW1lLCBpbmRleE5hbWUsIC4uLmFyZ3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0RXZlbnR1YWxDYWxsSG9vaygpLnJlZ2lzdGVyRXZlbnR1YWxDYWxsKFxuICAgICAgICAgICAgY3JlYXRlRXZlbnR1YWxDYWxsPEVudGl0eUNhbGw8XCJzY2FuSW5kZXhcIj4+KFxuICAgICAgICAgICAgICBFdmVudHVhbENhbGxLaW5kLkVudGl0eUNhbGwsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgIGluZGV4TmFtZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFwic2NhbkluZGV4XCIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBhcmdzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKCkgPT4gZ2V0RW50aXR5SG9vaygpLnNjYW5JbmRleChuYW1lLCBpbmRleE5hbWUsIC4uLmFyZ3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGluZGljZXMucHVzaChpbmRleCk7XG5cbiAgICAgIHJldHVybiBpbmRleCBhcyBhbnk7XG4gICAgfSxcbiAgICBzdHJlYW06IChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW25hbWU6IHN0cmluZywgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgICAgIF1cbiAgICAgICAgfCBbXG4gICAgICAgICAgICBzb3VyY2VMb2NhdGlvbjogU291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgICAgICBdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgb3B0aW9uczogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICAgICAgXVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBzdHJlYW1OYW1lLCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgICAgIGFyZ3MubGVuZ3RoID09PSAyXG4gICAgICAgICAgPyBbLCBhcmdzWzBdLCAsIGFyZ3NbMV1dXG4gICAgICAgICAgOiBhcmdzLmxlbmd0aCA9PT0gNFxuICAgICAgICAgID8gYXJnc1xuICAgICAgICAgIDogaXNTb3VyY2VMb2NhdGlvbihhcmdzWzBdKSAmJiB0eXBlb2YgYXJnc1sxXSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gW2FyZ3NbMF0sIGFyZ3NbMV0gYXMgc3RyaW5nLCAsIGFyZ3NbMl1dXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICxcbiAgICAgICAgICAgICAgYXJnc1swXSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIGFyZ3NbMV0gYXMgRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICAgICBhcmdzWzJdLFxuICAgICAgICAgICAgXTtcblxuICAgICAgaWYgKHN0cmVhbXMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IHR3byBzdHJlYW1zIGFyZSBhbGxvd2VkIHBlciBlbnRpdHkuXCIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRpdHlTdHJlYW06IEVudGl0eVN0cmVhbTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4gPSB7XG4gICAgICAgIGtpbmQ6IFwiRW50aXR5U3RyZWFtXCIsXG4gICAgICAgIGhhbmRsZXIsXG4gICAgICAgIG5hbWU6IHN0cmVhbU5hbWUsXG4gICAgICAgIGVudGl0eU5hbWU6IG5hbWUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgfTtcblxuICAgICAgc3RyZWFtcy5wdXNoKGVudGl0eVN0cmVhbSk7XG5cbiAgICAgIHJldHVybiBlbnRpdHlTdHJlYW07XG4gICAgfSxcbiAgfTtcblxuICBlbnRpdGllcygpLnNldChuYW1lLCBlbnRpdHkgYXMgYW55KTtcblxuICByZXR1cm4gZW50aXR5O1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlJbmRleE9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gPVxuICB8IHtcbiAgICAgIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICAgICAgc29ydD86IFNvcnQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHNvcnQ6IFNvcnQ7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgRW50aXR5SW5kZXhNYXBwZXI8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzLFxuICBFbnRpdHlQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgSW5kZXhQYXJ0aXRpb24gZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIFNvcnQgZXh0ZW5kcyBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gPSBJbmRleFBhcnRpdGlvbiBleHRlbmRzIHVuZGVmaW5lZFxuICA/IEVudGl0eUluZGV4PE5hbWUsIEF0dHIsIEVudGl0eVBhcnRpdGlvbiwgU29ydD5cbiAgOiBFbnRpdHlJbmRleDxOYW1lLCBBdHRyLCBFeGNsdWRlPEluZGV4UGFydGl0aW9uLCB1bmRlZmluZWQ+LCBTb3J0PjtcblxuLyoqXG4gKiBBbiBpbmRleCdzIGtleSBhdHRyaWJ1dGVzIGFyZSBuZXZlciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eUluZGV4QXR0cmlidXRlczxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEluZGV4Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBJbmRleENvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiA9IHtcbiAgW2sgaW4ga2V5b2YgQXR0cl06IGsgZXh0ZW5kcyBLZXlBdHRyaWJ1dGVzPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICA/IEV4Y2x1ZGU8QXR0cltrXSwgdW5kZWZpbmVkPlxuICAgIDogQXR0cltrXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5SW5kZXg8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEVudGl0eUF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+ID0gSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+LFxuICBTb3J0IGV4dGVuZHMgSW5kZXhDb21wb3NpdGVLZXlQYXJ0PEVudGl0eUF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEluZGV4Q29tcG9zaXRlS2V5UGFydDxFbnRpdHlBdHRyPlxuICAgIHwgdW5kZWZpbmVkLFxuICBJbmRleEF0dHIgZXh0ZW5kcyBFbnRpdHlJbmRleEF0dHJpYnV0ZXM8XG4gICAgRW50aXR5QXR0cixcbiAgICBQYXJ0aXRpb24sXG4gICAgU29ydFxuICA+ID0gRW50aXR5SW5kZXhBdHRyaWJ1dGVzPEVudGl0eUF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbj4gZXh0ZW5kcyBFbnRpdHlJbmRleFNwZWM8TmFtZT4ge1xuICBraW5kOiBcIkVudGl0eUluZGV4XCI7XG4gIHF1ZXJ5KFxuICAgIHF1ZXJ5S2V5OiBRdWVyeUtleTxJbmRleEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgb3B0aW9ucz86IEVudGl0eVF1ZXJ5T3B0aW9uc1xuICApOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEluZGV4QXR0cj4+O1xuICAvKipcbiAgICogUmV0dXJucyBhbGwgaXRlbXMgaW4gdGhlIHRhYmxlLCB1cCB0byB0aGUgbGltaXQgZ2l2ZW4gb3IgMU1CIChvbiBBV1MpLlxuICAgKlxuICAgKiBJbiBnZW5lcmFsLCBzY2FuIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIHNob3VsZCBiZSBhdm9pZGVkIGluIGZhdm9yIG9mIHF1ZXJ5XG4gICAqIHVubGVzcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCBpdGVtcyBpbiBhIHRhYmxlIGFjcm9zcyBhbGwgb3IgbW9zdCBwYXJ0aXRpb25zLlxuICAgKi9cbiAgc2NhbihyZXF1ZXN0PzogRW50aXR5U2Nhbk9wdGlvbnMpOiBQcm9taXNlPEVudGl0eVF1ZXJ5UmVzdWx0PEluZGV4QXR0cj4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVF1ZXJ5UmVzdWx0PEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcz4ge1xuICBlbnRyaWVzPzogRW50aXR5V2l0aE1ldGFkYXRhPEF0dHI+W107XG4gIC8qKlxuICAgKiBSZXR1cm5lZCB3aGVuIHRoZXJlIGFyZSBtb3JlIHZhbHVlcyB0aGFuIHRoZSBsaW1pdCBhbGxvd2VkIHRvIHJldHVybi5cbiAgICovXG4gIG5leHRUb2tlbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiB3aGVuIGNvbnNpc3RlbnQgcmVhZCBpcyBmYWxzZSBvciB1bmRlZmluZWQsIGEgcXVlcnkgb3Igc2NhbiBtYXkgbm90IGluY2x1ZGUgdGhlIGxhdGVzdCBjaGFuZ2VzIHRvIHRoZSBlbnRpdHkgdmFsdWVzLlxuICAgKiBTZXR0aW5nIGNvbnNpc3RlbnQgcmVhZCB0byB0cnVlIHdpbGwgaW5jcmVhc2UgdGhlIGNvc3Qgb2YgdGhlIHJlYWQgYW5kIG1heSB0YWtlIGxvbmdlciB0byByZXR1cm4uXG4gICAqL1xuICBjb25zaXN0ZW50UmVhZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U2Nhbk9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlSZWFkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0cmlldmVcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVF1ZXJ5T3B0aW9ucyBleHRlbmRzIEVudGl0eVNjYW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgaXRlbXMgcmV0dXJuZWQgaW4gdGhlIHF1ZXJ5IGJhc2VkIG9uIHRoZSBzb3J0IGtleS5cbiAgICpcbiAgICogQGRlZmF1bHQgQVNDIC0gYXNjZW5kaW5nIG9yZGVyXG4gICAqL1xuICBkaXJlY3Rpb24/OiBcIkFTQ1wiIHwgXCJERVNDXCI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q29uc2lzdGVuY3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCB2ZXJzaW9uIG9mIHRoZSBlbnRpdHkgaW4gdGhlIGVudGl0eS5cbiAgICpcbiAgICogVXNlZCB0byBzdXBwb3J0IGNvbnNpc3RlbnQgd3JpdGVzIGFuZCBkZWxldGVzLlxuICAgKiBBIHZhbHVlIG9mIDAgd2lsbCBvbmx5IHBhc3MgaWYgdGhlIGl0ZW0gaXMgbmV3LlxuICAgKi9cbiAgZXhwZWN0ZWRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNldE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlDb25zaXN0ZW5jeU9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXBkYXRlIHRoZSB2ZXJzaW9uIG9uIGNoYW5nZS5cbiAgICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgdmFsdWUgaGFzIGJlZW4gc2V0LCBpdCB3aWxsIGJlIHNldCB0byAxLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gdmVyc2lvbiB3aWxsIGJlIGluY3JlbWVudGVkLlxuICAgKi9cbiAgaW5jcmVtZW50VmVyc2lvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5V2l0aE1ldGFkYXRhPEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcz4ge1xuICB2YWx1ZTogQXR0cjtcbiAgdmVyc2lvbjogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRW50aXR5VHJhbnNhY3RJdGVtQmFzZTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkXG4+IHtcbiAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHwgc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlUcmFuc2FjdEl0ZW08XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gYW55LFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+ID1cbiAgfCBFbnRpdHlUcmFuc2FjdFNldE9wZXJhdGlvbjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gIHwgRW50aXR5VHJhbnNhY3REZWxldGVPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICB8IEVudGl0eVRyYW5zYWN0Q29uZGl0aW9uYWxPcGVyYXRpb248QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdFNldE9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwic2V0XCI7XG4gIHZhbHVlOiBBdHRyO1xuICBvcHRpb25zPzogRW50aXR5U2V0T3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdERlbGV0ZU9wZXJhdGlvbjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBhbnksXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlUcmFuc2FjdEl0ZW1CYXNlPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4ge1xuICBvcGVyYXRpb246IFwiZGVsZXRlXCI7XG4gIGtleTogQ29tcG9zaXRlS2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIG9wdGlvbnM/OiBFbnRpdHlTZXRPcHRpb25zO1xufVxuXG4vKipcbiAqIFVzZWQgaW4gdHJhbnNhY3Rpb25zLCBjYW5jZWxzIHRoZSB0cmFuc2FjdGlvbiBpZiB0aGUga2V5J3MgdmVyc2lvbiBkb2VzIG5vdCBtYXRjaC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUcmFuc2FjdENvbmRpdGlvbmFsT3BlcmF0aW9uPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IGFueSxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEVudGl0eVRyYW5zYWN0SXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG9wZXJhdGlvbjogXCJjb25kaXRpb25cIjtcbiAga2V5OiBDb21wb3NpdGVLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgdmVyc2lvbj86IG51bWJlcjtcbn1cbiJdfQ==

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

import { EntityStreamOptions, EntityStreamSpec, SourceLocation } from "../internal/service-spec.js";
import { EntityStreamOperation, EntityStreamOptions, EntityStreamSpec, SourceLocation } from "../internal/service-spec.js";
import type { ServiceContext } from "../service.js";

@@ -11,7 +11,7 @@ import type { Entity, Attributes } from "./entity.js";

}
export interface EntityStreamHandler<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> {
export interface EntityStreamHandler<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> {
/**
* Provides the keys, new value
*/
(item: EntityStreamItem<Attr, Partition, Sort>, context: EntityStreamContext): Promise<void | false> | void | false;
(item: EntityStreamItem<Attr, Partition, Sort, Operations>, context: EntityStreamContext): Promise<void | false> | void | false;
}

@@ -23,3 +23,5 @@ export interface EntityStreamItemBase<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> {

}
export type EntityStreamItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> = EntityStreamInsertItem<Attr, Partition, Sort> | EntityStreamModifyItem<Attr, Partition, Sort> | EntityStreamRemoveItem<Attr, Partition, Sort>;
export type EntityStreamItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> = (EntityStreamInsertItem<Attr, Partition, Sort> | EntityStreamModifyItem<Attr, Partition, Sort> | EntityStreamRemoveItem<Attr, Partition, Sort>) & {
operation: Operations[number];
};
export interface EntityStreamInsertItem<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> extends EntityStreamItemBase<Attr, Partition, Sort> {

@@ -26,0 +28,0 @@ newValue: Attr;

@@ -32,2 +32,2 @@ import { isSourceLocation, } from "../internal/service-spec.js";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGdCQUFnQixHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBb0dyQyxNQUFNLFVBQVUsWUFBWSxDQUsxQixHQUFHLElBd0JFO0lBRUwsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FDcEQsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsQ0FBQztvQkFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxDQUFDLENBQVc7b0JBQ2pCLElBQUksQ0FBQyxDQUFDLENBQXVDO29CQUM3QyxBQUQ4QztvQkFFOUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDUjtnQkFDSCxDQUFDLENBQUM7b0JBQ0UsQUFERDtvQkFFQyxJQUFJLENBQUMsQ0FBQyxDQUFXO29CQUNqQixJQUFJLENBQUMsQ0FBQyxDQUF1QztvQkFDN0MsSUFBSSxDQUFDLENBQUMsQ0FBK0M7b0JBQ3JELElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ1IsQ0FBQztJQUVSLE9BQU8sY0FBYztRQUNuQixDQUFDLENBQUMsT0FBTztZQUNQLENBQUMsQ0FBQyxhQUFhO2dCQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxhQUFhO2dCQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFDaEQsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUN2QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eVN0cmVhbU9wdGlvbnMsXG4gIEVudGl0eVN0cmVhbVNwZWMsXG4gIFNvdXJjZUxvY2F0aW9uLFxuICBpc1NvdXJjZUxvY2F0aW9uLFxufSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5LCBBdHRyaWJ1dGVzIH0gZnJvbSBcIi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQsIEtleU1hcCB9IGZyb20gXCIuL2tleS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbUNvbnRleHQge1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRhaW5pbmcgc2VydmljZS5cbiAgICovXG4gIHNlcnZpY2U6IFNlcnZpY2VDb250ZXh0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbUhhbmRsZXI8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUga2V5cywgbmV3IHZhbHVlXG4gICAqL1xuICAoXG4gICAgaXRlbTogRW50aXR5U3RyZWFtSXRlbTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgIGNvbnRleHQ6IEVudGl0eVN0cmVhbUNvbnRleHRcbiAgKTogUHJvbWlzZTx2b2lkIHwgZmFsc2U+IHwgdm9pZCB8IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbUl0ZW1CYXNlPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4ge1xuICBzdHJlYW1OYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlNYXA8QXR0ciwgUGFydGl0aW9uLCBTb3J0Pjtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5U3RyZWFtSXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+ID1cbiAgfCBFbnRpdHlTdHJlYW1JbnNlcnRJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlTdHJlYW1Nb2RpZnlJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlTdHJlYW1SZW1vdmVJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSW5zZXJ0SXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtSXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG5ld1ZhbHVlOiBBdHRyO1xuICBuZXdWZXJzaW9uOiBudW1iZXI7XG4gIG9wZXJhdGlvbjogXCJpbnNlcnRcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1Nb2RpZnlJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcIm1vZGlmeVwiO1xuICBuZXdWYWx1ZTogQXR0cjtcbiAgbmV3VmVyc2lvbjogbnVtYmVyO1xuICBvbGRWYWx1ZT86IEF0dHI7XG4gIG9sZFZlcnNpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtUmVtb3ZlSXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtSXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG9wZXJhdGlvbjogXCJyZW1vdmVcIjtcbiAgb2xkVmFsdWU/OiBBdHRyO1xuICBvbGRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtU3BlYzxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAga2luZDogXCJFbnRpdHlTdHJlYW1cIjtcbiAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5U3RyZWFtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgY29uc3QgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgY29uc3QgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWRcbj4oXG4gIC4uLmFyZ3M6XG4gICAgfCBbXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgIF1cbiAgICB8IFtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4gICAgfCBbXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuICAgIHwgW1xuICAgICAgICBzb3VyY2VMb2NhdGlvbjogU291cmNlTG9jYXRpb24sXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuKSB7XG4gIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgbmFtZSwgZW50aXR5LCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgYXJncy5sZW5ndGggPT09IDNcbiAgICAgID8gWywgYXJnc1swXSwgYXJnc1sxXSwgLCBhcmdzWzJdXVxuICAgICAgOiBhcmdzLmxlbmd0aCA9PT0gNVxuICAgICAgPyBhcmdzXG4gICAgICA6IGlzU291cmNlTG9jYXRpb24oYXJnc1swXSlcbiAgICAgID8gW1xuICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgYXJnc1sxXSBhcyBzdHJpbmcsXG4gICAgICAgICAgYXJnc1syXSBhcyBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICxcbiAgICAgICAgICBhcmdzWzNdLFxuICAgICAgICBdXG4gICAgICA6IFtcbiAgICAgICAgICAsXG4gICAgICAgICAgYXJnc1swXSBhcyBzdHJpbmcsXG4gICAgICAgICAgYXJnc1sxXSBhcyBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgIGFyZ3NbMl0gYXMgRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgIGFyZ3NbM10sXG4gICAgICAgIF07XG5cbiAgcmV0dXJuIHNvdXJjZUxvY2F0aW9uXG4gICAgPyBvcHRpb25zXG4gICAgICA/IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZW50aXR5LnN0cmVhbShzb3VyY2VMb2NhdGlvbiwgbmFtZSwgb3B0aW9ucywgaGFuZGxlcilcbiAgICAgIDogLy8gQHRzLWlnbm9yZVxuICAgICAgICBlbnRpdHkuc3RyZWFtKHNvdXJjZUxvY2F0aW9uLCBuYW1lLCBoYW5kbGVyKVxuICAgIDogb3B0aW9uc1xuICAgID8gZW50aXR5LnN0cmVhbShuYW1lLCBvcHRpb25zLCBoYW5kbGVyKVxuICAgIDogZW50aXR5LnN0cmVhbShuYW1lLCBoYW5kbGVyKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGdCQUFnQixHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBdUdyQyxNQUFNLFVBQVUsWUFBWSxDQUsxQixHQUFHLElBd0JFO0lBRUwsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FDcEQsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsQ0FBQztvQkFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxDQUFDLENBQVc7b0JBQ2pCLElBQUksQ0FBQyxDQUFDLENBQXVDO29CQUM3QyxBQUQ4QztvQkFFOUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDUjtnQkFDSCxDQUFDLENBQUM7b0JBQ0UsQUFERDtvQkFFQyxJQUFJLENBQUMsQ0FBQyxDQUFXO29CQUNqQixJQUFJLENBQUMsQ0FBQyxDQUF1QztvQkFDN0MsSUFBSSxDQUFDLENBQUMsQ0FBK0M7b0JBQ3JELElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ1IsQ0FBQztJQUVSLE9BQU8sY0FBYztRQUNuQixDQUFDLENBQUMsT0FBTztZQUNQLENBQUMsQ0FBQyxhQUFhO2dCQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxhQUFhO2dCQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFDaEQsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUN2QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eVN0cmVhbU9wZXJhdGlvbixcbiAgRW50aXR5U3RyZWFtT3B0aW9ucyxcbiAgRW50aXR5U3RyZWFtU3BlYyxcbiAgU291cmNlTG9jYXRpb24sXG4gIGlzU291cmNlTG9jYXRpb24sXG59IGZyb20gXCIuLi9pbnRlcm5hbC9zZXJ2aWNlLXNwZWMuanNcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHksIEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5Q29tcG9zaXRlS2V5UGFydCwgS2V5TWFwIH0gZnJvbSBcIi4va2V5LmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtQ29udGV4dCB7XG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGFpbmluZyBzZXJ2aWNlLlxuICAgKi9cbiAgc2VydmljZTogU2VydmljZUNvbnRleHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSGFuZGxlcjxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkLFxuICBPcGVyYXRpb25zIGV4dGVuZHMgRW50aXR5U3RyZWFtT3BlcmF0aW9uW10gPSBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXVxuPiB7XG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUga2V5cywgbmV3IHZhbHVlXG4gICAqL1xuICAoXG4gICAgaXRlbTogRW50aXR5U3RyZWFtSXRlbTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQsIE9wZXJhdGlvbnM+LFxuICAgIGNvbnRleHQ6IEVudGl0eVN0cmVhbUNvbnRleHRcbiAgKTogUHJvbWlzZTx2b2lkIHwgZmFsc2U+IHwgdm9pZCB8IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbUl0ZW1CYXNlPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4ge1xuICBzdHJlYW1OYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlNYXA8QXR0ciwgUGFydGl0aW9uLCBTb3J0Pjtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5U3RyZWFtSXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkLFxuICBPcGVyYXRpb25zIGV4dGVuZHMgRW50aXR5U3RyZWFtT3BlcmF0aW9uW10gPSBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXVxuPiA9IChcbiAgfCBFbnRpdHlTdHJlYW1JbnNlcnRJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlTdHJlYW1Nb2RpZnlJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgfCBFbnRpdHlTdHJlYW1SZW1vdmVJdGVtPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbikgJiB7IG9wZXJhdGlvbjogT3BlcmF0aW9uc1tudW1iZXJdIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtSW5zZXJ0SXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtSXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG5ld1ZhbHVlOiBBdHRyO1xuICBuZXdWZXJzaW9uOiBudW1iZXI7XG4gIG9wZXJhdGlvbjogXCJpbnNlcnRcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1Nb2RpZnlJdGVtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBFbnRpdHlTdHJlYW1JdGVtQmFzZTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAgb3BlcmF0aW9uOiBcIm1vZGlmeVwiO1xuICBuZXdWYWx1ZTogQXR0cjtcbiAgbmV3VmVyc2lvbjogbnVtYmVyO1xuICBvbGRWYWx1ZT86IEF0dHI7XG4gIG9sZFZlcnNpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtUmVtb3ZlSXRlbTxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtSXRlbUJhc2U8QXR0ciwgUGFydGl0aW9uLCBTb3J0PiB7XG4gIG9wZXJhdGlvbjogXCJyZW1vdmVcIjtcbiAgb2xkVmFsdWU/OiBBdHRyO1xuICBvbGRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbTxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRW50aXR5U3RyZWFtU3BlYzxOYW1lLCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+IHtcbiAga2luZDogXCJFbnRpdHlTdHJlYW1cIjtcbiAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5U3RyZWFtPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyxcbiAgY29uc3QgUGFydGl0aW9uIGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgY29uc3QgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWRcbj4oXG4gIC4uLmFyZ3M6XG4gICAgfCBbXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBoYW5kbGVyOiBFbnRpdHlTdHJlYW1IYW5kbGVyPEF0dHIsIFBhcnRpdGlvbiwgU29ydD5cbiAgICAgIF1cbiAgICB8IFtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIG9wdGlvbnM6IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PixcbiAgICAgICAgaGFuZGxlcjogRW50aXR5U3RyZWFtSGFuZGxlcjxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+XG4gICAgICBdXG4gICAgfCBbXG4gICAgICAgIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBlbnRpdHk6IEVudGl0eTxhbnksIEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuICAgIHwgW1xuICAgICAgICBzb3VyY2VMb2NhdGlvbjogU291cmNlTG9jYXRpb24sXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgZW50aXR5OiBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICBvcHRpb25zOiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD4sXG4gICAgICAgIGhhbmRsZXI6IEVudGl0eVN0cmVhbUhhbmRsZXI8QXR0ciwgUGFydGl0aW9uLCBTb3J0PlxuICAgICAgXVxuKSB7XG4gIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgbmFtZSwgZW50aXR5LCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgYXJncy5sZW5ndGggPT09IDNcbiAgICAgID8gWywgYXJnc1swXSwgYXJnc1sxXSwgLCBhcmdzWzJdXVxuICAgICAgOiBhcmdzLmxlbmd0aCA9PT0gNVxuICAgICAgPyBhcmdzXG4gICAgICA6IGlzU291cmNlTG9jYXRpb24oYXJnc1swXSlcbiAgICAgID8gW1xuICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgYXJnc1sxXSBhcyBzdHJpbmcsXG4gICAgICAgICAgYXJnc1syXSBhcyBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgICxcbiAgICAgICAgICBhcmdzWzNdLFxuICAgICAgICBdXG4gICAgICA6IFtcbiAgICAgICAgICAsXG4gICAgICAgICAgYXJnc1swXSBhcyBzdHJpbmcsXG4gICAgICAgICAgYXJnc1sxXSBhcyBFbnRpdHk8YW55LCBBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgIGFyZ3NbMl0gYXMgRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+LFxuICAgICAgICAgIGFyZ3NbM10sXG4gICAgICAgIF07XG5cbiAgcmV0dXJuIHNvdXJjZUxvY2F0aW9uXG4gICAgPyBvcHRpb25zXG4gICAgICA/IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZW50aXR5LnN0cmVhbShzb3VyY2VMb2NhdGlvbiwgbmFtZSwgb3B0aW9ucywgaGFuZGxlcilcbiAgICAgIDogLy8gQHRzLWlnbm9yZVxuICAgICAgICBlbnRpdHkuc3RyZWFtKHNvdXJjZUxvY2F0aW9uLCBuYW1lLCBoYW5kbGVyKVxuICAgIDogb3B0aW9uc1xuICAgID8gZW50aXR5LnN0cmVhbShuYW1lLCBvcHRpb25zLCBoYW5kbGVyKVxuICAgIDogZW50aXR5LnN0cmVhbShuYW1lLCBoYW5kbGVyKTtcbn1cbiJdfQ==

@@ -180,3 +180,3 @@ import type openapi from "openapi3-ts";

export type EntityStreamOperation = "insert" | "modify" | "remove";
export interface EntityStreamOptions<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined> extends FunctionRuntimeProps {
export interface EntityStreamOptions<Attr extends Attributes = Attributes, Partition extends EntityCompositeKeyPart<Attr> = EntityCompositeKeyPart<Attr>, Sort extends EntityCompositeKeyPart<Attr> | undefined = EntityCompositeKeyPart<Attr> | undefined, Operations extends EntityStreamOperation[] = EntityStreamOperation[]> extends FunctionRuntimeProps {
/**

@@ -187,3 +187,3 @@ * A list of operations to be send to the stream.

*/
operations?: EntityStreamOperation[];
operations?: Operations;
/**

@@ -190,0 +190,0 @@ * When true, the old value will be sent with the new value.

@@ -7,2 +7,2 @@ export function isSourceLocation(a) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtSkEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLENBQU07SUFDckMsT0FBTyxDQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgb3BlbmFwaSBmcm9tIFwib3BlbmFwaTMtdHNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS5qc1wiO1xuaW1wb3J0IHtcbiAgQ29tcG9zaXRlS2V5UGFydCxcbiAgRW50aXR5Q29tcG9zaXRlS2V5UGFydCxcbiAgU3RyZWFtUXVlcnlLZXksXG59IGZyb20gXCIuLi9lbnRpdHkva2V5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB0eXBlIHsgUmVzdFBhcmFtcyB9IGZyb20gXCIuLi9odHRwL2NvbW1hbmQuanNcIjtcbmltcG9ydCB0eXBlIHsgRHVyYXRpb25TY2hlZHVsZSB9IGZyb20gXCIuLi9zY2hlZHVsZS5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBTdWJzY3JpcHRpb25GaWx0ZXIsXG4gIFN1YnNjcmlwdGlvblJ1bnRpbWVQcm9wcyxcbn0gZnJvbSBcIi4uL3N1YnNjcmlwdGlvbi5qc1wiO1xuaW1wb3J0IHsgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUYXNrU3BlYyB9IGZyb20gXCIuL3Rhc2suanNcIjtcblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIGZvciBhbiBFdmVudHVhbCBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjIHtcbiAgLyoqXG4gICAqIExpc3Qgb2Ygd29ya2Zsb3dzXG4gICAqL1xuICB3b3JrZmxvd3M6IFdvcmtmbG93U3BlY1tdO1xuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU3BlY1tdO1xuICB0YXNrczogVGFza1NwZWNbXTtcbiAgY29tbWFuZHM6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5bXTtcbiAgLyoqXG4gICAqIE9wZW4gQVBJIDMgc2NoZW1hIGRlZmluaXRpb25zIGZvciBhbGwga25vd24gRXZlbnRzIGluIHRoaXMgU2VydmljZS5cbiAgICovXG4gIGV2ZW50czogRXZlbnRTcGVjW107XG4gIC8qKlxuICAgKiBJbmRpdmlkdWFsbHkgYnVuZGxlZCB7QGxpbmsgRXZlbnRGdW5jdGlvbn1zIGNvbnRhaW5pbmcgYSBzaW5nbGUgYHN1YnNjcmlwdGlvbmAgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvblNwZWNbXTtcbiAgYnVja2V0czoge1xuICAgIGJ1Y2tldHM6IEJ1Y2tldFNwZWNbXTtcbiAgfTtcbiAgZW50aXRpZXM6IHtcbiAgICBlbnRpdGllczogRW50aXR5U3BlY1tdO1xuICB9O1xuICBvcGVuQXBpOiB7XG4gICAgaW5mbzogb3BlbmFwaS5JbmZvT2JqZWN0O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlYyB7XG4gIG1lbW9yeVNpemU/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBEdXJhdGlvblNjaGVkdWxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvblNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICAvKipcbiAgICogVW5pcXVlIG5hbWUgb2YgdGhpcyBTdWJzY3JpcHRpb24uXG4gICAqL1xuICBuYW1lOiBOYW1lO1xuICAvKipcbiAgICogU3Vic2NyaXB0aW9ucyB0aGlzIEV2ZW50IEhhbmRsZXIgaXMgc3Vic2NyaWJlZCB0by4gQW55IGV2ZW50IGZsb3dpbmdcbiAgICogdGhyb3VnaCB0aGUgU2VydmljZSdzIEV2ZW50IEJ1cyB0aGF0IG1hdGNoIHRoZXNlIGNyaXRlcmlhIHdpbGwgYmVcbiAgICogc2VudCB0byB0aGlzIExhbWJkYSBGdW5jdGlvbi5cbiAgICovXG4gIGZpbHRlcnM6IFN1YnNjcmlwdGlvbkZpbHRlcltdO1xuICAvKipcbiAgICogUnVudGltZSBjb25maWd1cmF0aW9uIGZvciB0aGlzIEV2ZW50IEhhbmRsZXIuXG4gICAqL1xuICBwcm9wcz86IFN1YnNjcmlwdGlvblJ1bnRpbWVQcm9wcztcbiAgLyoqXG4gICAqIE9ubHkgYXZhaWxhYmxlIGR1cmluZyBldmVudHVhbC1pbmZlci5cbiAgICovXG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTcGVjIHtcbiAgLyoqXG4gICAqIFRoZSBFdmVudCdzIGdsb2JhbGx5IHVuaXF1ZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgU2NoZW1hIG9mIHRoZSBFdmVudC5cbiAgICovXG4gIHNjaGVtYT86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRPdXRwdXQge1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YXR1cyBjb2RlIG9mIHRoZSBvdXRwdXQgdXNlZCBpbiBjb21tYW5kcyB3aXRoIGEgcmVzdCBwYXRoLlxuICAgKlxuICAgKiBSUEMgY29tbWFuZHMgYWx3YXlzIHJldHVybiBhIHNpbmdsZSAyMDAgcmVzcG9uc2UuXG4gICAqL1xuICByZXN0U3RhdHVzQ29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRTcGVjPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBJbnB1dCA9IHVuZGVmaW5lZCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIExvbmcgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgZGVzY3JpcHRpb24gZmllbGQgb2YgdGhlIGdlbmVyYXRlZCBvcGVuIEFQSSBzcGVjLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLCB3cml0dGVuIHRvIHRoZSBzdW1tYXJ5IGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIHN1bW1hcnk/OiBzdHJpbmc7XG4gIGlucHV0Pzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIC8qKlxuICAgKiBPdXRwdXQgdXNlZCBieSBSUEMgY29tbWFuZHMgYW5kIFJlc3QgY29tbWFuZHMgdG8gZGVmaW5lIHRoZSBvdXRwdXQgb2YgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIFJQQyB3aWxsIGFsd2F5cyBoYXZlIGEgc3RhdHVzIGNvZGUgb2YgMjAwLCBidXQgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGRlc2NyaXB0aW9uIG9mIFwiT0tcIi5cbiAgICpcbiAgICogVGhlIFJFU1QgY29tbWFuZCB3aWxsIHJldHVybiBhIDIwMCByZXNwb25zZSB1bmxlc3MgYW4gYWx0ZXJuYXRpdmUgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBvdXRwdXQ/OiBDb21tYW5kT3V0cHV0O1xuICAvKipcbiAgICogT3B0aW9uYWwgb3V0cHV0cyBwcm92aWRlZCBieSBhbiBodHRwIEFQSSBjb21tYW5kIHVzaW5nIHBhc3N0aHJvdWdoIG1vZGUuXG4gICAqXG4gICAqIFRoZXNlIGNvbW1hbmRzIHJldHVybiBhIHtAbGluayBIdHRwUmVzcG9uc2V9IHdoaWNoIGNhbiBkZWZpbmUgYW55IG51bWJlciBvZiBvdXRwdXRzIHdpdGggY3VzdG9tIHN0YXR1cyBjb2Rlcy5cbiAgICpcbiAgICogVGhlIG91dHB1dHMgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIG91dHB1dHM/OiBDb21tYW5kT3V0cHV0W107XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG4gIHBhc3NUaHJvdWdoPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gaXNvbGF0ZSBycGMgcGF0aHMuXG4gICAqXG4gICAqIC9ycGNbL25hbWVzcGFjZV0vY29tbWFuZFxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc2NoZW1hIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHZhbGlkYXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU291cmNlTG9jYXRpb24oYTogYW55KTogYSBpcyBTb3VyY2VMb2NhdGlvbiB7XG4gIHJldHVybiAoXG4gICAgYSAmJlxuICAgIHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGEuZmlsZU5hbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICB0eXBlb2YgYS5leHBvcnROYW1lID09PSBcInN0cmluZ1wiXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBleHBvcnROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hcyB7XG4gIFtzY2hlbWFOYW1lOiBzdHJpbmddOiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1NwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICAvKipcbiAgICogR2xvYmFsbHkgdW5pcXVlIElEIG9mIHRoaXMge0BsaW5rIFdvcmtmbG93fS5cbiAgICovXG4gIG5hbWU6IE5hbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGhhbmRsZXJzOiBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGUgPSBcInB1dFwiIHwgXCJjb3B5XCIgfCBcImRlbGV0ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zIGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgZXZlbnRUeXBlcz86IEJ1Y2tldE5vdGlmaWNhdGlvbkV2ZW50VHlwZVtdO1xuICAvKipcbiAgICogRmlsdGVyIG9iamVjdHMgaW4gdGhlIHN0cmVhbSBieSBwcmVmaXggb3Igc3VmZml4LlxuICAgKi9cbiAgZmlsdGVycz86IHsgcHJlZml4Pzogc3RyaW5nOyBzdWZmaXg/OiBzdHJpbmcgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJTcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgbmFtZTogTmFtZTtcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlck9wdGlvbnM7XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgLyoqXG4gICAqIEFuIE9wdGlvbmFsIHNjaGVtYSBmb3IgdGhlIGVudGl0eSB3aXRoaW4gYW4gZW50aXR5LlxuICAgKi9cbiAgYXR0cmlidXRlczogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIHN0cmVhbXM6IEVudGl0eVN0cmVhbVNwZWNbXTtcbiAgaW5kaWNlczogRW50aXR5SW5kZXhTcGVjW107XG59XG5cbmV4cG9ydCB0eXBlIEVudGl0eVN0cmVhbU9wZXJhdGlvbiA9IFwiaW5zZXJ0XCIgfCBcIm1vZGlmeVwiIHwgXCJyZW1vdmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1PcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Ygb3BlcmF0aW9ucyB0byBiZSBzZW5kIHRvIHRoZSBzdHJlYW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IEFsbCBPcGVyYXRpb25zXG4gICAqL1xuICBvcGVyYXRpb25zPzogRW50aXR5U3RyZWFtT3BlcmF0aW9uW107XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHRoZSBvbGQgdmFsdWUgd2lsbCBiZSBzZW50IHdpdGggdGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIGluY2x1ZGVPbGQ/OiBib29sZWFuO1xuICAvKipcbiAgICogT25lIG9yIG1vcmUga2V5IHF1ZXJpZXMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBzdHJlYW0uXG4gICAqL1xuICBxdWVyeUtleXM/OiBTdHJlYW1RdWVyeUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IHtcbiAgbmFtZTogTmFtZTtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBwYXJ0aXRpb24/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG4gIHNvcnQ/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgbmFtZTogTmFtZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudE1hbmlmZXN0IHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgc2VydmljZVNwZWM6IFNlcnZpY2VTcGVjO1xuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtSkEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLENBQU07SUFDckMsT0FBTyxDQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgb3BlbmFwaSBmcm9tIFwib3BlbmFwaTMtdHNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS5qc1wiO1xuaW1wb3J0IHtcbiAgQ29tcG9zaXRlS2V5UGFydCxcbiAgRW50aXR5Q29tcG9zaXRlS2V5UGFydCxcbiAgU3RyZWFtUXVlcnlLZXksXG59IGZyb20gXCIuLi9lbnRpdHkva2V5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB0eXBlIHsgUmVzdFBhcmFtcyB9IGZyb20gXCIuLi9odHRwL2NvbW1hbmQuanNcIjtcbmltcG9ydCB0eXBlIHsgRHVyYXRpb25TY2hlZHVsZSB9IGZyb20gXCIuLi9zY2hlZHVsZS5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBTdWJzY3JpcHRpb25GaWx0ZXIsXG4gIFN1YnNjcmlwdGlvblJ1bnRpbWVQcm9wcyxcbn0gZnJvbSBcIi4uL3N1YnNjcmlwdGlvbi5qc1wiO1xuaW1wb3J0IHsgS2V5RGVmaW5pdGlvbiB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUYXNrU3BlYyB9IGZyb20gXCIuL3Rhc2suanNcIjtcblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIGZvciBhbiBFdmVudHVhbCBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjIHtcbiAgLyoqXG4gICAqIExpc3Qgb2Ygd29ya2Zsb3dzXG4gICAqL1xuICB3b3JrZmxvd3M6IFdvcmtmbG93U3BlY1tdO1xuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU3BlY1tdO1xuICB0YXNrczogVGFza1NwZWNbXTtcbiAgY29tbWFuZHM6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5bXTtcbiAgLyoqXG4gICAqIE9wZW4gQVBJIDMgc2NoZW1hIGRlZmluaXRpb25zIGZvciBhbGwga25vd24gRXZlbnRzIGluIHRoaXMgU2VydmljZS5cbiAgICovXG4gIGV2ZW50czogRXZlbnRTcGVjW107XG4gIC8qKlxuICAgKiBJbmRpdmlkdWFsbHkgYnVuZGxlZCB7QGxpbmsgRXZlbnRGdW5jdGlvbn1zIGNvbnRhaW5pbmcgYSBzaW5nbGUgYHN1YnNjcmlwdGlvbmAgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvblNwZWNbXTtcbiAgYnVja2V0czoge1xuICAgIGJ1Y2tldHM6IEJ1Y2tldFNwZWNbXTtcbiAgfTtcbiAgZW50aXRpZXM6IHtcbiAgICBlbnRpdGllczogRW50aXR5U3BlY1tdO1xuICB9O1xuICBvcGVuQXBpOiB7XG4gICAgaW5mbzogb3BlbmFwaS5JbmZvT2JqZWN0O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlYyB7XG4gIG1lbW9yeVNpemU/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBEdXJhdGlvblNjaGVkdWxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvblNwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICAvKipcbiAgICogVW5pcXVlIG5hbWUgb2YgdGhpcyBTdWJzY3JpcHRpb24uXG4gICAqL1xuICBuYW1lOiBOYW1lO1xuICAvKipcbiAgICogU3Vic2NyaXB0aW9ucyB0aGlzIEV2ZW50IEhhbmRsZXIgaXMgc3Vic2NyaWJlZCB0by4gQW55IGV2ZW50IGZsb3dpbmdcbiAgICogdGhyb3VnaCB0aGUgU2VydmljZSdzIEV2ZW50IEJ1cyB0aGF0IG1hdGNoIHRoZXNlIGNyaXRlcmlhIHdpbGwgYmVcbiAgICogc2VudCB0byB0aGlzIExhbWJkYSBGdW5jdGlvbi5cbiAgICovXG4gIGZpbHRlcnM6IFN1YnNjcmlwdGlvbkZpbHRlcltdO1xuICAvKipcbiAgICogUnVudGltZSBjb25maWd1cmF0aW9uIGZvciB0aGlzIEV2ZW50IEhhbmRsZXIuXG4gICAqL1xuICBwcm9wcz86IFN1YnNjcmlwdGlvblJ1bnRpbWVQcm9wcztcbiAgLyoqXG4gICAqIE9ubHkgYXZhaWxhYmxlIGR1cmluZyBldmVudHVhbC1pbmZlci5cbiAgICovXG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTcGVjIHtcbiAgLyoqXG4gICAqIFRoZSBFdmVudCdzIGdsb2JhbGx5IHVuaXF1ZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgU2NoZW1hIG9mIHRoZSBFdmVudC5cbiAgICovXG4gIHNjaGVtYT86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRPdXRwdXQge1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YXR1cyBjb2RlIG9mIHRoZSBvdXRwdXQgdXNlZCBpbiBjb21tYW5kcyB3aXRoIGEgcmVzdCBwYXRoLlxuICAgKlxuICAgKiBSUEMgY29tbWFuZHMgYWx3YXlzIHJldHVybiBhIHNpbmdsZSAyMDAgcmVzcG9uc2UuXG4gICAqL1xuICByZXN0U3RhdHVzQ29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRTcGVjPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBJbnB1dCA9IHVuZGVmaW5lZCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIExvbmcgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgZGVzY3JpcHRpb24gZmllbGQgb2YgdGhlIGdlbmVyYXRlZCBvcGVuIEFQSSBzcGVjLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLCB3cml0dGVuIHRvIHRoZSBzdW1tYXJ5IGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIHN1bW1hcnk/OiBzdHJpbmc7XG4gIGlucHV0Pzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIC8qKlxuICAgKiBPdXRwdXQgdXNlZCBieSBSUEMgY29tbWFuZHMgYW5kIFJlc3QgY29tbWFuZHMgdG8gZGVmaW5lIHRoZSBvdXRwdXQgb2YgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIFJQQyB3aWxsIGFsd2F5cyBoYXZlIGEgc3RhdHVzIGNvZGUgb2YgMjAwLCBidXQgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGRlc2NyaXB0aW9uIG9mIFwiT0tcIi5cbiAgICpcbiAgICogVGhlIFJFU1QgY29tbWFuZCB3aWxsIHJldHVybiBhIDIwMCByZXNwb25zZSB1bmxlc3MgYW4gYWx0ZXJuYXRpdmUgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBvdXRwdXQ/OiBDb21tYW5kT3V0cHV0O1xuICAvKipcbiAgICogT3B0aW9uYWwgb3V0cHV0cyBwcm92aWRlZCBieSBhbiBodHRwIEFQSSBjb21tYW5kIHVzaW5nIHBhc3N0aHJvdWdoIG1vZGUuXG4gICAqXG4gICAqIFRoZXNlIGNvbW1hbmRzIHJldHVybiBhIHtAbGluayBIdHRwUmVzcG9uc2V9IHdoaWNoIGNhbiBkZWZpbmUgYW55IG51bWJlciBvZiBvdXRwdXRzIHdpdGggY3VzdG9tIHN0YXR1cyBjb2Rlcy5cbiAgICpcbiAgICogVGhlIG91dHB1dHMgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIG91dHB1dHM/OiBDb21tYW5kT3V0cHV0W107XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG4gIHBhc3NUaHJvdWdoPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gaXNvbGF0ZSBycGMgcGF0aHMuXG4gICAqXG4gICAqIC9ycGNbL25hbWVzcGFjZV0vY29tbWFuZFxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc2NoZW1hIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHZhbGlkYXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU291cmNlTG9jYXRpb24oYTogYW55KTogYSBpcyBTb3VyY2VMb2NhdGlvbiB7XG4gIHJldHVybiAoXG4gICAgYSAmJlxuICAgIHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGEuZmlsZU5hbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICB0eXBlb2YgYS5leHBvcnROYW1lID09PSBcInN0cmluZ1wiXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBleHBvcnROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hcyB7XG4gIFtzY2hlbWFOYW1lOiBzdHJpbmddOiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1NwZWM8TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4ge1xuICAvKipcbiAgICogR2xvYmFsbHkgdW5pcXVlIElEIG9mIHRoaXMge0BsaW5rIFdvcmtmbG93fS5cbiAgICovXG4gIG5hbWU6IE5hbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGhhbmRsZXJzOiBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGUgPSBcInB1dFwiIHwgXCJjb3B5XCIgfCBcImRlbGV0ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zIGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgZXZlbnRUeXBlcz86IEJ1Y2tldE5vdGlmaWNhdGlvbkV2ZW50VHlwZVtdO1xuICAvKipcbiAgICogRmlsdGVyIG9iamVjdHMgaW4gdGhlIHN0cmVhbSBieSBwcmVmaXggb3Igc3VmZml4LlxuICAgKi9cbiAgZmlsdGVycz86IHsgcHJlZml4Pzogc3RyaW5nOyBzdWZmaXg/OiBzdHJpbmcgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJTcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgbmFtZTogTmFtZTtcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlck9wdGlvbnM7XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgLyoqXG4gICAqIEFuIE9wdGlvbmFsIHNjaGVtYSBmb3IgdGhlIGVudGl0eSB3aXRoaW4gYW4gZW50aXR5LlxuICAgKi9cbiAgYXR0cmlidXRlczogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIHN0cmVhbXM6IEVudGl0eVN0cmVhbVNwZWNbXTtcbiAgaW5kaWNlczogRW50aXR5SW5kZXhTcGVjW107XG59XG5cbmV4cG9ydCB0eXBlIEVudGl0eVN0cmVhbU9wZXJhdGlvbiA9IFwiaW5zZXJ0XCIgfCBcIm1vZGlmeVwiIHwgXCJyZW1vdmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1PcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWQsXG4gIE9wZXJhdGlvbnMgZXh0ZW5kcyBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXSA9IEVudGl0eVN0cmVhbU9wZXJhdGlvbltdXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgb3BlcmF0aW9ucz86IE9wZXJhdGlvbnM7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHRoZSBvbGQgdmFsdWUgd2lsbCBiZSBzZW50IHdpdGggdGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIGluY2x1ZGVPbGQ/OiBib29sZWFuO1xuICAvKipcbiAgICogT25lIG9yIG1vcmUga2V5IHF1ZXJpZXMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBzdHJlYW0uXG4gICAqL1xuICBxdWVyeUtleXM/OiBTdHJlYW1RdWVyeUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBFbnRpdHlDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIEVudGl0eUNvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgRW50aXR5Q29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IHtcbiAgbmFtZTogTmFtZTtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4U3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIG5hbWU6IE5hbWU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBwYXJ0aXRpb24/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG4gIHNvcnQ/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgbmFtZTogTmFtZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudE1hbmlmZXN0IHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgc2VydmljZVNwZWM6IFNlcnZpY2VTcGVjO1xuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XG59XG4iXX0=
{
"name": "@eventual/core",
"version": "0.40.0",
"version": "0.40.1",
"exports": {

@@ -5,0 +5,0 @@ ".": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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