@squiz/dxp-ai-client
Advanced tools
Comparing version 0.6.0 to 0.7.0
# @squiz/dxp-ai-client | ||
## 0.7.0 | ||
### Minor Changes | ||
- e68160d: Added integration tests + various code to support/simplify the running of the tests. | ||
## 0.6.0 | ||
@@ -4,0 +10,0 @@ |
@@ -15,2 +15,10 @@ export type AiAuthType = 'none' | 'dxp'; | ||
export type CleanedOutputFlowsGetExecutionOutputsResponseAtOutputs = OmitFlowsGetExecutionOutputsResponseAtOutputsIdOrSchemaId; | ||
export interface DeleteParams { | ||
cleanupEmptyTenant?: boolean; | ||
id: string; | ||
} | ||
export interface DeleteParams2 { | ||
cleanupEmptyTenant?: boolean; | ||
id: string; | ||
} | ||
export type Direction = 'forwards' | 'backwards'; | ||
@@ -142,3 +150,5 @@ export type FlowsGetExecutionOutputsStatusEnum = 'pending' | 'executing' | 'failed' | 'succeeded' | 'cancelled'; | ||
}; | ||
type RequestQuery = {}; | ||
type RequestQuery = { | ||
cleanupEmptyTenant?: boolean; | ||
}; | ||
type RequestBody = never; | ||
@@ -201,3 +211,5 @@ type RequestHeaders = {}; | ||
}; | ||
type RequestQuery = {}; | ||
type RequestQuery = { | ||
cleanupEmptyTenant?: boolean; | ||
}; | ||
type RequestBody = never; | ||
@@ -347,3 +359,3 @@ type RequestHeaders = {}; | ||
create: (data: ChatBotWrite, params?: RequestParams) => Promise<PickAiExcludeKeysTenantOrMetadata>; | ||
delete: (id: string, params?: RequestParams) => Promise<void>; | ||
delete: ({ id, ...query }: DeleteParams, params?: RequestParams) => Promise<void>; | ||
get: (id: string, params?: RequestParams) => Promise<PickAiExcludeKeysTenantOrMetadata>; | ||
@@ -356,3 +368,3 @@ list: (query: ListParams, params?: RequestParams) => Promise<PageResultAiResponse>; | ||
create: (data: GenerativeWrite, params?: RequestParams) => Promise<PickAiExcludeKeysTenantOrMetadata>; | ||
delete: (id: string, params?: RequestParams) => Promise<void>; | ||
delete: ({ id, ...query }: DeleteParams2, params?: RequestParams) => Promise<void>; | ||
execute: (aiId: string, flowId: GenerativeCommand, data: GenerativeExecutionPostBody, params?: RequestParams) => Promise<GenerativeExecutionPostResponse>; | ||
@@ -359,0 +371,0 @@ get: (id: string, params?: RequestParams) => Promise<PickAiExcludeKeysTenantOrMetadata>; |
@@ -158,5 +158,6 @@ "use strict"; | ||
}), | ||
delete: (id, params = {}) => this.http.request({ | ||
delete: ({ id, ...query }, params = {}) => this.http.request({ | ||
path: `/chatbot/${id}`, | ||
method: 'DELETE', | ||
query: query, | ||
secure: true, | ||
@@ -209,5 +210,6 @@ ...params, | ||
}), | ||
delete: (id, params = {}) => this.http.request({ | ||
delete: ({ id, ...query }, params = {}) => this.http.request({ | ||
path: `/generative/${id}`, | ||
method: 'DELETE', | ||
query: query, | ||
secure: true, | ||
@@ -285,2 +287,2 @@ ...params, | ||
exports.Api = Api; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHhwQWlTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbWdCQSxJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsd0NBQXlCLENBQUE7SUFDekIsK0NBQWdDLENBQUE7SUFDaEMsK0RBQWdELENBQUE7SUFDaEQsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLFdBQVcsMkJBQVgsV0FBVyxRQUt0QjtBQUVELE1BQWEsVUFBVTtJQUNkLE9BQU8sR0FBVyxHQUFHLENBQUM7SUFDckIsWUFBWSxHQUE0QixJQUFJLENBQUM7SUFDN0MsY0FBYyxDQUFpRDtJQUMvRCxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztJQUMzRCxXQUFXLEdBQUcsQ0FBQyxHQUFHLFdBQXFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBRWxGLGFBQWEsR0FBa0I7UUFDckMsV0FBVyxFQUFFLGFBQWE7UUFDMUIsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUUsUUFBUTtRQUNsQixjQUFjLEVBQUUsYUFBYTtLQUM5QixDQUFDO0lBRUYsWUFBWSxZQUF5QyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLEdBQUcsQ0FBQyxJQUE2QixFQUFFLEVBQUU7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRVEsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDaEQsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyxHQUFHLFVBQVUsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FB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Q0wsQ0FBQztDQUNIO0FBeFRELGtCQXdUQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLypcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogIyMgVEhJUyBGSUxFIFdBUyBHRU5FUkFURUQgVklBIFNXQUdHRVItVFlQRVNDUklQVC1BUEkgICAgICAgICMjXG4gKiAjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyNcbiAqICMjIEFVVEhPUjogYWNhY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjI1xuICogIyMgU09VUkNFOiBodHRwczovL2dpdGh1Yi5jb20vYWNhY29kZS9zd2FnZ2VyLXR5cGVzY3JpcHQtYXBpICMjXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5leHBvcnQgdHlwZSBBaUF1dGhUeXBlID0gJ25vbmUnIHwgJ2R4cCc7XG5cbmV4cG9ydCB0eXBlIEFpQXV0aFR5cGVEeHAgPSAnZHhwJztcblxuZXhwb3J0IHR5cGUgQWlSZXNwb25zZSA9IE9taXRBaVRlbmFudE9yTWV0YWRhdGE7XG5cbmV4cG9ydCB0eXBlIEFpVHlwZSA9ICdnZW5lcmF0aXZlJyB8ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlQ2hhdGJvdCA9ICdjaGF0Ym90JztcblxuZXhwb3J0IHR5cGUgQWlUeXBlR2VuZXJhdGl2ZSA9ICdnZW5lcmF0aXZlJztcblxuZXhwb3J0IHR5cGUgQWlXcml0ZSA9IFBpY2tBaUF1dGhUeXBlT3JJbnN0cnVjdGlvbk9yUmVzcG9uc2VUZW1wbGF0ZU9yTmFtZU9yVHlwZU9yRW5hYmxlZCAmIHtcbiAgdGFncz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhdEJvdFBhdGNoID0gUGFydGlhbENoYXRCb3RXcml0ZTtcblxuZXhwb3J0IHR5cGUgQ2hhdEJvdFdyaXRlID0gQWlXcml0ZSAmIHtcbiAgdHlwZTogQWlUeXBlQ2hhdGJvdDtcbn07XG5cbmV4cG9ydCB0eXBlIENsZWFuZWRPdXRwdXRGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0cyA9XG4gIE9taXRGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0c0lkT3JTY2hlbWFJZDtcblxuZXhwb3J0IHR5cGUgRGlyZWN0aW9uID0gJ2ZvcndhcmRzJyB8ICdiYWNrd2FyZHMnO1xuXG5leHBvcnQgdHlwZSBGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNTdGF0dXNFbnVtID0gJ3BlbmRpbmcnIHwgJ2V4ZWN1dGluZycgfCAnZmFpbGVkJyB8ICdzdWNjZWVkZWQnIHwgJ2NhbmNlbGxlZCc7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVDb21tYW5kID0gJ3Byb2Nlc3NNZXNzYWdlJyB8ICdwb3B1bGF0ZVRocmVhZFRhZ3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRpdmVFeGVjdXRpb25Qb3N0Qm9keSB7XG4gIGlucHV0czogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZSB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVQYXRjaCA9IFBhcnRpYWxHZW5lcmF0aXZlV3JpdGU7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVXcml0ZSA9IEFpV3JpdGUgJiB7XG4gIGF1dGhUeXBlOiBBaUF1dGhUeXBlRHhwO1xuICB0eXBlOiBBaVR5cGVHZW5lcmF0aXZlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkc1BhcmFtcyB7XG4gIGFpSWQ6IHN0cmluZztcbiAgLyoqIEBmb3JtYXQgZG91YmxlICovXG4gIGN1cnNvcj86IG51bWJlcjtcbiAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbkVudW07XG59XG5cbmV4cG9ydCB0eXBlIEdldEFsbEdlbmVyYXRpdmVUaHJlYWRzUGFyYW1zMVNvcnREaXJlY3Rpb25FbnVtID0gJ2FzYycgfCAnZGVzYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlIHtcbiAgZmluaXNoZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgb3V0cHV0czogQ2xlYW5lZE91dHB1dEZsb3dzR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlQXRPdXRwdXRzO1xuICBzdGFydGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHN0YXR1czogRmxvd3NHZXRFeGVjdXRpb25PdXRwdXRzU3RhdHVzRW51bTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zIHtcbiAgY3Vyc29yPzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBwYWdlU2l6ZT86IFBhZ2luYXRpb25QYWdlTGltaXQ7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zMiB7XG4gIGN1cnNvcj86IHN0cmluZztcbiAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICB0YWdzPzogc3RyaW5nW107XG59XG5cbi8qKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggdGhlIHByb3BlcnRpZXMgb2YgVCBleGNlcHQgZm9yIHRob3NlIGluIHR5cGUgSy4gKi9cbmV4cG9ydCB0eXBlIE9taXRBaVRlbmFudE9yTWV0YWRhdGEgPSBQaWNrQWlFeGNsdWRlS2V5c1RlbmFudE9yTWV0YWRhdGE7XG5cbi8qKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggdGhlIHByb3BlcnRpZXMgb2YgVCBleGNlcHQgZm9yIHRob3NlIGluIHR5cGUgSy4gKi9cbmV4cG9ydCB0eXBlIE9taXRGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0c0lkT3JTY2hlbWFJZCA9XG4gIFBpY2tGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0c0V4Y2x1ZGVLZXlzQXRPdXRwdXRzSWRPclNjaGVtYUlkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXN1bHRBaVJlc3BvbnNlIHtcbiAgaXRlbXM6IEFpUmVzcG9uc2VbXTtcbiAgbGlua3M/OiB7XG4gICAgbmV4dFBhZ2U/OiBzdHJpbmc7XG4gICAgcHJldlBhZ2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVJlc3VsdFRocmVhZCB7XG4gIGl0ZW1zOiBUaHJlYWRbXTtcbiAgbGlua3M/OiB7XG4gICAgbmV4dFBhZ2U/OiBzdHJpbmc7XG4gICAgcHJldlBhZ2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25QYWdlTGltaXQgPSAyMCB8IDUwIHwgMTAwO1xuXG4vKiogTWFrZSBhbGwgcHJvcGVydGllcyBpbiBUIG9wdGlvbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxDaGF0Qm90V3JpdGUge1xuICBhdXRoVHlwZT86IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBpbnN0cnVjdGlvbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZT86IHN0cmluZztcbiAgdGFncz86IHN0cmluZ1tdO1xuICB0eXBlPzogQWlUeXBlO1xufVxuXG4vKiogTWFrZSBhbGwgcHJvcGVydGllcyBpbiBUIG9wdGlvbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxHZW5lcmF0aXZlV3JpdGUge1xuICBhdXRoVHlwZT86IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBpbnN0cnVjdGlvbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZT86IHN0cmluZztcbiAgdGFncz86IHN0cmluZ1tdO1xuICB0eXBlPzogQWlUeXBlO1xufVxuXG4vKiogRnJvbSBULCBwaWNrIGEgc2V0IG9mIHByb3BlcnRpZXMgd2hvc2Uga2V5cyBhcmUgaW4gdGhlIHVuaW9uIEsgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0FpQXV0aFR5cGVPckluc3RydWN0aW9uT3JSZXNwb25zZVRlbXBsYXRlT3JOYW1lT3JUeXBlT3JFbmFibGVkIHtcbiAgYXV0aFR5cGU6IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZTogc3RyaW5nO1xuICB0eXBlOiBBaVR5cGU7XG59XG5cbi8qKiBGcm9tIFQsIHBpY2sgYSBzZXQgb2YgcHJvcGVydGllcyB3aG9zZSBrZXlzIGFyZSBpbiB0aGUgdW5pb24gSyAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrQWlFeGNsdWRlS2V5c1RlbmFudE9yTWV0YWRhdGEge1xuICBhdXRoVHlwZTogQWlBdXRoVHlwZTtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgaWQ6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb246IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQGZvcm1hdCBkb3VibGUgKi9cbiAgbmVnYXRpdmVDb3VudDogbnVtYmVyO1xuICAvKiogQGZvcm1hdCBkb3VibGUgKi9cbiAgb3ZlcmFsbENvdW50OiBudW1iZXI7XG4gIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICBwb3NpdGl2ZUNvdW50OiBudW1iZXI7XG4gIHJlc3BvbnNlVGVtcGxhdGU6IHN0cmluZztcbiAgdGFnczogc3RyaW5nW107XG4gIHR5cGU6IEFpVHlwZTtcbn1cblxuLyoqIEZyb20gVCwgcGljayBhIHNldCBvZiBwcm9wZXJ0aWVzIHdob3NlIGtleXMgYXJlIGluIHRoZSB1bmlvbiBLICovXG5leHBvcnQgdHlwZSBQaWNrRmxvd3NHZXRFeGVjdXRpb25PdXRwdXRzUmVzcG9uc2VBdE91dHB1dHNFeGNsdWRlS2V5c0F0T3V0cHV0c0lkT3JTY2hlbWFJZCA9IG9iamVjdDtcblxuZXhwb3J0IGludGVyZmFjZSBSYXRlUGF5bG9hZCB7XG4gIHJhdGluZzogVGhyZWFkUmF0aW5nO1xufVxuXG5leHBvcnQgdHlwZSBTb3J0RGlyZWN0aW9uRW51bSA9ICdhc2MnIHwgJ2Rlc2MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRocmVhZCB7XG4gIGFpSWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgcmF0aW5nOiBUaHJlYWRSYXRpbmcgfCBudWxsO1xuICB0YWdzOiBzdHJpbmdbXSB8IG51bGw7XG4gIHRpbWVMYXN0SW50ZXJhY3RlZDogc3RyaW5nIHwgbnVsbDtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gIHVwZGF0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgVGhyZWFkUmF0aW5nID0gJ3Bvc2l0aXZlJyB8ICduZWdhdGl2ZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2hhdGJvdCB7XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIENyZWF0ZVxuICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIENyZWF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBEZWxldGVcbiAgICogQHJlcXVlc3QgREVMRVRFOi9jaGF0Ym90L3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgRGVsZXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSB2b2lkO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIEdldFxuICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgdGFncz86IHN0cmluZ1tdO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIFNldFxuICAgKiBAcmVxdWVzdCBQVVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgU2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBVcGRhdGVcbiAgICogQHJlcXVlc3QgUEFUQ0g6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgVXBkYXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFBhdGNoO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEdlbmVyYXRpdmUge1xuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBDcmVhdGVcbiAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBDcmVhdGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgRGVsZXRlXG4gICAqIEByZXF1ZXN0IERFTEVURTovZ2VuZXJhdGl2ZS97aWR9XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDRgIGB2b2lkYCBObyBjb250ZW50XG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIERlbGV0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gdm9pZDtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZSwgZXhlY3V0aW9uXG4gICAqIEBuYW1lIEV4ZWN1dGVcbiAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vZXhlY3V0aW9ucy97Zmxvd0lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAxYCBgR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZWAgQ3JlYXRlZFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBFeGVjdXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgYWlJZDogc3RyaW5nO1xuICAgICAgZmxvd0lkOiBHZW5lcmF0aXZlQ29tbWFuZDtcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RCb2R5O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBHZXRcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIEdldCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQG5hbWUgR2V0QWxsR2VuZXJhdGl2ZVRocmVhZHNcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS90aHJlYWRzXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0VGhyZWFkYCBPa1xuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkcyB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGFpSWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICAgICAgY3Vyc29yPzogbnVtYmVyO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgc29ydERpcmVjdGlvbj86IEdldEFsbEdlbmVyYXRpdmVUaHJlYWRzUGFyYW1zMVNvcnREaXJlY3Rpb25FbnVtO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRUaHJlYWQ7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmUsIGV4ZWN1dGlvblxuICAgKiBAbmFtZSBHZXRFeGVjdXRpb25PdXRwdXRcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS9leGVjdXRpb25zL3tmbG93SWR9L3tleGVjdXRpb25JZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEdldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0RXhlY3V0aW9uT3V0cHV0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgYWlJZDogc3RyaW5nO1xuICAgICAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbiAgICAgIGZsb3dJZDogR2VuZXJhdGl2ZUNvbW1hbmQ7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgdGFncz86IHN0cmluZ1tdO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAbmFtZSBSYXRlXG4gICAqIEByZXF1ZXN0IFBPU1Q6L2dlbmVyYXRpdmUve2FpSWR9L3RocmVhZHMve3RocmVhZElkfS9yYXRlXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBUaHJlYWRgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFJhdGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhaUlkOiBzdHJpbmc7XG4gICAgICB0aHJlYWRJZDogc3RyaW5nO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBSYXRlUGF5bG9hZDtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFRocmVhZDtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBTZXRcbiAgICogQHJlcXVlc3QgUFVUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFNldCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgVXBkYXRlXG4gICAqIEByZXF1ZXN0IFBBVENIOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFVwZGF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVQYXRjaDtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlQYXJhbXNUeXBlID0gUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYW55PjtcbmV4cG9ydCB0eXBlIFJlc3BvbnNlRm9ybWF0ID0ga2V5b2YgT21pdDxCb2R5LCAnYm9keScgfCAnYm9keVVzZWQnPjtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsUmVxdWVzdFBhcmFtcyBleHRlbmRzIE9taXQ8UmVxdWVzdEluaXQsICdib2R5Jz4ge1xuICAvKiogc2V0IHBhcmFtZXRlciB0byBgdHJ1ZWAgZm9yIGNhbGwgYHNlY3VyaXR5V29ya2VyYCBmb3IgdGhpcyByZXF1ZXN0ICovXG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIC8qKiByZXF1ZXN0IHBhdGggKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogY29udGVudCB0eXBlIG9mIHJlcXVlc3QgYm9keSAqL1xuICB0eXBlPzogQ29udGVudFR5cGU7XG4gIC8qKiBxdWVyeSBwYXJhbXMgKi9cbiAgcXVlcnk/OiBRdWVyeVBhcmFtc1R5cGU7XG4gIC8qKiBmb3JtYXQgb2YgcmVzcG9uc2UgKGkuZS4gcmVzcG9uc2UuanNvbigpIC0+IGZvcm1hdDogXCJqc29uXCIpICovXG4gIGZvcm1hdD86IFJlc3BvbnNlRm9ybWF0O1xuICAvKiogcmVxdWVzdCBib2R5ICovXG4gIGJvZHk/OiB1bmtub3duO1xuICAvKiogYmFzZSB1cmwgKi9cbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqIHJlcXVlc3QgY2FuY2VsbGF0aW9uIHRva2VuICovXG4gIGNhbmNlbFRva2VuPzogQ2FuY2VsVG9rZW47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSBPbWl0PEZ1bGxSZXF1ZXN0UGFyYW1zLCAnYm9keScgfCAnbWV0aG9kJyB8ICdxdWVyeScgfCAncGF0aCc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlID0gdW5rbm93bj4ge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBiYXNlQXBpUGFyYW1zPzogT21pdDxSZXF1ZXN0UGFyYW1zLCAnYmFzZVVybCcgfCAnY2FuY2VsVG9rZW4nIHwgJ3NpZ25hbCc+O1xuICBzZWN1cml0eVdvcmtlcj86IChzZWN1cml0eURhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsKSA9PiBQcm9taXNlPFJlcXVlc3RQYXJhbXMgfCB2b2lkPiB8IFJlcXVlc3RQYXJhbXMgfCB2b2lkO1xuICBjdXN0b21GZXRjaD86IHR5cGVvZiBmZXRjaDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2U8RCBleHRlbmRzIHVua25vd24sIEUgZXh0ZW5kcyB1bmtub3duID0gdW5rbm93bj4gZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGRhdGE6IEQ7XG4gIGVycm9yOiBFO1xufVxuXG50eXBlIENhbmNlbFRva2VuID0gU3ltYm9sIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgZW51bSBDb250ZW50VHlwZSB7XG4gIEpzb24gPSAnYXBwbGljYXRpb24vanNvbicsXG4gIEZvcm1EYXRhID0gJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICBVcmxFbmNvZGVkID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gIFRleHQgPSAndGV4dC9wbGFpbicsXG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGUgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcgPSAnLyc7XG4gIHByaXZhdGUgc2VjdXJpdHlEYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VjdXJpdHlXb3JrZXI/OiBBcGlDb25maWc8U2VjdXJpdHlEYXRhVHlwZT5bJ3NlY3VyaXR5V29ya2VyJ107XG4gIHByaXZhdGUgYWJvcnRDb250cm9sbGVycyA9IG5ldyBNYXA8Q2FuY2VsVG9rZW4sIEFib3J0Q29udHJvbGxlcj4oKTtcbiAgcHJpdmF0ZSBjdXN0b21GZXRjaCA9ICguLi5mZXRjaFBhcmFtczogUGFyYW1ldGVyczx0eXBlb2YgZmV0Y2g+KSA9PiBmZXRjaCguLi5mZXRjaFBhcmFtcyk7XG5cbiAgcHJpdmF0ZSBiYXNlQXBpUGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge1xuICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgIGhlYWRlcnM6IHt9LFxuICAgIHJlZGlyZWN0OiAnZm9sbG93JyxcbiAgICByZWZlcnJlclBvbGljeTogJ25vLXJlZmVycmVyJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihhcGlDb25maWc6IEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlPiA9IHt9KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcGlDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHNldFNlY3VyaXR5RGF0YSA9IChkYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCkgPT4ge1xuICAgIHRoaXMuc2VjdXJpdHlEYXRhID0gZGF0YTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZW5jb2RlUXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGVuY29kZWRLZXkgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICByZXR1cm4gYCR7ZW5jb2RlZEtleX09JHtlbmNvZGVVUklDb21wb25lbnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogYCR7dmFsdWV9YCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtKHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHF1ZXJ5W2tleV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZEFycmF5UXVlcnlQYXJhbShxdWVyeTogUXVlcnlQYXJhbXNUeXBlLCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICByZXR1cm4gdmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHYpKS5qb2luKCcmJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9RdWVyeVN0cmluZyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnkgPSByYXdRdWVyeSB8fCB7fTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocXVlcnkpLmZpbHRlcigoa2V5KSA9PiAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIHF1ZXJ5W2tleV0pO1xuICAgIHJldHVybiBrZXlzXG4gICAgICAubWFwKChrZXkpID0+IChBcnJheS5pc0FycmF5KHF1ZXJ5W2tleV0pID8gdGhpcy5hZGRBcnJheVF1ZXJ5UGFyYW0ocXVlcnksIGtleSkgOiB0aGlzLmFkZFF1ZXJ5UGFyYW0ocXVlcnksIGtleSkpKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtcyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLnRvUXVlcnlTdHJpbmcocmF3UXVlcnkpO1xuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGNvbnRlbnRGb3JtYXR0ZXJzOiBSZWNvcmQ8Q29udGVudFR5cGUsIChpbnB1dDogYW55KSA9PiBhbnk+ID0ge1xuICAgIFtDb250ZW50VHlwZS5Kc29uXTogKGlucHV0OiBhbnkpID0+XG4gICAgICBpbnB1dCAhPT0gbnVsbCAmJiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSA/IEpTT04uc3RyaW5naWZ5KGlucHV0KSA6IGlucHV0LFxuICAgIFtDb250ZW50VHlwZS5UZXh0XTogKGlucHV0OiBhbnkpID0+IChpbnB1dCAhPT0gbnVsbCAmJiB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnID8gSlNPTi5zdHJpbmdpZnkoaW5wdXQpIDogaW5wdXQpLFxuICAgIFtDb250ZW50VHlwZS5Gb3JtRGF0YV06IChpbnB1dDogYW55KSA9PlxuICAgICAgT2JqZWN0LmtleXMoaW5wdXQgfHwge30pLnJlZHVjZSgoZm9ybURhdGEsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGlucHV0W2tleV07XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgcHJvcGVydHkgaW5zdGFuY2VvZiBCbG9iXG4gICAgICAgICAgICA/IHByb3BlcnR5XG4gICAgICAgICAgICA6IHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ29iamVjdCcgJiYgcHJvcGVydHkgIT09IG51bGxcbiAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocHJvcGVydHkpXG4gICAgICAgICAgICA6IGAke3Byb3BlcnR5fWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmb3JtRGF0YTtcbiAgICAgIH0sIG5ldyBGb3JtRGF0YSgpKSxcbiAgICBbQ29udGVudFR5cGUuVXJsRW5jb2RlZF06IChpbnB1dDogYW55KSA9PiB0aGlzLnRvUXVlcnlTdHJpbmcoaW5wdXQpLFxuICB9O1xuXG4gIHByb3RlY3RlZCBtZXJnZVJlcXVlc3RQYXJhbXMocGFyYW1zMTogUmVxdWVzdFBhcmFtcywgcGFyYW1zMj86IFJlcXVlc3RQYXJhbXMpOiBSZXF1ZXN0UGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5iYXNlQXBpUGFyYW1zLFxuICAgICAgLi4ucGFyYW1zMSxcbiAgICAgIC4uLihwYXJhbXMyIHx8IHt9KSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHRoaXMuYmFzZUFwaVBhcmFtcy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKHBhcmFtczEuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLigocGFyYW1zMiAmJiBwYXJhbXMyLmhlYWRlcnMpIHx8IHt9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBYm9ydFNpZ25hbCA9IChjYW5jZWxUb2tlbjogQ2FuY2VsVG9rZW4pOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHRoaXMuYWJvcnRDb250cm9sbGVycy5oYXMoY2FuY2VsVG9rZW4pKSB7XG4gICAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSB0aGlzLmFib3J0Q29udHJvbGxlcnMuZ2V0KGNhbmNlbFRva2VuKTtcbiAgICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlcnMuc2V0KGNhbmNlbFRva2VuLCBhYm9ydENvbnRyb2xsZXIpO1xuICAgIHJldHVybiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICB9O1xuXG4gIHB1YmxpYyBhYm9ydFJlcXVlc3QgPSAoY2FuY2VsVG9rZW46IENhbmNlbFRva2VuKSA9PiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gdGhpcy5hYm9ydENvbnRyb2xsZXJzLmdldChjYW5jZWxUb2tlbik7XG5cbiAgICBpZiAoYWJvcnRDb250cm9sbGVyKSB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgcmVxdWVzdCA9IGFzeW5jIDxUID0gYW55LCBFID0gYW55Pih7XG4gICAgYm9keSxcbiAgICBzZWN1cmUsXG4gICAgcGF0aCxcbiAgICB0eXBlLFxuICAgIHF1ZXJ5LFxuICAgIGZvcm1hdCxcbiAgICBiYXNlVXJsLFxuICAgIGNhbmNlbFRva2VuLFxuICAgIC4uLnBhcmFtc1xuICB9OiBGdWxsUmVxdWVzdFBhcmFtcyk6IFByb21pc2U8VD4gPT4ge1xuICAgIGNvbnN0IHNlY3VyZVBhcmFtcyA9XG4gICAgICAoKHR5cGVvZiBzZWN1cmUgPT09ICdib29sZWFuJyA/IHNlY3VyZSA6IHRoaXMuYmFzZUFwaVBhcmFtcy5zZWN1cmUpICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlXb3JrZXIgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2VjdXJpdHlXb3JrZXIodGhpcy5zZWN1cml0eURhdGEpKSkgfHxcbiAgICAgIHt9O1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLm1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMsIHNlY3VyZVBhcmFtcyk7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeSAmJiB0aGlzLnRvUXVlcnlTdHJpbmcocXVlcnkpO1xuICAgIGNvbnN0IHBheWxvYWRGb3JtYXR0ZXIgPSB0aGlzLmNvbnRlbnRGb3JtYXR0ZXJzW3R5cGUgfHwgQ29udGVudFR5cGUuSnNvbl07XG4gICAgY29uc3QgcmVzcG9uc2VGb3JtYXQgPSBmb3JtYXQgfHwgcmVxdWVzdFBhcmFtcy5mb3JtYXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21GZXRjaChgJHtiYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCAnJ30ke3BhdGh9JHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YCwge1xuICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHJlcXVlc3RQYXJhbXMuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLih0eXBlICYmIHR5cGUgIT09IENvbnRlbnRUeXBlLkZvcm1EYXRhID8geyAnQ29udGVudC1UeXBlJzogdHlwZSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbDogKGNhbmNlbFRva2VuID8gdGhpcy5jcmVhdGVBYm9ydFNpZ25hbChjYW5jZWxUb2tlbikgOiByZXF1ZXN0UGFyYW1zLnNpZ25hbCkgfHwgbnVsbCxcbiAgICAgIGJvZHk6IHR5cGVvZiBib2R5ID09PSAndW5kZWZpbmVkJyB8fCBib2R5ID09PSBudWxsID8gbnVsbCA6IHBheWxvYWRGb3JtYXR0ZXIoYm9keSksXG4gICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IHIgPSByZXNwb25zZSBhcyBIdHRwUmVzcG9uc2U8VCwgRT47XG4gICAgICByLmRhdGEgPSBudWxsIGFzIHVua25vd24gYXMgVDtcbiAgICAgIHIuZXJyb3IgPSBudWxsIGFzIHVua25vd24gYXMgRTtcblxuICAgICAgY29uc3QgZGF0YSA9ICFyZXNwb25zZUZvcm1hdFxuICAgICAgICA/IHJcbiAgICAgICAgOiBhd2FpdCByZXNwb25zZVtyZXNwb25zZUZvcm1hdF0oKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHIub2spIHtcbiAgICAgICAgICAgICAgICByLmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHIuZXJyb3IgPSBkYXRhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICByLmVycm9yID0gZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKGNhbmNlbFRva2VuKSB7XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBkYXRhO1xuICAgICAgcmV0dXJuIGRhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAdGl0bGUgQHNxdWl6L2FpLXNlcnZpY2VcbiAqIEB2ZXJzaW9uIDEuMC4wXG4gKiBAbGljZW5zZSBJU0NcbiAqIEBiYXNlVXJsIC9cbiAqIEBjb250YWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBcGk8U2VjdXJpdHlEYXRhVHlwZSBleHRlbmRzIHVua25vd24+IHtcbiAgaHR0cDogSHR0cENsaWVudDxTZWN1cml0eURhdGFUeXBlPjtcblxuICBjb25zdHJ1Y3RvcihodHRwOiBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGU+KSB7XG4gICAgdGhpcy5odHRwID0gaHR0cDtcbiAgfVxuXG4gIGNoYXRib3QgPSB7XG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBDcmVhdGVcbiAgICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgICAqL1xuICAgIGNyZWF0ZTogKGRhdGE6IENoYXRCb3RXcml0ZSwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBEZWxldGVcbiAgICAgKiBAcmVxdWVzdCBERUxFVEU6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICAgKi9cbiAgICBkZWxldGU6IChpZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PHZvaWQsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBHZXRcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0OiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90LyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIExpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3RcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBsaXN0OiAocXVlcnk6IExpc3RQYXJhbXMsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8UGFnZVJlc3VsdEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3RgLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBTZXRcbiAgICAgKiBAcmVxdWVzdCBQVVQ6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgc2V0OiAoaWQ6IHN0cmluZywgZGF0YTogQ2hhdEJvdFdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBjaGF0Ym90XG4gICAgICogQG5hbWUgVXBkYXRlXG4gICAgICogQHJlcXVlc3QgUEFUQ0g6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogQ2hhdEJvdFBhdGNoLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2NoYXRib3QvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xuICBnZW5lcmF0aXZlID0ge1xuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgQ3JlYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMWAgYEFpUmVzcG9uc2VgIENyZWF0ZWRcbiAgICAgKi9cbiAgICBjcmVhdGU6IChkYXRhOiBHZW5lcmF0aXZlV3JpdGUsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZWAsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgRGVsZXRlXG4gICAgICogQHJlcXVlc3QgREVMRVRFOi9nZW5lcmF0aXZlL3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDRgIGB2b2lkYCBObyBjb250ZW50XG4gICAgICovXG4gICAgZGVsZXRlOiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDx2b2lkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlLCBleGVjdXRpb25cbiAgICAgKiBAbmFtZSBFeGVjdXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vZXhlY3V0aW9ucy97Zmxvd0lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMWAgYEdlbmVyYXRpdmVFeGVjdXRpb25Qb3N0UmVzcG9uc2VgIENyZWF0ZWRcbiAgICAgKi9cbiAgICBleGVjdXRlOiAoYWlJZDogc3RyaW5nLCBmbG93SWQ6IEdlbmVyYXRpdmVDb21tYW5kLCBkYXRhOiBHZW5lcmF0aXZlRXhlY3V0aW9uUG9zdEJvZHksIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8R2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2FpSWR9L2V4ZWN1dGlvbnMvJHtmbG93SWR9YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBHZXRcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0OiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgR2V0QWxsR2VuZXJhdGl2ZVRocmVhZHNcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmUve2FpSWR9L3RocmVhZHNcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0VGhyZWFkYCBPa1xuICAgICAqL1xuICAgIGdldEFsbEdlbmVyYXRpdmVUaHJlYWRzOiAoeyBhaUlkLCAuLi5xdWVyeSB9OiBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkc1BhcmFtcywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxQYWdlUmVzdWx0VGhyZWFkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7YWlJZH0vdGhyZWFkc2AsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZSwgZXhlY3V0aW9uXG4gICAgICogQG5hbWUgR2V0RXhlY3V0aW9uT3V0cHV0XG4gICAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS9leGVjdXRpb25zL3tmbG93SWR9L3tleGVjdXRpb25JZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBHZXRFeGVjdXRpb25PdXRwdXRzUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0RXhlY3V0aW9uT3V0cHV0OiAoYWlJZDogc3RyaW5nLCBmbG93SWQ6IEdlbmVyYXRpdmVDb21tYW5kLCBleGVjdXRpb25JZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEdldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2FpSWR9L2V4ZWN1dGlvbnMvJHtmbG93SWR9LyR7ZXhlY3V0aW9uSWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIExpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBsaXN0OiAocXVlcnk6IExpc3RQYXJhbXMyLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PFBhZ2VSZXN1bHRBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlYCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBSYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vdGhyZWFkcy97dGhyZWFkSWR9L3JhdGVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBUaHJlYWRgIE9rXG4gICAgICovXG4gICAgcmF0ZTogKGFpSWQ6IHN0cmluZywgdGhyZWFkSWQ6IHN0cmluZywgZGF0YTogUmF0ZVBheWxvYWQsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8VGhyZWFkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7YWlJZH0vdGhyZWFkcy8ke3RocmVhZElkfS9yYXRlYCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBTZXRcbiAgICAgKiBAcmVxdWVzdCBQVVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgc2V0OiAoaWQ6IHN0cmluZywgZGF0YTogR2VuZXJhdGl2ZVdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgVXBkYXRlXG4gICAgICogQHJlcXVlc3QgUEFUQ0g6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogR2VuZXJhdGl2ZVBhdGNoLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHhwQWlTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcWhCQSxJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsd0NBQXlCLENBQUE7SUFDekIsK0NBQWdDLENBQUE7SUFDaEMsK0RBQWdELENBQUE7SUFDaEQsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLFdBQVcsMkJBQVgsV0FBVyxRQUt0QjtBQUVELE1BQWEsVUFBVTtJQUNkLE9BQU8sR0FBVyxHQUFHLENBQUM7SUFDckIsWUFBWSxHQUE0QixJQUFJLENBQUM7SUFDN0MsY0FBYyxDQUFpRDtJQUMvRCxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztJQUMzRCxXQUFXLEdBQUcsQ0FBQyxHQUFHLFdBQXFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBRWxGLGFBQWEsR0FBa0I7UUFDckMsV0FBVyxFQUFFLGFBQWE7UUFDMUIsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUUsUUFBUTtRQUNsQixjQUFjLEVBQUUsYUFBYTtLQUM5QixDQUFDO0lBRUYsWUFBWSxZQUF5QyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLEdBQUcsQ0FBQyxJQUE2QixFQUFFLEVBQUU7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRVEsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDaEQsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyxHQUFHLFVBQVUsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFzQixFQUFFLEdBQVc7UUFDekQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxLQUFzQixFQUFFLEdBQVc7UUFDOUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRVMsYUFBYSxDQUFDLFFBQTBCO1FBQ2hELE1BQU0sS0FBSyxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSTthQUNSLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2hILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFUyxjQUFjLENBQUMsUUFBMEI7UUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTyxpQkFBaUIsR0FBNkM7UUFDcEUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUNqQyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzVHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakgsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLFFBQVEsQ0FBQyxNQUFNLENBQ2IsR0FBRyxFQUNILFFBQVEsWUFBWSxJQUFJO2dCQUN0QixDQUFDLENBQUMsUUFBUTtnQkFDVixDQUFDLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxJQUFJO29CQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7b0JBQzFCLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUNsQixDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0tBQ3BFLENBQUM7SUFFUSxrQkFBa0IsQ0FBQyxPQUFzQixFQUFFLE9BQXVCO1FBQzFFLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxhQUFhO1lBQ3JCLEdBQUcsT0FBTztZQUNWLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNyQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFUyxpQkFBaUIsR0FBRyxDQUFDLFdBQXdCLEVBQTJCLEVBQUU7UUFDbEYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvRCxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEQsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVLLFlBQVksR0FBRyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtRQUNqRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9ELElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVLLE9BQU8sR0FBRyxLQUFLLEVBQW9CLEVBQ3hDLElBQUksRUFDSixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsR0FBRyxNQUFNLEVBQ1MsRUFBYyxFQUFFO1FBQ2xDLE1BQU0sWUFBWSxHQUNoQixDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxjQUFjO1lBQ25CLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2pELEVBQUUsQ0FBQztRQUNMLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUV0RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDeEcsR0FBRyxhQUFhO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDM0U7WUFDRCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUk7WUFDMUYsSUFBSSxFQUFFLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztTQUNuRixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsR0FBRyxRQUE4QixDQUFDO1lBQ3pDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBb0IsQ0FBQztZQUM5QixDQUFDLENBQUMsS0FBSyxHQUFHLElBQW9CLENBQUM7WUFFL0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxjQUFjO2dCQUMxQixDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7cUJBQzdCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUNULENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO29CQUNoQixDQUFDO3lCQUFNLENBQUM7d0JBQ04sQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2pCLENBQUM7b0JBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNYLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNaLE9BQU8sQ0FBQyxDQUFDO2dCQUNYLENBQUMsQ0FBQyxDQUFDO1lBRVQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxDQUFDO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztDQUNIO0FBbktELGdDQW1LQztBQVNELE1BQWEsR0FBRztJQUNkLElBQUksQ0FBK0I7SUFFbkMsWUFBWSxJQUFrQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxHQUFHO1FBVVIsTUFBTSxFQUFFLENBQUMsSUFBa0IsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxNQUFNO1NBQ1YsQ0FBQztRQVdKLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFnQixFQUFFLFNBQXdCLEVBQUUsRUFBRSxFQUFFLENBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFZO1lBQzNCLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUN0QixNQUFNLEVBQUUsUUFBUTtZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osR0FBRyxNQUFNO1NBQ1YsQ0FBQztRQVdKLEdBQUcsRUFBRSxDQUFDLEVBQVUsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUk7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFXSixJQUFJLEVBQUUsQ0FBQyxLQUFpQixFQUFFLFNBQXdCLEVBQUUsRUFBRSxFQUFFLENBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE0QjtZQUMzQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixNQUFNLEVBQUUsS0FBSztZQUNiLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUk7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFXSixHQUFHLEVBQUUsQ0FBQyxFQUFVLEVBQUUsSUFBa0IsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFXSixNQUFNLEVBQUUsQ0FBQyxFQUFVLEVBQUUsSUFBa0IsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7S0FDTCxDQUFDO0lBQ0YsVUFBVSxHQUFHO1FBVVgsTUFBTSxFQUFFLENBQUMsSUFBcUIsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxNQUFNO1NBQ1YsQ0FBQztRQVdKLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFpQixFQUFFLFNBQXdCLEVBQUUsRUFBRSxFQUFFLENBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFZO1lBQzNCLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRTtZQUN6QixNQUFNLEVBQUUsUUFBUTtZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osR0FBRyxNQUFNO1NBQ1YsQ0FBQztRQVdKLE9BQU8sRUFBRSxDQUFDLElBQVksRUFBRSxNQUF5QixFQUFFLElBQWlDLEVBQUUsU0FBd0IsRUFBRSxFQUFFLEVBQUUsQ0FDbEgsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXVDO1lBQ3RELElBQUksRUFBRSxlQUFlLElBQUksZUFBZSxNQUFNLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxNQUFNO1NBQ1YsQ0FBQztRQVdKLEdBQUcsRUFBRSxDQUFDLEVBQVUsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUk7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFVSix1QkFBdUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFpQyxFQUFFLFNBQXdCLEVBQUUsRUFBRSxFQUFFLENBQ3pHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUF3QjtZQUN2QyxJQUFJLEVBQUUsZUFBZSxJQUFJLFVBQVU7WUFDbkMsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLE1BQU07U0FDVixDQUFDO1FBV0osa0JBQWtCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsTUFBeUIsRUFBRSxXQUFtQixFQUFFLFNBQXdCLEVBQUUsRUFBRSxFQUFFLENBQy9HLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFtQztZQUNsRCxJQUFJLEVBQUUsZUFBZSxJQUFJLGVBQWUsTUFBTSxJQUFJLFdBQVcsRUFBRTtZQUMvRCxNQUFNLEVBQUUsS0FBSztZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLE1BQU07U0FDVixDQUFDO1FBV0osSUFBSSxFQUFFLENBQUMsS0FBa0IsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBNEI7WUFDM0MsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLE1BQU07U0FDVixDQUFDO1FBVUosSUFBSSxFQUFFLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsSUFBaUIsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUN0RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBYztZQUM3QixJQUFJLEVBQUUsZUFBZSxJQUFJLFlBQVksUUFBUSxPQUFPO1lBQ3BELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFXSixHQUFHLEVBQUUsQ0FBQyxFQUFVLEVBQUUsSUFBcUIsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7UUFXSixNQUFNLEVBQUUsQ0FBQyxFQUFVLEVBQUUsSUFBcUIsRUFBRSxTQUF3QixFQUFFLEVBQUUsRUFBRSxDQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0I7WUFDakMsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsTUFBTTtTQUNWLENBQUM7S0FDTCxDQUFDO0NBQ0g7QUExVEQsa0JBMFRDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAjIyBUSElTIEZJTEUgV0FTIEdFTkVSQVRFRCBWSUEgU1dBR0dFUi1UWVBFU0NSSVBULUFQSSAgICAgICAgIyNcbiAqICMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjI1xuICogIyMgQVVUSE9SOiBhY2Fjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjXG4gKiAjIyBTT1VSQ0U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hY2Fjb2RlL3N3YWdnZXItdHlwZXNjcmlwdC1hcGkgIyNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmV4cG9ydCB0eXBlIEFpQXV0aFR5cGUgPSAnbm9uZScgfCAnZHhwJztcblxuZXhwb3J0IHR5cGUgQWlBdXRoVHlwZUR4cCA9ICdkeHAnO1xuXG5leHBvcnQgdHlwZSBBaVJlc3BvbnNlID0gT21pdEFpVGVuYW50T3JNZXRhZGF0YTtcblxuZXhwb3J0IHR5cGUgQWlUeXBlID0gJ2dlbmVyYXRpdmUnIHwgJ2NoYXRib3QnO1xuXG5leHBvcnQgdHlwZSBBaVR5cGVDaGF0Ym90ID0gJ2NoYXRib3QnO1xuXG5leHBvcnQgdHlwZSBBaVR5cGVHZW5lcmF0aXZlID0gJ2dlbmVyYXRpdmUnO1xuXG5leHBvcnQgdHlwZSBBaVdyaXRlID0gUGlja0FpQXV0aFR5cGVPckluc3RydWN0aW9uT3JSZXNwb25zZVRlbXBsYXRlT3JOYW1lT3JUeXBlT3JFbmFibGVkICYge1xuICB0YWdzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBDaGF0Qm90UGF0Y2ggPSBQYXJ0aWFsQ2hhdEJvdFdyaXRlO1xuXG5leHBvcnQgdHlwZSBDaGF0Qm90V3JpdGUgPSBBaVdyaXRlICYge1xuICB0eXBlOiBBaVR5cGVDaGF0Ym90O1xufTtcblxuZXhwb3J0IHR5cGUgQ2xlYW5lZE91dHB1dEZsb3dzR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlQXRPdXRwdXRzID1cbiAgT21pdEZsb3dzR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlQXRPdXRwdXRzSWRPclNjaGVtYUlkO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVBhcmFtcyB7XG4gIC8qKiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjbGVhbnVwRW1wdHlUZW5hbnQ/OiBib29sZWFuO1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVBhcmFtczIge1xuICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgY2xlYW51cEVtcHR5VGVuYW50PzogYm9vbGVhbjtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRGlyZWN0aW9uID0gJ2ZvcndhcmRzJyB8ICdiYWNrd2FyZHMnO1xuXG5leHBvcnQgdHlwZSBGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNTdGF0dXNFbnVtID0gJ3BlbmRpbmcnIHwgJ2V4ZWN1dGluZycgfCAnZmFpbGVkJyB8ICdzdWNjZWVkZWQnIHwgJ2NhbmNlbGxlZCc7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVDb21tYW5kID0gJ3Byb2Nlc3NNZXNzYWdlJyB8ICdwb3B1bGF0ZVRocmVhZFRhZ3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRpdmVFeGVjdXRpb25Qb3N0Qm9keSB7XG4gIGlucHV0czogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZSB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVQYXRjaCA9IFBhcnRpYWxHZW5lcmF0aXZlV3JpdGU7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRpdmVXcml0ZSA9IEFpV3JpdGUgJiB7XG4gIGF1dGhUeXBlOiBBaUF1dGhUeXBlRHhwO1xuICB0eXBlOiBBaVR5cGVHZW5lcmF0aXZlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkc1BhcmFtcyB7XG4gIGFpSWQ6IHN0cmluZztcbiAgLyoqIEBmb3JtYXQgZG91YmxlICovXG4gIGN1cnNvcj86IG51bWJlcjtcbiAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbkVudW07XG59XG5cbmV4cG9ydCB0eXBlIEdldEFsbEdlbmVyYXRpdmVUaHJlYWRzUGFyYW1zMVNvcnREaXJlY3Rpb25FbnVtID0gJ2FzYycgfCAnZGVzYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlIHtcbiAgZmluaXNoZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgb3V0cHV0czogQ2xlYW5lZE91dHB1dEZsb3dzR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlQXRPdXRwdXRzO1xuICBzdGFydGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHN0YXR1czogRmxvd3NHZXRFeGVjdXRpb25PdXRwdXRzU3RhdHVzRW51bTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zIHtcbiAgY3Vyc29yPzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBwYWdlU2l6ZT86IFBhZ2luYXRpb25QYWdlTGltaXQ7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zMiB7XG4gIGN1cnNvcj86IHN0cmluZztcbiAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICB0YWdzPzogc3RyaW5nW107XG59XG5cbi8qKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggdGhlIHByb3BlcnRpZXMgb2YgVCBleGNlcHQgZm9yIHRob3NlIGluIHR5cGUgSy4gKi9cbmV4cG9ydCB0eXBlIE9taXRBaVRlbmFudE9yTWV0YWRhdGEgPSBQaWNrQWlFeGNsdWRlS2V5c1RlbmFudE9yTWV0YWRhdGE7XG5cbi8qKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggdGhlIHByb3BlcnRpZXMgb2YgVCBleGNlcHQgZm9yIHRob3NlIGluIHR5cGUgSy4gKi9cbmV4cG9ydCB0eXBlIE9taXRGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0c0lkT3JTY2hlbWFJZCA9XG4gIFBpY2tGbG93c0dldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZUF0T3V0cHV0c0V4Y2x1ZGVLZXlzQXRPdXRwdXRzSWRPclNjaGVtYUlkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXN1bHRBaVJlc3BvbnNlIHtcbiAgaXRlbXM6IEFpUmVzcG9uc2VbXTtcbiAgbGlua3M/OiB7XG4gICAgbmV4dFBhZ2U/OiBzdHJpbmc7XG4gICAgcHJldlBhZ2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVJlc3VsdFRocmVhZCB7XG4gIGl0ZW1zOiBUaHJlYWRbXTtcbiAgbGlua3M/OiB7XG4gICAgbmV4dFBhZ2U/OiBzdHJpbmc7XG4gICAgcHJldlBhZ2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25QYWdlTGltaXQgPSAyMCB8IDUwIHwgMTAwO1xuXG4vKiogTWFrZSBhbGwgcHJvcGVydGllcyBpbiBUIG9wdGlvbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxDaGF0Qm90V3JpdGUge1xuICBhdXRoVHlwZT86IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBpbnN0cnVjdGlvbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZT86IHN0cmluZztcbiAgdGFncz86IHN0cmluZ1tdO1xuICB0eXBlPzogQWlUeXBlO1xufVxuXG4vKiogTWFrZSBhbGwgcHJvcGVydGllcyBpbiBUIG9wdGlvbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxHZW5lcmF0aXZlV3JpdGUge1xuICBhdXRoVHlwZT86IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBpbnN0cnVjdGlvbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZT86IHN0cmluZztcbiAgdGFncz86IHN0cmluZ1tdO1xuICB0eXBlPzogQWlUeXBlO1xufVxuXG4vKiogRnJvbSBULCBwaWNrIGEgc2V0IG9mIHByb3BlcnRpZXMgd2hvc2Uga2V5cyBhcmUgaW4gdGhlIHVuaW9uIEsgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0FpQXV0aFR5cGVPckluc3RydWN0aW9uT3JSZXNwb25zZVRlbXBsYXRlT3JOYW1lT3JUeXBlT3JFbmFibGVkIHtcbiAgYXV0aFR5cGU6IEFpQXV0aFR5cGU7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVzcG9uc2VUZW1wbGF0ZTogc3RyaW5nO1xuICB0eXBlOiBBaVR5cGU7XG59XG5cbi8qKiBGcm9tIFQsIHBpY2sgYSBzZXQgb2YgcHJvcGVydGllcyB3aG9zZSBrZXlzIGFyZSBpbiB0aGUgdW5pb24gSyAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrQWlFeGNsdWRlS2V5c1RlbmFudE9yTWV0YWRhdGEge1xuICBhdXRoVHlwZTogQWlBdXRoVHlwZTtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgaWQ6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb246IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQGZvcm1hdCBkb3VibGUgKi9cbiAgbmVnYXRpdmVDb3VudDogbnVtYmVyO1xuICAvKiogQGZvcm1hdCBkb3VibGUgKi9cbiAgb3ZlcmFsbENvdW50OiBudW1iZXI7XG4gIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICBwb3NpdGl2ZUNvdW50OiBudW1iZXI7XG4gIHJlc3BvbnNlVGVtcGxhdGU6IHN0cmluZztcbiAgdGFnczogc3RyaW5nW107XG4gIHR5cGU6IEFpVHlwZTtcbn1cblxuLyoqIEZyb20gVCwgcGljayBhIHNldCBvZiBwcm9wZXJ0aWVzIHdob3NlIGtleXMgYXJlIGluIHRoZSB1bmlvbiBLICovXG5leHBvcnQgdHlwZSBQaWNrRmxvd3NHZXRFeGVjdXRpb25PdXRwdXRzUmVzcG9uc2VBdE91dHB1dHNFeGNsdWRlS2V5c0F0T3V0cHV0c0lkT3JTY2hlbWFJZCA9IG9iamVjdDtcblxuZXhwb3J0IGludGVyZmFjZSBSYXRlUGF5bG9hZCB7XG4gIHJhdGluZzogVGhyZWFkUmF0aW5nO1xufVxuXG5leHBvcnQgdHlwZSBTb3J0RGlyZWN0aW9uRW51bSA9ICdhc2MnIHwgJ2Rlc2MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRocmVhZCB7XG4gIGFpSWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgcmF0aW5nOiBUaHJlYWRSYXRpbmcgfCBudWxsO1xuICB0YWdzOiBzdHJpbmdbXSB8IG51bGw7XG4gIHRpbWVMYXN0SW50ZXJhY3RlZDogc3RyaW5nIHwgbnVsbDtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gIHVwZGF0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgVGhyZWFkUmF0aW5nID0gJ3Bvc2l0aXZlJyB8ICduZWdhdGl2ZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2hhdGJvdCB7XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIENyZWF0ZVxuICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIENyZWF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBEZWxldGVcbiAgICogQHJlcXVlc3QgREVMRVRFOi9jaGF0Ym90L3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgRGVsZXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIC8qKiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgICAgY2xlYW51cEVtcHR5VGVuYW50PzogYm9vbGVhbjtcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSB2b2lkO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIEdldFxuICAgKiBAcmVxdWVzdCBHRVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gbmV2ZXI7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUJvZHkgPSBBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgdGFncz86IHN0cmluZ1tdO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBjaGF0Ym90XG4gICAqIEBuYW1lIFNldFxuICAgKiBAcmVxdWVzdCBQVVQ6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgU2V0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFdyaXRlO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgY2hhdGJvdFxuICAgKiBAbmFtZSBVcGRhdGVcbiAgICogQHJlcXVlc3QgUEFUQ0g6L2NoYXRib3Qve2lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAwYCBgQWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgVXBkYXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gQ2hhdEJvdFBhdGNoO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEdlbmVyYXRpdmUge1xuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBDcmVhdGVcbiAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBDcmVhdGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgRGVsZXRlXG4gICAqIEByZXF1ZXN0IERFTEVURTovZ2VuZXJhdGl2ZS97aWR9XG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDRgIGB2b2lkYCBObyBjb250ZW50XG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIERlbGV0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7XG4gICAgICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgICAgIGNsZWFudXBFbXB0eVRlbmFudD86IGJvb2xlYW47XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gdm9pZDtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZSwgZXhlY3V0aW9uXG4gICAqIEBuYW1lIEV4ZWN1dGVcbiAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vZXhlY3V0aW9ucy97Zmxvd0lkfVxuICAgKiBAc2VjdXJlXG4gICAqIEByZXNwb25zZSBgMjAxYCBgR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZWAgQ3JlYXRlZFxuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBFeGVjdXRlIHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgYWlJZDogc3RyaW5nO1xuICAgICAgZmxvd0lkOiBHZW5lcmF0aXZlQ29tbWFuZDtcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RCb2R5ID0gR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RCb2R5O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gR2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBHZXRcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIEdldCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gQWlSZXNwb25zZTtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQG5hbWUgR2V0QWxsR2VuZXJhdGl2ZVRocmVhZHNcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS90aHJlYWRzXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0VGhyZWFkYCBPa1xuICAgKi9cbiAgZXhwb3J0IG5hbWVzcGFjZSBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkcyB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGFpSWQ6IHN0cmluZztcbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIC8qKiBAZm9ybWF0IGRvdWJsZSAqL1xuICAgICAgY3Vyc29yPzogbnVtYmVyO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgc29ydERpcmVjdGlvbj86IEdldEFsbEdlbmVyYXRpdmVUaHJlYWRzUGFyYW1zMVNvcnREaXJlY3Rpb25FbnVtO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRUaHJlYWQ7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmUsIGV4ZWN1dGlvblxuICAgKiBAbmFtZSBHZXRFeGVjdXRpb25PdXRwdXRcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS9leGVjdXRpb25zL3tmbG93SWR9L3tleGVjdXRpb25JZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEdldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgR2V0RXhlY3V0aW9uT3V0cHV0IHtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgYWlJZDogc3RyaW5nO1xuICAgICAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbiAgICAgIGZsb3dJZDogR2VuZXJhdGl2ZUNvbW1hbmQ7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IG5ldmVyO1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2VCb2R5ID0gR2V0RXhlY3V0aW9uT3V0cHV0c1Jlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAqIEBuYW1lIExpc3RcbiAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICovXG4gIGV4cG9ydCBuYW1lc3BhY2UgTGlzdCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RRdWVyeSA9IHtcbiAgICAgIGN1cnNvcj86IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgcGFnZVNpemU/OiBQYWdpbmF0aW9uUGFnZUxpbWl0O1xuICAgICAgdGFncz86IHN0cmluZ1tdO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBuZXZlcjtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFBhZ2VSZXN1bHRBaVJlc3BvbnNlO1xuICB9XG4gIC8qKlxuICAgKiBObyBkZXNjcmlwdGlvblxuICAgKiBAbmFtZSBSYXRlXG4gICAqIEByZXF1ZXN0IFBPU1Q6L2dlbmVyYXRpdmUve2FpSWR9L3RocmVhZHMve3RocmVhZElkfS9yYXRlXG4gICAqIEBzZWN1cmVcbiAgICogQHJlc3BvbnNlIGAyMDBgIGBUaHJlYWRgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFJhdGUge1xuICAgIGV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhaUlkOiBzdHJpbmc7XG4gICAgICB0aHJlYWRJZDogc3RyaW5nO1xuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFF1ZXJ5ID0ge307XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHkgPSBSYXRlUGF5bG9hZDtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IFRocmVhZDtcbiAgfVxuICAvKipcbiAgICogTm8gZGVzY3JpcHRpb25cbiAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgKiBAbmFtZSBTZXRcbiAgICogQHJlcXVlc3QgUFVUOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFNldCB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVXcml0ZTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbiAgLyoqXG4gICAqIE5vIGRlc2NyaXB0aW9uXG4gICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICogQG5hbWUgVXBkYXRlXG4gICAqIEByZXF1ZXN0IFBBVENIOi9nZW5lcmF0aXZlL3tpZH1cbiAgICogQHNlY3VyZVxuICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAqL1xuICBleHBvcnQgbmFtZXNwYWNlIFVwZGF0ZSB7XG4gICAgZXhwb3J0IHR5cGUgUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0UXVlcnkgPSB7fTtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0Qm9keSA9IEdlbmVyYXRpdmVQYXRjaDtcbiAgICBleHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keSA9IEFpUmVzcG9uc2U7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlQYXJhbXNUeXBlID0gUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYW55PjtcbmV4cG9ydCB0eXBlIFJlc3BvbnNlRm9ybWF0ID0ga2V5b2YgT21pdDxCb2R5LCAnYm9keScgfCAnYm9keVVzZWQnPjtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsUmVxdWVzdFBhcmFtcyBleHRlbmRzIE9taXQ8UmVxdWVzdEluaXQsICdib2R5Jz4ge1xuICAvKiogc2V0IHBhcmFtZXRlciB0byBgdHJ1ZWAgZm9yIGNhbGwgYHNlY3VyaXR5V29ya2VyYCBmb3IgdGhpcyByZXF1ZXN0ICovXG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIC8qKiByZXF1ZXN0IHBhdGggKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogY29udGVudCB0eXBlIG9mIHJlcXVlc3QgYm9keSAqL1xuICB0eXBlPzogQ29udGVudFR5cGU7XG4gIC8qKiBxdWVyeSBwYXJhbXMgKi9cbiAgcXVlcnk/OiBRdWVyeVBhcmFtc1R5cGU7XG4gIC8qKiBmb3JtYXQgb2YgcmVzcG9uc2UgKGkuZS4gcmVzcG9uc2UuanNvbigpIC0+IGZvcm1hdDogXCJqc29uXCIpICovXG4gIGZvcm1hdD86IFJlc3BvbnNlRm9ybWF0O1xuICAvKiogcmVxdWVzdCBib2R5ICovXG4gIGJvZHk/OiB1bmtub3duO1xuICAvKiogYmFzZSB1cmwgKi9cbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqIHJlcXVlc3QgY2FuY2VsbGF0aW9uIHRva2VuICovXG4gIGNhbmNlbFRva2VuPzogQ2FuY2VsVG9rZW47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RQYXJhbXMgPSBPbWl0PEZ1bGxSZXF1ZXN0UGFyYW1zLCAnYm9keScgfCAnbWV0aG9kJyB8ICdxdWVyeScgfCAncGF0aCc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlID0gdW5rbm93bj4ge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBiYXNlQXBpUGFyYW1zPzogT21pdDxSZXF1ZXN0UGFyYW1zLCAnYmFzZVVybCcgfCAnY2FuY2VsVG9rZW4nIHwgJ3NpZ25hbCc+O1xuICBzZWN1cml0eVdvcmtlcj86IChzZWN1cml0eURhdGE6IFNlY3VyaXR5RGF0YVR5cGUgfCBudWxsKSA9PiBQcm9taXNlPFJlcXVlc3RQYXJhbXMgfCB2b2lkPiB8IFJlcXVlc3RQYXJhbXMgfCB2b2lkO1xuICBjdXN0b21GZXRjaD86IHR5cGVvZiBmZXRjaDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2U8RCBleHRlbmRzIHVua25vd24sIEUgZXh0ZW5kcyB1bmtub3duID0gdW5rbm93bj4gZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGRhdGE6IEQ7XG4gIGVycm9yOiBFO1xufVxuXG50eXBlIENhbmNlbFRva2VuID0gU3ltYm9sIHwgc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgZW51bSBDb250ZW50VHlwZSB7XG4gIEpzb24gPSAnYXBwbGljYXRpb24vanNvbicsXG4gIEZvcm1EYXRhID0gJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICBVcmxFbmNvZGVkID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gIFRleHQgPSAndGV4dC9wbGFpbicsXG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGUgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcgPSAnLyc7XG4gIHByaXZhdGUgc2VjdXJpdHlEYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VjdXJpdHlXb3JrZXI/OiBBcGlDb25maWc8U2VjdXJpdHlEYXRhVHlwZT5bJ3NlY3VyaXR5V29ya2VyJ107XG4gIHByaXZhdGUgYWJvcnRDb250cm9sbGVycyA9IG5ldyBNYXA8Q2FuY2VsVG9rZW4sIEFib3J0Q29udHJvbGxlcj4oKTtcbiAgcHJpdmF0ZSBjdXN0b21GZXRjaCA9ICguLi5mZXRjaFBhcmFtczogUGFyYW1ldGVyczx0eXBlb2YgZmV0Y2g+KSA9PiBmZXRjaCguLi5mZXRjaFBhcmFtcyk7XG5cbiAgcHJpdmF0ZSBiYXNlQXBpUGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge1xuICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgIGhlYWRlcnM6IHt9LFxuICAgIHJlZGlyZWN0OiAnZm9sbG93JyxcbiAgICByZWZlcnJlclBvbGljeTogJ25vLXJlZmVycmVyJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihhcGlDb25maWc6IEFwaUNvbmZpZzxTZWN1cml0eURhdGFUeXBlPiA9IHt9KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcGlDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHNldFNlY3VyaXR5RGF0YSA9IChkYXRhOiBTZWN1cml0eURhdGFUeXBlIHwgbnVsbCkgPT4ge1xuICAgIHRoaXMuc2VjdXJpdHlEYXRhID0gZGF0YTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZW5jb2RlUXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGVuY29kZWRLZXkgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICByZXR1cm4gYCR7ZW5jb2RlZEtleX09JHtlbmNvZGVVUklDb21wb25lbnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogYCR7dmFsdWV9YCl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtKHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHF1ZXJ5W2tleV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZEFycmF5UXVlcnlQYXJhbShxdWVyeTogUXVlcnlQYXJhbXNUeXBlLCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICByZXR1cm4gdmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShrZXksIHYpKS5qb2luKCcmJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9RdWVyeVN0cmluZyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnkgPSByYXdRdWVyeSB8fCB7fTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocXVlcnkpLmZpbHRlcigoa2V5KSA9PiAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIHF1ZXJ5W2tleV0pO1xuICAgIHJldHVybiBrZXlzXG4gICAgICAubWFwKChrZXkpID0+IChBcnJheS5pc0FycmF5KHF1ZXJ5W2tleV0pID8gdGhpcy5hZGRBcnJheVF1ZXJ5UGFyYW0ocXVlcnksIGtleSkgOiB0aGlzLmFkZFF1ZXJ5UGFyYW0ocXVlcnksIGtleSkpKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRRdWVyeVBhcmFtcyhyYXdRdWVyeT86IFF1ZXJ5UGFyYW1zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLnRvUXVlcnlTdHJpbmcocmF3UXVlcnkpO1xuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGNvbnRlbnRGb3JtYXR0ZXJzOiBSZWNvcmQ8Q29udGVudFR5cGUsIChpbnB1dDogYW55KSA9PiBhbnk+ID0ge1xuICAgIFtDb250ZW50VHlwZS5Kc29uXTogKGlucHV0OiBhbnkpID0+XG4gICAgICBpbnB1dCAhPT0gbnVsbCAmJiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSA/IEpTT04uc3RyaW5naWZ5KGlucHV0KSA6IGlucHV0LFxuICAgIFtDb250ZW50VHlwZS5UZXh0XTogKGlucHV0OiBhbnkpID0+IChpbnB1dCAhPT0gbnVsbCAmJiB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnID8gSlNPTi5zdHJpbmdpZnkoaW5wdXQpIDogaW5wdXQpLFxuICAgIFtDb250ZW50VHlwZS5Gb3JtRGF0YV06IChpbnB1dDogYW55KSA9PlxuICAgICAgT2JqZWN0LmtleXMoaW5wdXQgfHwge30pLnJlZHVjZSgoZm9ybURhdGEsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGlucHV0W2tleV07XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgcHJvcGVydHkgaW5zdGFuY2VvZiBCbG9iXG4gICAgICAgICAgICA/IHByb3BlcnR5XG4gICAgICAgICAgICA6IHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ29iamVjdCcgJiYgcHJvcGVydHkgIT09IG51bGxcbiAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocHJvcGVydHkpXG4gICAgICAgICAgICA6IGAke3Byb3BlcnR5fWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmb3JtRGF0YTtcbiAgICAgIH0sIG5ldyBGb3JtRGF0YSgpKSxcbiAgICBbQ29udGVudFR5cGUuVXJsRW5jb2RlZF06IChpbnB1dDogYW55KSA9PiB0aGlzLnRvUXVlcnlTdHJpbmcoaW5wdXQpLFxuICB9O1xuXG4gIHByb3RlY3RlZCBtZXJnZVJlcXVlc3RQYXJhbXMocGFyYW1zMTogUmVxdWVzdFBhcmFtcywgcGFyYW1zMj86IFJlcXVlc3RQYXJhbXMpOiBSZXF1ZXN0UGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5iYXNlQXBpUGFyYW1zLFxuICAgICAgLi4ucGFyYW1zMSxcbiAgICAgIC4uLihwYXJhbXMyIHx8IHt9KSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHRoaXMuYmFzZUFwaVBhcmFtcy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgLi4uKHBhcmFtczEuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLigocGFyYW1zMiAmJiBwYXJhbXMyLmhlYWRlcnMpIHx8IHt9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBYm9ydFNpZ25hbCA9IChjYW5jZWxUb2tlbjogQ2FuY2VsVG9rZW4pOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHRoaXMuYWJvcnRDb250cm9sbGVycy5oYXMoY2FuY2VsVG9rZW4pKSB7XG4gICAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSB0aGlzLmFib3J0Q29udHJvbGxlcnMuZ2V0KGNhbmNlbFRva2VuKTtcbiAgICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlcnMuc2V0KGNhbmNlbFRva2VuLCBhYm9ydENvbnRyb2xsZXIpO1xuICAgIHJldHVybiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICB9O1xuXG4gIHB1YmxpYyBhYm9ydFJlcXVlc3QgPSAoY2FuY2VsVG9rZW46IENhbmNlbFRva2VuKSA9PiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gdGhpcy5hYm9ydENvbnRyb2xsZXJzLmdldChjYW5jZWxUb2tlbik7XG5cbiAgICBpZiAoYWJvcnRDb250cm9sbGVyKSB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgcmVxdWVzdCA9IGFzeW5jIDxUID0gYW55LCBFID0gYW55Pih7XG4gICAgYm9keSxcbiAgICBzZWN1cmUsXG4gICAgcGF0aCxcbiAgICB0eXBlLFxuICAgIHF1ZXJ5LFxuICAgIGZvcm1hdCxcbiAgICBiYXNlVXJsLFxuICAgIGNhbmNlbFRva2VuLFxuICAgIC4uLnBhcmFtc1xuICB9OiBGdWxsUmVxdWVzdFBhcmFtcyk6IFByb21pc2U8VD4gPT4ge1xuICAgIGNvbnN0IHNlY3VyZVBhcmFtcyA9XG4gICAgICAoKHR5cGVvZiBzZWN1cmUgPT09ICdib29sZWFuJyA/IHNlY3VyZSA6IHRoaXMuYmFzZUFwaVBhcmFtcy5zZWN1cmUpICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlXb3JrZXIgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2VjdXJpdHlXb3JrZXIodGhpcy5zZWN1cml0eURhdGEpKSkgfHxcbiAgICAgIHt9O1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLm1lcmdlUmVxdWVzdFBhcmFtcyhwYXJhbXMsIHNlY3VyZVBhcmFtcyk7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeSAmJiB0aGlzLnRvUXVlcnlTdHJpbmcocXVlcnkpO1xuICAgIGNvbnN0IHBheWxvYWRGb3JtYXR0ZXIgPSB0aGlzLmNvbnRlbnRGb3JtYXR0ZXJzW3R5cGUgfHwgQ29udGVudFR5cGUuSnNvbl07XG4gICAgY29uc3QgcmVzcG9uc2VGb3JtYXQgPSBmb3JtYXQgfHwgcmVxdWVzdFBhcmFtcy5mb3JtYXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21GZXRjaChgJHtiYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCAnJ30ke3BhdGh9JHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YCwge1xuICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uKHJlcXVlc3RQYXJhbXMuaGVhZGVycyB8fCB7fSksXG4gICAgICAgIC4uLih0eXBlICYmIHR5cGUgIT09IENvbnRlbnRUeXBlLkZvcm1EYXRhID8geyAnQ29udGVudC1UeXBlJzogdHlwZSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbDogKGNhbmNlbFRva2VuID8gdGhpcy5jcmVhdGVBYm9ydFNpZ25hbChjYW5jZWxUb2tlbikgOiByZXF1ZXN0UGFyYW1zLnNpZ25hbCkgfHwgbnVsbCxcbiAgICAgIGJvZHk6IHR5cGVvZiBib2R5ID09PSAndW5kZWZpbmVkJyB8fCBib2R5ID09PSBudWxsID8gbnVsbCA6IHBheWxvYWRGb3JtYXR0ZXIoYm9keSksXG4gICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IHIgPSByZXNwb25zZSBhcyBIdHRwUmVzcG9uc2U8VCwgRT47XG4gICAgICByLmRhdGEgPSBudWxsIGFzIHVua25vd24gYXMgVDtcbiAgICAgIHIuZXJyb3IgPSBudWxsIGFzIHVua25vd24gYXMgRTtcblxuICAgICAgY29uc3QgZGF0YSA9ICFyZXNwb25zZUZvcm1hdFxuICAgICAgICA/IHJcbiAgICAgICAgOiBhd2FpdCByZXNwb25zZVtyZXNwb25zZUZvcm1hdF0oKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHIub2spIHtcbiAgICAgICAgICAgICAgICByLmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHIuZXJyb3IgPSBkYXRhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICByLmVycm9yID0gZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKGNhbmNlbFRva2VuKSB7XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVycy5kZWxldGUoY2FuY2VsVG9rZW4pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBkYXRhO1xuICAgICAgcmV0dXJuIGRhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAdGl0bGUgQHNxdWl6L2FpLXNlcnZpY2VcbiAqIEB2ZXJzaW9uIDEuMS4wXG4gKiBAbGljZW5zZSBJU0NcbiAqIEBiYXNlVXJsIC9cbiAqIEBjb250YWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBcGk8U2VjdXJpdHlEYXRhVHlwZSBleHRlbmRzIHVua25vd24+IHtcbiAgaHR0cDogSHR0cENsaWVudDxTZWN1cml0eURhdGFUeXBlPjtcblxuICBjb25zdHJ1Y3RvcihodHRwOiBIdHRwQ2xpZW50PFNlY3VyaXR5RGF0YVR5cGU+KSB7XG4gICAgdGhpcy5odHRwID0gaHR0cDtcbiAgfVxuXG4gIGNoYXRib3QgPSB7XG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBDcmVhdGVcbiAgICAgKiBAcmVxdWVzdCBQT1NUOi9jaGF0Ym90XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAxYCBgQWlSZXNwb25zZWAgQ3JlYXRlZFxuICAgICAqL1xuICAgIGNyZWF0ZTogKGRhdGE6IENoYXRCb3RXcml0ZSwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBEZWxldGVcbiAgICAgKiBAcmVxdWVzdCBERUxFVEU6L2NoYXRib3Qve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwNGAgYHZvaWRgIE5vIGNvbnRlbnRcbiAgICAgKi9cbiAgICBkZWxldGU6ICh7IGlkLCAuLi5xdWVyeSB9OiBEZWxldGVQYXJhbXMsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8dm9pZCwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvY2hhdGJvdC8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBjaGF0Ym90XG4gICAgICogQG5hbWUgR2V0XG4gICAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90L3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIGdldDogKGlkOiBzdHJpbmcsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8QWlSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvY2hhdGJvdC8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGNoYXRib3RcbiAgICAgKiBAbmFtZSBMaXN0XG4gICAgICogQHJlcXVlc3QgR0VUOi9jaGF0Ym90XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjAwYCBgUGFnZVJlc3VsdEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgbGlzdDogKHF1ZXJ5OiBMaXN0UGFyYW1zLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PFBhZ2VSZXN1bHRBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBjaGF0Ym90XG4gICAgICogQG5hbWUgU2V0XG4gICAgICogQHJlcXVlc3QgUFVUOi9jaGF0Ym90L3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIHNldDogKGlkOiBzdHJpbmcsIGRhdGE6IENoYXRCb3RXcml0ZSwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90LyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICB0eXBlOiBDb250ZW50VHlwZS5Kc29uLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgY2hhdGJvdFxuICAgICAqIEBuYW1lIFVwZGF0ZVxuICAgICAqIEByZXF1ZXN0IFBBVENIOi9jaGF0Ym90L3tpZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBBaVJlc3BvbnNlYCBPa1xuICAgICAqL1xuICAgIHVwZGF0ZTogKGlkOiBzdHJpbmcsIGRhdGE6IENoYXRCb3RQYXRjaCwgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9jaGF0Ym90LyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcbiAgfTtcbiAgZ2VuZXJhdGl2ZSA9IHtcbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIENyZWF0ZVxuICAgICAqIEByZXF1ZXN0IFBPU1Q6L2dlbmVyYXRpdmVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDFgIGBBaVJlc3BvbnNlYCBDcmVhdGVkXG4gICAgICovXG4gICAgY3JlYXRlOiAoZGF0YTogR2VuZXJhdGl2ZVdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmVgLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICB0eXBlOiBDb250ZW50VHlwZS5Kc29uLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIERlbGV0ZVxuICAgICAqIEByZXF1ZXN0IERFTEVURTovZ2VuZXJhdGl2ZS97aWR9XG4gICAgICogQHNlY3VyZVxuICAgICAqIEByZXNwb25zZSBgMjA0YCBgdm9pZGAgTm8gY29udGVudFxuICAgICAqL1xuICAgIGRlbGV0ZTogKHsgaWQsIC4uLnF1ZXJ5IH06IERlbGV0ZVBhcmFtczIsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8dm9pZCwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2lkfWAsXG4gICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlLCBleGVjdXRpb25cbiAgICAgKiBAbmFtZSBFeGVjdXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vZXhlY3V0aW9ucy97Zmxvd0lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMWAgYEdlbmVyYXRpdmVFeGVjdXRpb25Qb3N0UmVzcG9uc2VgIENyZWF0ZWRcbiAgICAgKi9cbiAgICBleGVjdXRlOiAoYWlJZDogc3RyaW5nLCBmbG93SWQ6IEdlbmVyYXRpdmVDb21tYW5kLCBkYXRhOiBHZW5lcmF0aXZlRXhlY3V0aW9uUG9zdEJvZHksIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8R2VuZXJhdGl2ZUV4ZWN1dGlvblBvc3RSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2FpSWR9L2V4ZWN1dGlvbnMvJHtmbG93SWR9YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBHZXRcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0OiAoaWQ6IHN0cmluZywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQG5hbWUgR2V0QWxsR2VuZXJhdGl2ZVRocmVhZHNcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmUve2FpSWR9L3RocmVhZHNcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0VGhyZWFkYCBPa1xuICAgICAqL1xuICAgIGdldEFsbEdlbmVyYXRpdmVUaHJlYWRzOiAoeyBhaUlkLCAuLi5xdWVyeSB9OiBHZXRBbGxHZW5lcmF0aXZlVGhyZWFkc1BhcmFtcywgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zID0ge30pID0+XG4gICAgICB0aGlzLmh0dHAucmVxdWVzdDxQYWdlUmVzdWx0VGhyZWFkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7YWlJZH0vdGhyZWFkc2AsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZSwgZXhlY3V0aW9uXG4gICAgICogQG5hbWUgR2V0RXhlY3V0aW9uT3V0cHV0XG4gICAgICogQHJlcXVlc3QgR0VUOi9nZW5lcmF0aXZlL3thaUlkfS9leGVjdXRpb25zL3tmbG93SWR9L3tleGVjdXRpb25JZH1cbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBHZXRFeGVjdXRpb25PdXRwdXRzUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgZ2V0RXhlY3V0aW9uT3V0cHV0OiAoYWlJZDogc3RyaW5nLCBmbG93SWQ6IEdlbmVyYXRpdmVDb21tYW5kLCBleGVjdXRpb25JZDogc3RyaW5nLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEdldEV4ZWN1dGlvbk91dHB1dHNSZXNwb25zZSwgYW55Pih7XG4gICAgICAgIHBhdGg6IGAvZ2VuZXJhdGl2ZS8ke2FpSWR9L2V4ZWN1dGlvbnMvJHtmbG93SWR9LyR7ZXhlY3V0aW9uSWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2VjdXJlOiB0cnVlLFxuICAgICAgICBmb3JtYXQ6ICdqc29uJyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBObyBkZXNjcmlwdGlvblxuICAgICAqXG4gICAgICogQHRhZ3MgZ2VuZXJhdGl2ZVxuICAgICAqIEBuYW1lIExpc3RcbiAgICAgKiBAcmVxdWVzdCBHRVQ6L2dlbmVyYXRpdmVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBQYWdlUmVzdWx0QWlSZXNwb25zZWAgT2tcbiAgICAgKi9cbiAgICBsaXN0OiAocXVlcnk6IExpc3RQYXJhbXMyLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PFBhZ2VSZXN1bHRBaVJlc3BvbnNlLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlYCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAbmFtZSBSYXRlXG4gICAgICogQHJlcXVlc3QgUE9TVDovZ2VuZXJhdGl2ZS97YWlJZH0vdGhyZWFkcy97dGhyZWFkSWR9L3JhdGVcbiAgICAgKiBAc2VjdXJlXG4gICAgICogQHJlc3BvbnNlIGAyMDBgIGBUaHJlYWRgIE9rXG4gICAgICovXG4gICAgcmF0ZTogKGFpSWQ6IHN0cmluZywgdGhyZWFkSWQ6IHN0cmluZywgZGF0YTogUmF0ZVBheWxvYWQsIHBhcmFtczogUmVxdWVzdFBhcmFtcyA9IHt9KSA9PlxuICAgICAgdGhpcy5odHRwLnJlcXVlc3Q8VGhyZWFkLCBhbnk+KHtcbiAgICAgICAgcGF0aDogYC9nZW5lcmF0aXZlLyR7YWlJZH0vdGhyZWFkcy8ke3RocmVhZElkfS9yYXRlYCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuXG4gICAgLyoqXG4gICAgICogTm8gZGVzY3JpcHRpb25cbiAgICAgKlxuICAgICAqIEB0YWdzIGdlbmVyYXRpdmVcbiAgICAgKiBAbmFtZSBTZXRcbiAgICAgKiBAcmVxdWVzdCBQVVQ6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgc2V0OiAoaWQ6IHN0cmluZywgZGF0YTogR2VuZXJhdGl2ZVdyaXRlLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgIHR5cGU6IENvbnRlbnRUeXBlLkpzb24sXG4gICAgICAgIGZvcm1hdDogJ2pzb24nLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9KSxcblxuICAgIC8qKlxuICAgICAqIE5vIGRlc2NyaXB0aW9uXG4gICAgICpcbiAgICAgKiBAdGFncyBnZW5lcmF0aXZlXG4gICAgICogQG5hbWUgVXBkYXRlXG4gICAgICogQHJlcXVlc3QgUEFUQ0g6L2dlbmVyYXRpdmUve2lkfVxuICAgICAqIEBzZWN1cmVcbiAgICAgKiBAcmVzcG9uc2UgYDIwMGAgYEFpUmVzcG9uc2VgIE9rXG4gICAgICovXG4gICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogR2VuZXJhdGl2ZVBhdGNoLCBwYXJhbXM6IFJlcXVlc3RQYXJhbXMgPSB7fSkgPT5cbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0PEFpUmVzcG9uc2UsIGFueT4oe1xuICAgICAgICBwYXRoOiBgL2dlbmVyYXRpdmUvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogQ29udGVudFR5cGUuSnNvbixcbiAgICAgICAgZm9ybWF0OiAnanNvbicsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0pLFxuICB9O1xufVxuIl19 |
import { ApiConfig, HttpClient } from './generated/DxpAiService'; | ||
export * from './generated/DxpAiService'; | ||
export { ClientResponseError, ExecutionResult, GenerativeCommandExecutor } from './utils'; | ||
export { Api as DxpAiService } from './generated/DxpAiService'; | ||
export declare const createClient: (config?: ApiConfig) => HttpClient<unknown>; |
@@ -17,6 +17,9 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createClient = exports.DxpAiService = void 0; | ||
const handleResponseError_1 = require("./Utils/handleResponseError"); | ||
exports.createClient = exports.DxpAiService = exports.GenerativeCommandExecutor = exports.ClientResponseError = void 0; | ||
const utils_1 = require("./utils"); | ||
const DxpAiService_1 = require("./generated/DxpAiService"); | ||
__exportStar(require("./generated/DxpAiService"), exports); | ||
var utils_2 = require("./utils"); | ||
Object.defineProperty(exports, "ClientResponseError", { enumerable: true, get: function () { return utils_2.ClientResponseError; } }); | ||
Object.defineProperty(exports, "GenerativeCommandExecutor", { enumerable: true, get: function () { return utils_2.GenerativeCommandExecutor; } }); | ||
var DxpAiService_2 = require("./generated/DxpAiService"); | ||
@@ -38,3 +41,3 @@ Object.defineProperty(exports, "DxpAiService", { enumerable: true, get: function () { return DxpAiService_2.Api; } }); | ||
if (!response.ok) { | ||
return await (0, handleResponseError_1.handleResponseError)(response); | ||
return await (0, utils_1.handleResponseError)(response); | ||
} | ||
@@ -46,2 +49,2 @@ return response; | ||
exports.createClient = createClient; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxRUFBa0U7QUFDbEUsMkRBQWlFO0FBQ2pFLDJEQUF5QztBQUN6Qyx5REFBK0Q7QUFBdEQsNEdBQUEsR0FBRyxPQUFnQjtBQUVyQixNQUFNLFlBQVksR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRSxFQUFFO0lBQ3JELE1BQU0sRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNoRSxPQUFPLElBQUkseUJBQVUsQ0FBQztRQUNwQixHQUFHLEtBQUs7UUFDUixhQUFhLEVBQUU7WUFDYixHQUFHLGFBQWE7WUFDaEIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLEdBQUcsYUFBYSxFQUFFLE9BQU87YUFDMUI7U0FDRjtRQUNELFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixPQUFPLE1BQU0sSUFBQSx5Q0FBbUIsRUFBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQXJCVyxRQUFBLFlBQVksZ0JBcUJ2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhbmRsZVJlc3BvbnNlRXJyb3IgfSBmcm9tICcuL1V0aWxzL2hhbmRsZVJlc3BvbnNlRXJyb3InO1xuaW1wb3J0IHsgQXBpQ29uZmlnLCBIdHRwQ2xpZW50IH0gZnJvbSAnLi9nZW5lcmF0ZWQvRHhwQWlTZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdGVkL0R4cEFpU2VydmljZSc7XG5leHBvcnQgeyBBcGkgYXMgRHhwQWlTZXJ2aWNlIH0gZnJvbSAnLi9nZW5lcmF0ZWQvRHhwQWlTZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWVudCA9IChjb25maWc6IEFwaUNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgY3VzdG9tRmV0Y2ggPSBmZXRjaCwgYmFzZUFwaVBhcmFtcywgLi4ub3RoZXIgfSA9IGNvbmZpZztcbiAgcmV0dXJuIG5ldyBIdHRwQ2xpZW50KHtcbiAgICAuLi5vdGhlcixcbiAgICBiYXNlQXBpUGFyYW1zOiB7XG4gICAgICAuLi5iYXNlQXBpUGFyYW1zLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uYmFzZUFwaVBhcmFtcz8uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjdXN0b21GZXRjaDogYXN5bmMgKGlucHV0LCBpbml0KSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGN1c3RvbUZldGNoKGlucHV0LCBpbml0KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gYXdhaXQgaGFuZGxlUmVzcG9uc2VFcnJvcihyZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9LFxuICB9KTtcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEM7QUFDOUMsMkRBQWlFO0FBRWpFLDJEQUF5QztBQUN6QyxpQ0FBMEY7QUFBakYsNEdBQUEsbUJBQW1CLE9BQUE7QUFBbUIsa0hBQUEseUJBQXlCLE9BQUE7QUFDeEUseURBQStEO0FBQXRELDRHQUFBLEdBQUcsT0FBZ0I7QUFFckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFvQixFQUFFLEVBQUUsRUFBRTtJQUNyRCxNQUFNLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDaEUsT0FBTyxJQUFJLHlCQUFVLENBQUM7UUFDcEIsR0FBRyxLQUFLO1FBQ1IsYUFBYSxFQUFFO1lBQ2IsR0FBRyxhQUFhO1lBQ2hCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE9BQU8sRUFBRTtnQkFDUCxHQUFHLGFBQWEsRUFBRSxPQUFPO2FBQzFCO1NBQ0Y7UUFDRCxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxNQUFNLElBQUEsMkJBQW1CLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUVELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFyQlcsUUFBQSxZQUFZLGdCQXFCdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYW5kbGVSZXNwb25zZUVycm9yIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBcGlDb25maWcsIEh0dHBDbGllbnQgfSBmcm9tICcuL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dlbmVyYXRlZC9EeHBBaVNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xpZW50UmVzcG9uc2VFcnJvciwgRXhlY3V0aW9uUmVzdWx0LCBHZW5lcmF0aXZlQ29tbWFuZEV4ZWN1dG9yIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBBcGkgYXMgRHhwQWlTZXJ2aWNlIH0gZnJvbSAnLi9nZW5lcmF0ZWQvRHhwQWlTZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWVudCA9IChjb25maWc6IEFwaUNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgY3VzdG9tRmV0Y2ggPSBmZXRjaCwgYmFzZUFwaVBhcmFtcywgLi4ub3RoZXIgfSA9IGNvbmZpZztcbiAgcmV0dXJuIG5ldyBIdHRwQ2xpZW50KHtcbiAgICAuLi5vdGhlcixcbiAgICBiYXNlQXBpUGFyYW1zOiB7XG4gICAgICAuLi5iYXNlQXBpUGFyYW1zLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uYmFzZUFwaVBhcmFtcz8uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjdXN0b21GZXRjaDogYXN5bmMgKGlucHV0LCBpbml0KSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGN1c3RvbUZldGNoKGlucHV0LCBpbml0KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gYXdhaXQgaGFuZGxlUmVzcG9uc2VFcnJvcihyZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9LFxuICB9KTtcbn07XG4iXX0= |
@@ -5,3 +5,3 @@ { | ||
"private": false, | ||
"version": "0.6.0", | ||
"version": "0.7.0", | ||
"description": "Exposes the DXP AI service as a package for consumers", | ||
@@ -21,5 +21,5 @@ "main": "dist/index.js", | ||
"jest": "^29.7.0", | ||
"@squiz/ai-service": "1.1.0" | ||
"@squiz/ai-service": "1.2.0" | ||
}, | ||
"dependencies": {} | ||
} |
@@ -1,4 +0,6 @@ | ||
import { handleResponseError } from './Utils/handleResponseError'; | ||
import { handleResponseError } from './utils'; | ||
import { ApiConfig, HttpClient } from './generated/DxpAiService'; | ||
export * from './generated/DxpAiService'; | ||
export { ClientResponseError, ExecutionResult, GenerativeCommandExecutor } from './utils'; | ||
export { Api as DxpAiService } from './generated/DxpAiService'; | ||
@@ -5,0 +7,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
174080
45
1428
4