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

@squiz/dxp-ai-client

Package Overview
Dependencies
Maintainers
51
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@squiz/dxp-ai-client - npm Package Compare versions

Comparing version 0.1.4 to 0.2.0

6

CHANGELOG.md
# @squiz/dxp-ai-client
## 0.2.0
### Minor Changes
- 3f818c9: Added options to filter generative/chatbot AI instances by tags or enabled properties.
## 0.1.4

@@ -4,0 +10,0 @@

16

dist/generated/DxpAiService.d.ts

@@ -7,7 +7,10 @@ export type AiAuthType = 'none' | 'dxp';

export type AiTypeGenerative = 'generative';
export type ChatBotWrite = PickAiAuthTypeOrInstructionOrResponseTemplateOrNameOrTypeOrEnabled & {
export type AiWrite = PickAiAuthTypeOrInstructionOrResponseTemplateOrNameOrTypeOrEnabled & {
tags?: string[];
};
export type ChatBotWrite = AiWrite & {
type: AiTypeChatbot;
};
export type Direction = 'forwards' | 'backwards';
export type GenerativeWrite = PickAiAuthTypeOrInstructionOrResponseTemplateOrNameOrTypeOrEnabled & {
export type GenerativeWrite = AiWrite & {
authType: AiAuthTypeDxp;

@@ -19,3 +22,5 @@ type: AiTypeGenerative;

direction?: Direction;
enabled?: boolean;
pageSize?: PaginationPageLimit;
tags?: string[];
}

@@ -25,3 +30,5 @@ export interface ListParams2 {

direction?: Direction;
enabled?: boolean;
pageSize?: PaginationPageLimit;
tags?: string[];
}

@@ -55,2 +62,3 @@ export type OmitAiFlowIdOrTenant = PickAiExcludeKeysFlowIdOrTenant;

responseTemplate: string;
tags: string[];
type: AiType;

@@ -89,3 +97,5 @@ }

direction?: Direction;
enabled?: boolean;
pageSize?: PaginationPageLimit;
tags?: string[];
};

@@ -137,3 +147,5 @@ type RequestBody = never;

direction?: Direction;
enabled?: boolean;
pageSize?: PaginationPageLimit;
tags?: string[];
};

@@ -140,0 +152,0 @@ type RequestBody = never;

2

dist/generated/DxpAiService.js

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

exports.Api = Api;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHhwQWlTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNFNBLElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQix3Q0FBeUIsQ0FBQTtJQUN6QiwrQ0FBZ0MsQ0FBQTtJQUNoQywrREFBZ0QsQ0FBQTtJQUNoRCxrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsV0FBVywyQkFBWCxXQUFXLFFBS3RCO0FBRUQsTUFBYSxVQUFVO0lBQ2QsT0FBTyxHQUFXLEdBQUcsQ0FBQztJQUNyQixZQUFZLEdBQTRCLElBQUksQ0FBQztJQUM3QyxjQUFjLENBQWlEO0lBQy9ELGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0lBQzNELFdBQVcsR0FBRyxDQUFDLEdBQUcsV0FBcUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFFbEYsYUFBYSxHQUFrQjtRQUNyQyxXQUFXLEVBQUUsYUFBYTtRQUMxQixPQUFPLEVBQUUsRUFBRTtRQUNYLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGNBQWMsRUFBRSxhQUFhO0tBQzlCLENBQUM7SUFFRixZQUFZLFlBQXlDLEVBQUU7UUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWUsR0FBRyxDQUFDLElBQTZCLEVBQUUsRUFBRTtRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNoRCxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxPQUFPLEdBQUcsVUFBVSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFD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SSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7S0FDTCxDQUFDO0NBQ0g7QUFyTUQsa0JBcU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAjIyBUSElTIEZJTEUgV0FTIEdFTkVSQVRFRCBWSUEgU1dBR0dFUi1UWVBFU0NSSVBULUFQSSAgICAgICAgIyNcbiAqICMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjI1xuICogIyMgQVVUSE9SOiBhY2Fjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjXG4gKiAjIyBTT1VSQ0U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hY2Fjb2RlL3N3YWdnZXItdHlwZXNjcmlwdC1hcGkgIyNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmV4cG9ydCB0eXBlIEFpQXV0aFR5cGUgPSAnbm9uZScgfCAnZHhwJztcblxuZXhwb3J0IHR5cGUgQWlBdXRoVHlwZUR4cCA9ICdkeHAnO1xuXG5leHBvcnQgdHlwZSBBaVJlc3BvbnNlID0gT21pdEFpRmxvd0lkT3JUZW5hbnQ7XG5cbmV4cG9ydCB0eXBlIEFpVHlwZSA9ICdnZW5lcmF0aXZlJyB8ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlQ2hhdGJvdCA9ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlR2VuZXJhdGl2ZSA9ICdnZW5lcmF0aXZlJztcblxuZXhwb3J0IHR5cGUgQ2hhdEJvdFdyaXRlID0gUGlja0FpQXV0aFR5cGVPckluc3RydWN0aW9uT3JSZXNwb25zZVRlbXBsYXRlT3JOYW1lT3JUeXBlT3JFbmFibGVkICYge1xuICB0eXBlOiBBaVR5cGVDaGF0Ym90O1xufTtcblxuZXhwb3J0IHR5cGUgRGlyZWN0aW9uID0gJ2ZvcndhcmRzJyB8ICdiYWNrd2FyZHMnO1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0aXZlV3JpdGUgPSBQaWNrQWlBdXRoVHlwZU9ySW5zdHJ1Y3Rpb25PclJlc3BvbnNlVGVtcGxhdGVPck5hbWVPclR5cGVPckVuYWJsZWQgJiB7XG4gIGF1dGhUeXBlOiBBaUF1dGhUeXBlRHhwO1xuICB0eXBlOiBBaVR5cGVHZW5lcmF0aXZlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zIHtcbiAgY3Vyc29yPzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gIHBhZ2VTaXplPzogUGFnaW5hdGlvblBhZ2VMaW1pdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zMiB7XG4gIGN1cnNvcj86IHN0cmluZztcbiAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuICBwYWdlU2l6ZT86IFBhZ2luYXRpb25QYWdlTGltaXQ7XG59XG5cbi8qKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggdGhlIHByb3BlcnRpZXMgb2YgVCBleGNlcHQgZm9yIHRob3NlIGluIHR5cGUgSy4gKi9cbmV4cG9ydCB0eXBlIE9taXRBaUZsb3dJZE9yVGVuYW50ID0gUGlja0FpRXhjbHVkZUtleXNGbG93SWRPclRlbmFudDtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlUmVzdWx0QWlSZXNwb25zZSB7XG4gIGl0ZW1zOiBBaVJlc3BvbnNlW107XG4gIGxpbmtzPzoge1xuICAgIG5leHRQYWdlPzogc3RyaW5nO1xuICAgIHByZXZQYWdlPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uUGFnZUxpbWl0ID0gMjAgfCA1MCB8IDEwMDtcblxuLyoqIEZyb20gVCwgcGljayBhIHNldCBvZiBwcm9wZXJ0aWVzIHdob3NlIGtleXMgYXJlIGluIHRoZSB1bmlvbiBLICovXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tBaUF1dGhUeXBlT3JJbnN0cnVjdGlvbk9yUmVzcG9uc2VUZW1wbGF0ZU9yTmFtZU9yVHlwZU9yRW5hYmxlZCB7XG4gIGF1dGhUeXBlOiBBaUF1dGhUeXBlO1xuICBlbmFibGVkOiBib29sZWFuO1xuICBpbnN0cnVjdGlvbjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHJlc3BvbnNlVGVtcGxhdGU6IHN0cmluZztcbiAgdHlwZTogQWlUeXBlO1xufVxuXG4vKiogRnJvbSBULCBwaWNrIGEgc2V0IG9mIHByb3BlcnRpZXMgd2hvc2Uga2V5cyBhcmUgaW4gdGhlIHVuaW9uIEsgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0FpRXhjbHVkZUtleXNGbG93SWRPclRlbmFudCB7XG4gIGF1dGhUeXBlOiBBaUF1dGhUeXBlO1xuICBlbmFibGVkOiBib29sZWFuO1xuICBpZDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICBuZWdhdGl2ZUNvdW50OiBudW1iZXI7XG4gIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICBvdmVyYWxsQ291bnQ6IG51bWJlcjtcbiAgLyoqIEBmb3JtYXQgZG91YmxlICovXG4gIHBvc2l0aXZlQ291bnQ6IG51bWJlcjtcbiAgcmVzcG9uc2VUZW1wbGF0ZTogc3RyaW5nO1xuICB0eXBlOiBBaVR5cGU7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2hhdGJvdCB7XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIENyZWF0ZVxuICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIENyZWF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBEZWxldGVcbiAgICogQHJlcXVlc3QgREVMRVRFOi9jaGF0Ym90L3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgRGVsZXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSB2b2lkO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIEdldFxuICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIHBhZ2VTaXplPzogUGFnaW5hdGlvblBhZ2VMaW1pdDtcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBQYWdlUmVzdWx0QWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBVcGRhdGVcbiAgICogQHJlcXVlc3QgUFVUOi9jaGF0Ym90L3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFVwZGF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IENoYXRCb3RXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBHZW5lcmF0aXZlIHtcbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgQ3JlYXRlXG4gICAqIEByZXF1ZXN0IFBPU1Q6L2dlbmVyYXRpdmVcbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMWAgYEFpUmVzcG9uc2VgIENyZWF0ZWRcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgQ3JlYXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBHZW5lcmF0aXZlV3JpdGU7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAqIEBuYW1lIERlbGV0ZVxuICAgKiBAcmVxdWVzdCBERUxFVEU6L2dlbmVyYXRpdmUve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjA0YCBgdm9pZGAgTm8gY29udGVudFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBEZWxldGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IHZvaWQ7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgR2V0XG4gICAqIEByZXF1ZXN0IEdFVDovZ2VuZXJhdGl2ZS97aWR9XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBBaVJlc3BvbnNlYCBPa1xuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBHZXQge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgTGlzdFxuICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmVcbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYFBhZ2VSZXN1bHRBaVJlc3BvbnNlYCBPa1xuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBMaXN0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge1xuICAgICAgY3Vyc29yPzogc3RyaW5nO1xuICAgICAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAqIEBuYW1lIFVwZGF0ZVxuICAgKiBAcmVxdWVzdCBQVVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgVXBkYXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gR2VuZXJhdGl2ZVdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBRdWVyeVBhcmFtc1R5cGUgPSBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBhbnk+O1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VGb3JtYXQgPSBrZXlvZiBPbWl0PEJvZHksICdib2R5JyB8ICdib2R5VXNlZCc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxSZXF1ZXN0UGFyYW1zIGV4dGVuZHMgT21pdDxSZXF1ZXN0SW5pdCwgJ2JvZHknPiB7XG4gIC8qKiBzZXQgcGFyYW1ldGVyIHRvIGB0cnVlYCBmb3IgY2FsbCBgc2VjdXJpdHlXb3JrZXJgIGZvciB0aGlzIHJlcXVlc3QgKi9cbiAgc2VjdXJlPzogYm9vbGVhbjtcbiAgLyoqIHJlcXVlc3QgcGF0aCAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiBjb250ZW50IHR5cGUgb2YgcmVxdWVzdCBib2R5ICovXG4gIHR5cGU/OiBDb250ZW50VHlwZTtcbiAgLyoqIHF1ZXJ5IHBhcmFtcyAqL1xuICBxdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZTtcbiAgLyoqIGZvcm1hdCBvZiByZXNwb25zZSAoaS5lLiByZXNwb25zZS5qc29uKCkgLT4gZm9ybWF0OiBcImpzb25cIikgKi9cbiAgZm9ybWF0PzogUmVzcG9uc2VGb3JtYXQ7XG4gIC8qKiByZXF1ZXN0IGJvZHkgKi9cbiAgYm9keT86IHVua25vd247XG4gIC8qKiBiYXNlIHVybCAqL1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICAvKiogcmVxdWVzdCBjYW5jZWxsYXRpb24gdG9rZW4gKi9cbiAgY2FuY2VsVG9rZW4/OiBDYW5jZWxUb2tlbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IE9taXQ8RnVsbFJlcXVlc3RQYXJhbXMsICdib2R5JyB8ICdtZXRob2QnIHwgJ3F1ZXJ5JyB8ICdwYXRoJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpQ29uZmlnPFNlY3VyaXR5RGF0YVR5cGUgPSB1bmtub3duPiB7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGJhc2VBcGlQYXJhbXM/OiBPbWl0PFJlcXVlc3RQYXJhbXMsICdiYXNlVXJsJyB8ICdjYW5jZWxUb2tlbicgfCAnc2lnbmFsJz47XG4gIHNlY3VyaXR5V29ya2VyPzogKHNlY3VyaXR5RGF0YTogU2VjdXJpdHlEYXRhVHlwZSB8IG51bGwpID0+IFByb21pc2U8UmVxdWVzdFBhcmFtcyB8IHZvaWQ+IHwgUmVxdWVzdFBhcmFtcyB8IHZvaWQ7XG4gIGN1c3RvbUZldGNoPzogdHlwZW9mIGZldGNoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXNwb25zZTxEIGV4dGVuZHMgdW5rbm93biwgRSBleHRlbmRzIHVua25vd24gPSB1bmtub3duPiBleHRlbmRzIFJlc3BvbnNlIHtcbiAgZGF0YTogRDtcbiAgZXJyb3I6IEU7XG59XG5cbnR5cGUgQ2FuY2VsVG9rZW4gPSBTeW1ib2wgfCBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBlbnVtIENvbnRlbnRUeXBlIHtcbiAgSnNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgRm9ybURhdGEgPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gIFVybEVuY29kZWQgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgVGV4dCA9ICd0ZXh0L3BsYWluJyxcbn1cblxuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnQ8U2VjdXJpdHlEYXRhVHlwZSA9IHVua25vd24+IHtcbiAgcHVibGljIGJhc2VVcmw6IHN0cmluZyA9ICcvJztcbiAgcHJpdmF0ZSBzZWN1cml0eURhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZWN1cml0eVdvcmtlcj86IEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlPlsnc2VjdXJpdHlXb3JrZXInXTtcbiAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXJzID0gbmV3IE1hcDxDYW5jZWxUb2tlbiwgQWJvcnRDb250cm9sbGVyPigpO1xuICBwcml2YXRlIGN1c3RvbUZldGNoID0gKC4uLmZldGNoUGFyYW1zOiBQYXJhbWV0ZXJzPHR5cGVvZiBmZXRjaD4pID0+IGZldGNoKC4uLmZldGNoUGFyYW1zKTtcblxuICBwcml2YXRlIGJhc2VBcGlQYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgaGVhZGVyczoge30sXG4gICAgcmVkaXJlY3Q6ICdmb2xsb3cnLFxuICAgIHJlZmVycmVyUG9saWN5OiAnbm8tcmVmZXJyZXInLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKGFwaUNvbmZpZzogQXBpQ29uZmlnPFNlY3VyaXR5RGF0YVR5cGU+ID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGFwaUNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2VjdXJpdHlEYXRhID0gKGRhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsKSA9PiB7XG4gICAgdGhpcy5zZWN1cml0eURhdGEgPSBkYXRhO1xuICB9O1xuXG4gIHByb3RlY3RlZCBlbmNvZGVRdWVyeVBhcmFtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgZW5jb2RlZEtleSA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuICAgIHJldHVybiBgJHtlbmNvZGVkS2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gdmFsdWUgOiBgJHt2YWx1ZX1gKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFF1ZXJ5UGFyYW0ocXVlcnk6IFF1ZXJ5UGFyYW1zVHlwZSwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVRdWVyeVBhcmFtKGtleSwgcXVlcnlba2V5XSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkQXJyYXlRdWVyeVBhcmFtKHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsIGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgdmFsdWUgPSBxdWVyeVtrZXldO1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKHY6IGFueSkgPT4gdGhpcy5lbmNvZGVRdWVyeVBhcmFtKGtleSwgdikpLmpvaW4oJyYnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b1F1ZXJ5U3RyaW5nKHJhd1F1ZXJ5PzogUXVlcnlQYXJhbXNUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBxdWVyeSA9IHJhd1F1ZXJ5IHx8IHt9O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhxdWVyeSkuZmlsdGVyKChrZXkpID0+ICd1bmRlZmluZWQnICE9PSB0eXBlb2YgcXVlcnlba2V5XSk7XG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5tYXAoKGtleSkgPT4gKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkgPyB0aGlzLmFkZEFycmF5UXVlcnlQYXJhbShxdWVyeSwga2V5KSA6IHRoaXMuYWRkUXVlcnlQYXJhbShxdWVyeSwga2V5KSkpXG4gICAgICAuam9pbignJicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFF1ZXJ5UGFyYW1zKHJhd1F1ZXJ5PzogUXVlcnlQYXJhbXNUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHRoaXMudG9RdWVyeVN0cmluZyhyYXdRdWVyeSk7XG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgY29udGVudEZvcm1hdHRlcnM6IFJlY29yZDxDb250ZW50VHlwZSwgKGlucHV0OiBhbnkpID0+IGFueT4gPSB7XG4gICAgW0NvbnRlbnRUeXBlLkpzb25dOiAoaW5wdXQ6IGFueSkgPT5cbiAgICAgIGlucHV0ICE9PSBudWxsICYmICh0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpID8gSlNPTi5zdHJpbmdpZnkoaW5wdXQpIDogaW5wdXQsXG4gICAgW0NvbnRlbnRUeXBlLlRleHRdOiAoaW5wdXQ6IGFueSkgPT4gKGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgPyBKU09OLnN0cmluZ2lmeShpbnB1dCkgOiBpbnB1dCksXG4gICAgW0NvbnRlbnRUeXBlLkZvcm1EYXRhXTogKGlucHV0OiBhbnkpID0+XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dCB8fCB7fSkucmVkdWNlKChmb3JtRGF0YSwga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gaW5wdXRba2V5XTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBwcm9wZXJ0eSBpbnN0YW5jZW9mIEJsb2JcbiAgICAgICAgICAgID8gcHJvcGVydHlcbiAgICAgICAgICAgIDogdHlwZW9mIHByb3BlcnR5ID09PSAnb2JqZWN0JyAmJiBwcm9wZXJ0eSAhPT0gbnVsbFxuICAgICAgICAgICAgPyBKU09OLnN0cmluZ2lmeShwcm9wZXJ0eSlcbiAgICAgICAgICAgIDogYCR7cHJvcGVydHl9YCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhO1xuICAgICAgfSwgbmV3IEZvcm1EYXRhKCkpLFxuICAgIFtDb250ZW50VHlwZS5VcmxFbmNvZGVkXTogKGlucHV0OiBhbnkpID0+IHRoaXMudG9RdWVyeVN0cmluZyhpbnB1dCksXG4gIH07XG5cbiAgcHJvdGVjdGVkIG1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMxOiBSZXF1ZXN0UGFyYW1zLCBwYXJhbXMyPzogUmVxdWVzdFBhcmFtcyk6IFJlcXVlc3RQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmJhc2VBcGlQYXJhbXMsXG4gICAgICAuLi5wYXJhbXMxLFxuICAgICAgLi4uKHBhcmFtczIgfHwge30pLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi4odGhpcy5iYXNlQXBpUGFyYW1zLmhlYWRlcnMgfHwge30pLFxuICAgICAgICAuLi4ocGFyYW1zMS5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKChwYXJhbXMyICYmIHBhcmFtczIuaGVhZGVycykgfHwge30pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUFib3J0U2lnbmFsID0gKGNhbmNlbFRva2VuOiBDYW5jZWxUb2tlbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAodGhpcy5hYm9ydENvbnRyb2xsZXJzLmhhcyhjYW5jZWxUb2tlbikpIHtcbiAgICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IHRoaXMuYWJvcnRDb250cm9sbGVycy5nZXQoY2FuY2VsVG9rZW4pO1xuICAgICAgaWYgKGFib3J0Q29udHJvbGxlcikge1xuICAgICAgICByZXR1cm4gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5zZXQoY2FuY2VsVG9rZW4sIGFib3J0Q29udHJvbGxlcik7XG4gICAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gIH07XG5cbiAgcHVibGljIGFib3J0UmVxdWVzdCA9IChjYW5jZWxUb2tlbjogQ2FuY2VsVG9rZW4pID0+IHtcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSB0aGlzLmFib3J0Q29udHJvbGxlcnMuZ2V0KGNhbmNlbFRva2VuKTtcblxuICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXJzLmRlbGV0ZShjYW5jZWxUb2tlbik7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyByZXF1ZXN0ID0gYXN5bmMgPFQgPSBhbnksIEUgPSBhbnk+KHtcbiAgICBib2R5LFxuICAgIHNlY3VyZSxcbiAgICBwYXRoLFxuICAgIHR5cGUsXG4gICAgcXVlcnksXG4gICAgZm9ybWF0LFxuICAgIGJhc2VVcmwsXG4gICAgY2FuY2VsVG9rZW4sXG4gICAgLi4ucGFyYW1zXG4gIH06IEZ1bGxSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgY29uc3Qgc2VjdXJlUGFyYW1zID1cbiAgICAgICgodHlwZW9mIHNlY3VyZSA9PT0gJ2Jvb2xlYW4nID8gc2VjdXJlIDogdGhpcy5iYXNlQXBpUGFyYW1zLnNlY3VyZSkgJiZcbiAgICAgICAgdGhpcy5zZWN1cml0eVdvcmtlciAmJlxuICAgICAgICAoYXdhaXQgdGhpcy5zZWN1cml0eVdvcmtlcih0aGlzLnNlY3VyaXR5RGF0YSkpKSB8fFxuICAgICAge307XG4gICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IHRoaXMubWVyZ2VSZXF1ZXN0UGFyYW1zKHBhcmFtcywgc2VjdXJlUGFyYW1zKTtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5ICYmIHRoaXMudG9RdWVyeVN0cmluZyhxdWVyeSk7XG4gICAgY29uc3QgcGF5bG9hZEZvcm1hdHRlciA9IHRoaXMuY29udGVudEZvcm1hdHRlcnNbdHlwZSB8fCBDb250ZW50VHlwZS5Kc29uXTtcbiAgICBjb25zdCByZXNwb25zZUZvcm1hdCA9IGZvcm1hdCB8fCByZXF1ZXN0UGFyYW1zLmZvcm1hdDtcblxuICAgIHJldHVybiB0aGlzLmN1c3RvbUZldGNoKGAke2Jhc2VVcmwgfHwgdGhpcy5iYXNlVXJsIHx8ICcnfSR7cGF0aH0ke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gLCB7XG4gICAgICAuLi5yZXF1ZXN0UGFyYW1zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi4ocmVxdWVzdFBhcmFtcy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKHR5cGUgJiYgdHlwZSAhPT0gQ29udGVudFR5cGUuRm9ybURhdGEgPyB7ICdDb250ZW50LVR5cGUnOiB0eXBlIH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgc2lnbmFsOiAoY2FuY2VsVG9rZW4gPyB0aGlzLmNyZWF0ZUFib3J0U2lnbmFsKGNhbmNlbFRva2VuKSA6IHJlcXVlc3RQYXJhbXMuc2lnbmFsKSB8fCBudWxsLFxuICAgICAgYm9keTogdHlwZW9mIGJvZHkgPT09ICd1bmRlZmluZWQnIHx8IGJvZHkgPT09IG51bGwgPyBudWxsIDogcGF5bG9hZEZvcm1hdHRlcihib2R5KSxcbiAgICB9KS50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgY29uc3QgciA9IHJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZTxULCBFPjtcbiAgICAgIHIuZGF0YSA9IG51bGwgYXMgdW5rbm93biBhcyBUO1xuICAgICAgci5lcnJvciA9IG51bGwgYXMgdW5rbm93biBhcyBFO1xuXG4gICAgICBjb25zdCBkYXRhID0gIXJlc3BvbnNlRm9ybWF0XG4gICAgICAgID8gclxuICAgICAgICA6IGF3YWl0IHJlc3BvbnNlW3Jlc3BvbnNlRm9ybWF0XSgpXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoci5vaykge1xuICAgICAgICAgICAgICAgIHIuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgci5lcnJvciA9IGRhdGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgIHIuZXJyb3IgPSBlO1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoY2FuY2VsVG9rZW4pIHtcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXJzLmRlbGV0ZShjYW5jZWxUb2tlbik7XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IGRhdGE7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIEB0aXRsZSBAc3F1aXovYWktc2VydmljZVxuICogQHZlcnNpb24gMC4yLjJcbiAqIEBsaWNlbnNlIElTQ1xuICogQGJhc2VVcmwgL1xuICogQGNvbnRhY3RcbiAqL1xuZXhwb3J0IGNsYXNzIEFwaTxTZWN1cml0eURhdGFUeXBlIGV4dGVuZHMgdW5rbm93bj4ge1xuICBodHRwOiBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGU+O1xuXG4gIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQ8U2VjdXJpdHlEYXRhVHlwZT4pIHtcbiAgICB0aGlzLmh0dHAgPSBodHRwO1xuICB9XG5cbiAgY2hhdGJvdCA9IHtcbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIENyZWF0ZVxuICAgICAqIEByZXF1ZXN0IFBPU1Q6L2NoYXRib3RcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAgICovXG4gICAgY3JlYXRlOiAoZGF0YTogQ2hhdEJvdFdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3RgLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICB0eXBlOiBDb250ZW50VHlwZS5Kc29uLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIERlbGV0ZVxuICAgICAqIEByZXF1ZXN0IERFTEVURTovY2hhdGJvdC97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjA0YCBgdm9pZGAgTm8gY29udGVudFxuICAgICAqL1xuICAgIGRlbGV0ZTogKGlkOiBzdHJpbmcsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8dm9pZCwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvY2hhdGJvdC8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIEdldFxuICAgICAqIEByZXF1ZXN0IEdFVDovY2hhdGJvdC97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBnZXQ6IChpZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBjaGF0Ym90XG4gICAgICogQG5hbWUgTGlzdFxuICAgICAqIEByZXF1ZXN0IEdFVDovY2hhdGJvdFxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYFBhZ2VSZXN1bHRBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIGxpc3Q6IChxdWVyeTogTGlzdFBhcmFtcywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxQYWdlUmVzdWx0QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvY2hhdGJvdGAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIFVwZGF0ZVxuICAgICAqIEByZXF1ZXN0IFBVVDovY2hhdGJvdC97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICB1cGRhdGU6IChpZDogc3RyaW5nLCBkYXRhOiBDaGF0Qm90V3JpdGUsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvY2hhdGJvdC8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xuICBnZW5lcmF0aXZlID0ge1xuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgQ3JlYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMWAgYEFpUmVzcG9uc2VgIENyZWF0ZWRcbiAgICAgKi9cbiAgICBjcmVhdGU6IChkYXRhOiBHZW5lcmF0aXZlV3JpdGUsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZWAsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgRGVsZXRlXG4gICAgICogQHJlcXVlc3QgREVMRVRFOi9nZW5lcmF0aXZlL3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDRgIGB2b2lkYCBObyBjb250ZW50XG4gICAgICovXG4gICAgZGVsZXRlOiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDx2b2lkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgR2V0XG4gICAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIGdldDogKGlkOiBzdHJpbmcsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBMaXN0XG4gICAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlXG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgUGFnZVJlc3VsdEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgbGlzdDogKHF1ZXJ5OiBMaXN0UGFyYW1zMiwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxQYWdlUmVzdWx0QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIFVwZGF0ZVxuICAgICAqIEByZXF1ZXN0IFBVVDovZ2VuZXJhdGl2ZS97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICB1cGRhdGU6IChpZDogc3RyaW5nLCBkYXRhOiBHZW5lcmF0aXZlV3JpdGUsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHhwQWlTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeVRBLElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQix3Q0FBeUIsQ0FBQTtJQUN6QiwrQ0FBZ0MsQ0FBQTtJQUNoQywrREFBZ0QsQ0FBQTtJQUNoRCxrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsV0FBVywyQkFBWCxXQUFXLFFBS3RCO0FBRUQsTUFBYSxVQUFVO0lBQ2QsT0FBTyxHQUFXLEdBQUcsQ0FBQztJQUNyQixZQUFZLEdBQTRCLElBQUksQ0FBQztJQUM3QyxjQUFjLENBQWlEO0lBQy9ELGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0lBQzNELFdBQVcsR0FBRyxDQUFDLEdBQUcsV0FBcUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFFbEYsYUFBYSxHQUFrQjtRQUNyQyxXQUFXLEVBQUUsYUFBYTtRQUMxQixPQUFPLEVBQUUsRUFBRTtRQUNYLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGNBQWMsRUFBRSxhQUFhO0tBQzlCLENBQUM7SUFFRixZQUFZLFlBQXlDLEVBQUU7UUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWUsR0FBRyxDQUFDLElBQTZCLEVBQUUsRUFBRTtRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNoRCxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxPQUFPLEdBQUcsVUFBVSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFD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SSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7S0FDTCxDQUFDO0NBQ0g7QUFyTUQsa0JBcU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAjIyBUSElTIEZJTEUgV0FTIEdFTkVSQVRFRCBWSUEgU1dBR0dFUi1UWVBFU0NSSVBULUFQSSAgICAgICAgIyNcbiAqICMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjI1xuICogIyMgQVVUSE9SOiBhY2Fjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjXG4gKiAjIyBTT1VSQ0U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hY2Fjb2RlL3N3YWdnZXItdHlwZXNjcmlwdC1hcGkgIyNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmV4cG9ydCB0eXBlIEFpQXV0aFR5cGUgPSAnbm9uZScgfCAnZHhwJztcblxuZXhwb3J0IHR5cGUgQWlBdXRoVHlwZUR4cCA9ICdkeHAnO1xuXG5leHBvcnQgdHlwZSBBaVJlc3BvbnNlID0gT21pdEFpRmxvd0lkT3JUZW5hbnQ7XG5cbmV4cG9ydCB0eXBlIEFpVHlwZSA9ICdnZW5lcmF0aXZlJyB8ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlQ2hhdGJvdCA9ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlR2VuZXJhdGl2ZSA9ICdnZW5lcmF0aXZlJztcblxuZXhwb3J0IHR5cGUgQWlXcml0ZSA9IFBpY2tBaUF1dGhUeXBlT3JJbnN0cnVjdGlvbk9yUmVzcG9uc2VUZW1wbGF0ZU9yTmFtZU9yVHlwZU9yRW5hYmxlZCAmIHtcbiAgdGFncz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhdEJvdFdyaXRlID0gQWlXcml0ZSAmIHtcbiAgdHlwZTogQWlUeXBlQ2hhdGJvdDtcbn07XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbiA9ICdmb3J3YXJkcycgfCAnYmFja3dhcmRzJztcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGl2ZVdyaXRlID0gQWlXcml0ZSAmIHtcbiAgYXV0aFR5cGU6IEFpQXV0aFR5cGVEeHA7XG4gIHR5cGU6IEFpVHlwZUdlbmVyYXRpdmU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICBjdXJzb3I/OiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHBhZ2VTaXplPzogUGFnaW5hdGlvblBhZ2VMaW1pdDtcbiAgdGFncz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMyIHtcbiAgY3Vyc29yPzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBwYWdlU2l6ZT86IFBhZ2luYXRpb25QYWdlTGltaXQ7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqIENvbnN0cnVjdCBhIHR5cGUgd2l0aCB0aGUgcHJvcGVydGllcyBvZiBUIGV4Y2VwdCBmb3IgdGhvc2UgaW4gdHlwZSBLLiAqL1xuZXhwb3J0IHR5cGUgT21pdEFpRmxvd0lkT3JUZW5hbnQgPSBQaWNrQWlFeGNsdWRlS2V5c0Zsb3dJZE9yVGVuYW50O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXN1bHRBaVJlc3BvbnNlIHtcbiAgaXRlbXM6IEFpUmVzcG9uc2VbXTtcbiAgbGlua3M/OiB7XG4gICAgbmV4dFBhZ2U/OiBzdHJpbmc7XG4gICAgcHJldlBhZ2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25QYWdlTGltaXQgPSAyMCB8IDUwIHwgMTAwO1xuXG4vKiogRnJvbSBULCBwaWNrIGEgc2V0IG9mIHByb3BlcnRpZXMgd2hvc2Uga2V5cyBhcmUgaW4gdGhlIHVuaW9uIEsgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0FpQXV0aFR5cGVPckluc3RydWN0aW9uT3JSZXNwb25zZVRlbXBsYXRlT3JOYW1lT3JUeXBlT3JFbmFibGVkIHtcbiAgYXV0aFR5cGU6IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZTogc3RyaW5nO1xuICB0eXBlOiBBaVR5cGU7XG59XG5cbi8qKiBGcm9tIFQsIHBpY2sgYSBzZXQgb2YgcHJvcGVydGllcyB3aG9zZSBrZXlzIGFyZSBpbiB0aGUgdW5pb24gSyAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrQWlFeGNsdWRlS2V5c0Zsb3dJZE9yVGVuYW50IHtcbiAgYXV0aFR5cGU6IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGlkOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEBmb3JtYXQgZG91YmxlICovXG4gIG5lZ2F0aXZlQ291bnQ6IG51bWJlcjtcbiAgLyoqIEBmb3JtYXQgZG91YmxlICovXG4gIG92ZXJhbGxDb3VudDogbnVtYmVyO1xuICAvKiogQGZvcm1hdCBkb3VibGUgKi9cbiAgcG9zaXRpdmVDb3VudDogbnVtYmVyO1xuICByZXNwb25zZVRlbXBsYXRlOiBzdHJpbmc7XG4gIHRhZ3M6IHN0cmluZ1tdO1xuICB0eXBlOiBBaVR5cGU7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2hhdGJvdCB7XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIENyZWF0ZVxuICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIENyZWF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBEZWxldGVcbiAgICogQHJlcXVlc3QgREVMRVRFOi9jaGF0Ym90L3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgRGVsZXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSB2b2lkO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIEdldFxuICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgdGFncz86IHN0cmluZ1tdO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIFVwZGF0ZVxuICAgKiBAcmVxdWVzdCBQVVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgVXBkYXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEdlbmVyYXRpdmUge1xuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBDcmVhdGVcbiAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBDcmVhdGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgRGVsZXRlXG4gICAqIEByZXF1ZXN0IERFTEVURTovZ2VuZXJhdGl2ZS97aWR9XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDRgIGB2b2lkYCBObyBjb250ZW50XG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIERlbGV0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gdm9pZDtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBHZXRcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIEdldCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBMaXN0XG4gICAqIEByZXF1ZXN0IEdFVDovZ2VuZXJhdGl2ZVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgUGFnZVJlc3VsdEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIExpc3Qge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7XG4gICAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gICAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICAgIHBhZ2VTaXplPzogUGFnaW5hdGlvblBhZ2VMaW1pdDtcbiAgICAgIHRhZ3M/OiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBQYWdlUmVzdWx0QWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBVcGRhdGVcbiAgICogQHJlcXVlc3QgUFVUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFVwZGF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlQYXJhbXNUeXBlID0gUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYW55PjtcbmV4cG9ydCB0eXBlIFJlc3BvbnNlRm9ybWF0ID0ga2V5b2YgT21pdDxCb2R5LCAnYm9keScgfCAnYm9keVVzZWQnPjtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsUmVxdWVzdFBhcmFtcyBleHRlbmRzIE9taXQ8UmVxdWVzdEluaXQsICdib2R5Jz4ge1xuICAvKiogc2V0IHBhcmFtZXRlciB0byBgdHJ1ZWAgZm9yIGNhbGwgYHNlY3VyaXR5V29ya2VyYCBmb3IgdGhpcyByZXF1ZXN0ICovXG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIC8qKiByZXF1ZXN0IHBhdGggKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogY29udGVudCB0eXBlIG9mIHJlcXVlc3QgYm9keSAqL1xuICB0eXBlPzogQ29udGVudFR5cGU7XG4gIC8qKiBxdWVyeSBwYXJhbXMgKi9cbiAgcXVlcnk/OiBRdWVyeVBhcmFtc1R5cGU7XG4gIC8qKiBmb3JtYXQgb2YgcmVzcG9uc2UgKGkuZS4gcmVzcG9uc2UuanNvbigpIC0+IGZvcm1hdDogXCJqc29uXCIpICovXG4gIGZvcm1hdD86IFJlc3BvbnNlRm9ybWF0O1xuICAvKiogcmVxdWVzdCBib2R5ICovXG4gIGJvZHk/OiB1bmtub3duO1xuICAvKiogYmFzZSB1cmwgKi9cbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqIHJlcXVlc3QgY2FuY2VsbGF0aW9uIHRva2VuICovXG4gIGNhbmNlbFRva2VuPzogQ2FuY2VsVG9rZW47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSBPbWl0PEZ1bGxSZXF1ZXN0UGFyYW1zLCAnYm9keScgfCAnbWV0aG9kJyB8ICdxdWVyeScgfCAncGF0aCc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlID0gdW5rbm93bj4ge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBiYXNlQXBpUGFyYW1zPzogT21pdDxSZXF1ZXN0UGFyYW1zLCAnYmFzZVVybCcgfCAnY2FuY2VsVG9rZW4nIHwgJ3NpZ25hbCc+O1xuICBzZWN1cml0eVdvcmtlcj86IChzZWN1cml0eURhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsKSA9PiBQcm9taXNlPFJlcXVlc3RQYXJhbXMgfCB2b2lkPiB8IFJlcXVlc3RQYXJhbXMgfCB2b2lkO1xuICBjdXN0b21GZXRjaD86IHR5cGVvZiBmZXRjaDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2U8RCBleHRlbmRzIHVua25vd24sIEUgZXh0ZW5kcyB1bmtub3duID0gdW5rbm93bj4gZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGRhdGE6IEQ7XG4gIGVycm9yOiBFO1xufVxuXG50eXBlIENhbmNlbFRva2VuID0gU3ltYm9sIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgZW51bSBDb250ZW50VHlwZSB7XG4gIEpzb24gPSAnYXBwbGljYXRpb24vanNvbicsXG4gIEZvcm1EYXRhID0gJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICBVcmxFbmNvZGVkID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gIFRleHQgPSAndGV4dC9wbGFpbicsXG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGUgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcgPSAnLyc7XG4gIHByaXZhdGUgc2VjdXJpdHlEYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VjdXJpdHlXb3JrZXI/OiBBcGlDb25maWc8U2VjdXJpdHlEYXRhVHlwZT5bJ3NlY3VyaXR5V29ya2VyJ107XG4gIHByaXZhdGUgYWJvcnRDb250cm9sbGVycyA9IG5ldyBNYXA8Q2FuY2VsVG9rZW4sIEFib3J0Q29udHJvbGxlcj4oKTtcbiAgcHJpdmF0ZSBjdXN0b21GZXRjaCA9ICguLi5mZXRjaFBhcmFtczogUGFyYW1ldGVyczx0eXBlb2YgZmV0Y2g+KSA9PiBmZXRjaCguLi5mZXRjaFBhcmFtcyk7XG5cbiAgcHJpdmF0ZSBiYXNlQXBpUGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge1xuICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgIGhlYWRlcnM6IHt9LFxuICAgIHJlZGlyZWN0OiAnZm9sbG93JyxcbiAgICByZWZlcnJlclBvbGljeTogJ25vLXJlZmVycmVyJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihhcGlDb25maWc6IEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlPiA9IHt9KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcGlDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHNldFNlY3VyaXR5RGF0YSA9IChkYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCkgPT4ge1xuICAgIHRoaXMuc2VjdXJpdHlEYXRhID0gZGF0YTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZW5jb2RlUXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGVuY29kZWRLZXkgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICByZXR1cm4gYCR7ZW5jb2RlZEtleX09JHtlbmNvZGVVUklDb21wb25lbnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogYCR7dmFsdWV9YCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtKHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHF1ZXJ5W2tleV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZEFycmF5UXVlcnlQYXJhbShxdWVyeTogUXVlcnlQYXJhbXNUeXBlLCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICByZXR1cm4gdmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHYpKS5qb2luKCcmJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9RdWVyeVN0cmluZyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnkgPSByYXdRdWVyeSB8fCB7fTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocXVlcnkpLmZpbHRlcigoa2V5KSA9PiAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIHF1ZXJ5W2tleV0pO1xuICAgIHJldHVybiBrZXlzXG4gICAgICAubWFwKChrZXkpID0+IChBcnJheS5pc0FycmF5KHF1ZXJ5W2tleV0pID8gdGhpcy5hZGRBcnJheVF1ZXJ5UGFyYW0ocXVlcnksIGtleSkgOiB0aGlzLmFkZFF1ZXJ5UGFyYW0ocXVlcnksIGtleSkpKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtcyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLnRvUXVlcnlTdHJpbmcocmF3UXVlcnkpO1xuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGNvbnRlbnRGb3JtYXR0ZXJzOiBSZWNvcmQ8Q29udGVudFR5cGUsIChpbnB1dDogYW55KSA9PiBhbnk+ID0ge1xuICAgIFtDb250ZW50VHlwZS5Kc29uXTogKGlucHV0OiBhbnkpID0+XG4gICAgICBpbnB1dCAhPT0gbnVsbCAmJiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSA/IEpTT04uc3RyaW5naWZ5KGlucHV0KSA6IGlucHV0LFxuICAgIFtDb250ZW50VHlwZS5UZXh0XTogKGlucHV0OiBhbnkpID0+IChpbnB1dCAhPT0gbnVsbCAmJiB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnID8gSlNPTi5zdHJpbmdpZnkoaW5wdXQpIDogaW5wdXQpLFxuICAgIFtDb250ZW50VHlwZS5Gb3JtRGF0YV06IChpbnB1dDogYW55KSA9PlxuICAgICAgT2JqZWN0LmtleXMoaW5wdXQgfHwge30pLnJlZHVjZSgoZm9ybURhdGEsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGlucHV0W2tleV07XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgcHJvcGVydHkgaW5zdGFuY2VvZiBCbG9iXG4gICAgICAgICAgICA/IHByb3BlcnR5XG4gICAgICAgICAgICA6IHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ29iamVjdCcgJiYgcHJvcGVydHkgIT09IG51bGxcbiAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocHJvcGVydHkpXG4gICAgICAgICAgICA6IGAke3Byb3BlcnR5fWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmb3JtRGF0YTtcbiAgICAgIH0sIG5ldyBGb3JtRGF0YSgpKSxcbiAgICBbQ29udGVudFR5cGUuVXJsRW5jb2RlZF06IChpbnB1dDogYW55KSA9PiB0aGlzLnRvUXVlcnlTdHJpbmcoaW5wdXQpLFxuICB9O1xuXG4gIHByb3RlY3RlZCBtZXJnZVJlcXVlc3RQYXJhbXMocGFyYW1zMTogUmVxdWVzdFBhcmFtcywgcGFyYW1zMj86IFJlcXVlc3RQYXJhbXMpOiBSZXF1ZXN0UGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5iYXNlQXBpUGFyYW1zLFxuICAgICAgLi4ucGFyYW1zMSxcbiAgICAgIC4uLihwYXJhbXMyIHx8IHt9KSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHRoaXMuYmFzZUFwaVBhcmFtcy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKHBhcmFtczEuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLigocGFyYW1zMiAmJiBwYXJhbXMyLmhlYWRlcnMpIHx8IHt9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBYm9ydFNpZ25hbCA9IChjYW5jZWxUb2tlbjogQ2FuY2VsVG9rZW4pOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHRoaXMuYWJvcnRDb250cm9sbGVycy5oYXMoY2FuY2VsVG9rZW4pKSB7XG4gICAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSB0aGlzLmFib3J0Q29udHJvbGxlcnMuZ2V0KGNhbmNlbFRva2VuKTtcbiAgICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlcnMuc2V0KGNhbmNlbFRva2VuLCBhYm9ydENvbnRyb2xsZXIpO1xuICAgIHJldHVybiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICB9O1xuXG4gIHB1YmxpYyBhYm9ydFJlcXVlc3QgPSAoY2FuY2VsVG9rZW46IENhbmNlbFRva2VuKSA9PiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gdGhpcy5hYm9ydENvbnRyb2xsZXJzLmdldChjYW5jZWxUb2tlbik7XG5cbiAgICBpZiAoYWJvcnRDb250cm9sbGVyKSB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgcmVxdWVzdCA9IGFzeW5jIDxUID0gYW55LCBFID0gYW55Pih7XG4gICAgYm9keSxcbiAgICBzZWN1cmUsXG4gICAgcGF0aCxcbiAgICB0eXBlLFxuICAgIHF1ZXJ5LFxuICAgIGZvcm1hdCxcbiAgICBiYXNlVXJsLFxuICAgIGNhbmNlbFRva2VuLFxuICAgIC4uLnBhcmFtc1xuICB9OiBGdWxsUmVxdWVzdFBhcmFtcyk6IFByb21pc2U8VD4gPT4ge1xuICAgIGNvbnN0IHNlY3VyZVBhcmFtcyA9XG4gICAgICAoKHR5cGVvZiBzZWN1cmUgPT09ICdib29sZWFuJyA/IHNlY3VyZSA6IHRoaXMuYmFzZUFwaVBhcmFtcy5zZWN1cmUpICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlXb3JrZXIgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2VjdXJpdHlXb3JrZXIodGhpcy5zZWN1cml0eURhdGEpKSkgfHxcbiAgICAgIHt9O1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLm1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMsIHNlY3VyZVBhcmFtcyk7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeSAmJiB0aGlzLnRvUXVlcnlTdHJpbmcocXVlcnkpO1xuICAgIGNvbnN0IHBheWxvYWRGb3JtYXR0ZXIgPSB0aGlzLmNvbnRlbnRGb3JtYXR0ZXJzW3R5cGUgfHwgQ29udGVudFR5cGUuSnNvbl07XG4gICAgY29uc3QgcmVzcG9uc2VGb3JtYXQgPSBmb3JtYXQgfHwgcmVxdWVzdFBhcmFtcy5mb3JtYXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21GZXRjaChgJHtiYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCAnJ30ke3BhdGh9JHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YCwge1xuICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHJlcXVlc3RQYXJhbXMuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLih0eXBlICYmIHR5cGUgIT09IENvbnRlbnRUeXBlLkZvcm1EYXRhID8geyAnQ29udGVudC1UeXBlJzogdHlwZSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbDogKGNhbmNlbFRva2VuID8gdGhpcy5jcmVhdGVBYm9ydFNpZ25hbChjYW5jZWxUb2tlbikgOiByZXF1ZXN0UGFyYW1zLnNpZ25hbCkgfHwgbnVsbCxcbiAgICAgIGJvZHk6IHR5cGVvZiBib2R5ID09PSAndW5kZWZpbmVkJyB8fCBib2R5ID09PSBudWxsID8gbnVsbCA6IHBheWxvYWRGb3JtYXR0ZXIoYm9keSksXG4gICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IHIgPSByZXNwb25zZSBhcyBIdHRwUmVzcG9uc2U8VCwgRT47XG4gICAgICByLmRhdGEgPSBudWxsIGFzIHVua25vd24gYXMgVDtcbiAgICAgIHIuZXJyb3IgPSBudWxsIGFzIHVua25vd24gYXMgRTtcblxuICAgICAgY29uc3QgZGF0YSA9ICFyZXNwb25zZUZvcm1hdFxuICAgICAgICA/IHJcbiAgICAgICAgOiBhd2FpdCByZXNwb25zZVtyZXNwb25zZUZvcm1hdF0oKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHIub2spIHtcbiAgICAgICAgICAgICAgICByLmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHIuZXJyb3IgPSBkYXRhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICByLmVycm9yID0gZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKGNhbmNlbFRva2VuKSB7XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBkYXRhO1xuICAgICAgcmV0dXJuIGRhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAdGl0bGUgQHNxdWl6L2FpLXNlcnZpY2VcbiAqIEB2ZXJzaW9uIDAuMi41XG4gKiBAbGljZW5zZSBJU0NcbiAqIEBiYXNlVXJsIC9cbiAqIEBjb250YWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBcGk8U2VjdXJpdHlEYXRhVHlwZSBleHRlbmRzIHVua25vd24+IHtcbiAgaHR0cDogSHR0cENsaWVudDxTZWN1cml0eURhdGFUeXBlPjtcblxuICBjb25zdHJ1Y3RvcihodHRwOiBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGU+KSB7XG4gICAgdGhpcy5odHRwID0gaHR0cDtcbiAgfVxuXG4gIGNoYXRib3QgPSB7XG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBDcmVhdGVcbiAgICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgICAqL1xuICAgIGNyZWF0ZTogKGRhdGE6IENoYXRCb3RXcml0ZSwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBEZWxldGVcbiAgICAgKiBAcmVxdWVzdCBERUxFVEU6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICAgKi9cbiAgICBkZWxldGU6IChpZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PHZvaWQsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBHZXRcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0OiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90LyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIExpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3RcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBsaXN0OiAocXVlcnk6IExpc3RQYXJhbXMsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8UGFnZVJlc3VsdEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3RgLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBVcGRhdGVcbiAgICAgKiBAcmVxdWVzdCBQVVQ6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogQ2hhdEJvdFdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcbiAgfTtcbiAgZ2VuZXJhdGl2ZSA9IHtcbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIENyZWF0ZVxuICAgICAqIEByZXF1ZXN0IFBPU1Q6L2dlbmVyYXRpdmVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAgICovXG4gICAgY3JlYXRlOiAoZGF0YTogR2VuZXJhdGl2ZVdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmVgLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICB0eXBlOiBDb250ZW50VHlwZS5Kc29uLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIERlbGV0ZVxuICAgICAqIEByZXF1ZXN0IERFTEVURTovZ2VuZXJhdGl2ZS97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjA0YCBgdm9pZGAgTm8gY29udGVudFxuICAgICAqL1xuICAgIGRlbGV0ZTogKGlkOiBzdHJpbmcsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8dm9pZCwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIEdldFxuICAgICAqIEByZXF1ZXN0IEdFVDovZ2VuZXJhdGl2ZS97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBnZXQ6IChpZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgTGlzdFxuICAgICAqIEByZXF1ZXN0IEdFVDovZ2VuZXJhdGl2ZVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYFBhZ2VSZXN1bHRBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIGxpc3Q6IChxdWVyeTogTGlzdFBhcmFtczIsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8UGFnZVJlc3VsdEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmVgLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBVcGRhdGVcbiAgICAgKiBAcmVxdWVzdCBQVVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogR2VuZXJhdGl2ZVdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcbiAgfTtcbn1cbiJdfQ==
{
"name": "@squiz/dxp-ai-client",
"private": false,
"version": "0.1.4",
"version": "0.2.0",
"description": "Exposes the DXP AI service as a package for consumers",

@@ -19,5 +19,5 @@ "main": "dist/index.js",

"jest": "^29.7.0",
"@squiz/ai-service": "0.2.3"
"@squiz/ai-service": "0.3.0"
},
"dependencies": {}
}

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