@cartanova/qgrid-cli 2.3.7 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +131 -0
- package/README.md +60 -44
- package/bundle/dist/application/qgrid/qgrid-image-generation.js +42 -0
- package/bundle/dist/application/qgrid/qgrid-response-format.js +44 -0
- package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +23 -4
- package/bundle/dist/application/qgrid/qgrid.dispatcher.js +15 -6
- package/bundle/dist/application/qgrid/qgrid.frame.js +32 -4
- package/bundle/dist/application/qgrid/qgrid.types.js +36 -12
- package/bundle/dist/application/qgrid/tool-emulation.js +16 -8
- package/bundle/dist/application/request-log/request-log.model.js +5 -2
- package/bundle/dist/application/sonamu.generated.js +13 -4
- package/bundle/dist/application/sonamu.generated.sso.js +9 -3
- package/bundle/dist/i18n/sd.generated.js +4 -1
- package/bundle/dist/migrations/20260705140614_alter_request_logs_add1_alter1.js +16 -0
- package/bundle/dist/migrations/20260706120000_alter_request_logs_add_image_cost.js +17 -0
- package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +2 -1
- package/bundle/dist/utils/providers/openai/codex-rpc.js +1 -1
- package/bundle/dist/utils/providers/openai/codex-worker.js +78 -6
- package/bundle/dist/utils/providers/openai/openai-dispatcher.js +21 -4
- package/bundle/src/application/qgrid/qgrid-image-generation.ts +62 -0
- package/bundle/src/application/qgrid/qgrid-response-format.ts +59 -0
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +105 -0
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +34 -2
- package/bundle/src/application/qgrid/qgrid.dispatcher.test.ts +33 -0
- package/bundle/src/application/qgrid/qgrid.dispatcher.ts +16 -5
- package/bundle/src/application/qgrid/qgrid.frame.test.ts +78 -0
- package/bundle/src/application/qgrid/qgrid.frame.ts +48 -5
- package/bundle/src/application/qgrid/qgrid.types.ts +22 -0
- package/bundle/src/application/qgrid/tool-emulation.test.ts +44 -1
- package/bundle/src/application/qgrid/tool-emulation.ts +27 -4
- package/bundle/src/application/request-log/request-log.entity.json +73 -47
- package/bundle/src/application/request-log/request-log.model.ts +7 -0
- package/bundle/src/application/sonamu.generated.http +16 -3
- package/bundle/src/application/sonamu.generated.sso.ts +6 -0
- package/bundle/src/application/sonamu.generated.ts +12 -0
- package/bundle/src/i18n/sd.generated.ts +3 -0
- package/bundle/src/migrations/20260705140614_alter_request_logs_add1_alter1.ts +15 -0
- package/bundle/src/migrations/20260706120000_alter_request_logs_add_image_cost.ts +14 -0
- package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +5 -0
- package/bundle/src/utils/providers/common/provider-dispatcher.ts +14 -0
- package/bundle/src/utils/providers/openai/codex-rpc.ts +2 -0
- package/bundle/src/utils/providers/openai/codex-worker.test.ts +219 -0
- package/bundle/src/utils/providers/openai/codex-worker.ts +154 -5
- package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +95 -1
- package/bundle/src/utils/providers/openai/openai-dispatcher.ts +42 -0
- package/bundle/web-dist/client/assets/index-Cj1iWi5i.js +78 -0
- package/bundle/web-dist/client/assets/index-VE_24EJf.css +1 -0
- package/bundle/web-dist/client/assets/{logs-B0pWpDrg.js → logs-DvGWhZTu.js} +1 -1
- package/bundle/web-dist/client/assets/{routes-7XhVuG7o.js → routes-B_xvkM-J.js} +1 -1
- package/bundle/web-dist/client/assets/{sd.generated-DXhjjL2f.js → sd.generated-BrUnRt0B.js} +1 -1
- package/bundle/web-dist/client/assets/{services.generated-B7u0U1wC.js → services.generated-AsEvHbJ7.js} +1 -1
- package/bundle/web-dist/client/assets/{show-CcjZ9nr7.js → show-C6W3ywZz.js} +3 -3
- package/bundle/web-dist/client/assets/{tokens-DlwAm0v4.js → tokens-CxjeN72g.js} +1 -1
- package/bundle/web-dist/client/index.html +3 -3
- package/bundle/web-dist/server/assets/{lazyRouteComponent-B0LkbiYf.js → lazyRouteComponent-BswulcOx.js} +1 -1
- package/bundle/web-dist/server/assets/{logs-dLx6gMXT.js → logs-B_ZLzpwY.js} +4 -4
- package/bundle/web-dist/server/assets/{routes-DD3Hb9xO.js → routes-D9OiKoqa.js} +2 -2
- package/bundle/web-dist/server/assets/{sd.generated-DdfpD_iN.js → sd.generated-DRuQSIKo.js} +3 -0
- package/bundle/web-dist/server/assets/{services.generated-D3ZCvIkt.js → services.generated-Dp0uKgpV.js} +1 -1
- package/bundle/web-dist/server/assets/{show-BQjeyv6A.js → show-CGlX9OYt.js} +104 -13
- package/bundle/web-dist/server/assets/{tokens-CSOsBpP7.js → tokens-Cjw6cQxZ.js} +2 -2
- package/bundle/web-dist/server/entry-server.generated.js +9 -8
- package/package.json +7 -3
- package/postinstall.mjs +119 -0
- package/skills/qgrid/SKILL.md +54 -0
- package/skills/qgrid/agents/openai.yaml +4 -0
- package/skills/qgrid/references/ai-sdk-provider-contract.md +100 -0
- package/skills/qgrid/references/anthropic-claude-code-runtime.md +170 -0
- package/skills/qgrid/references/cli-env-and-server-boot.md +66 -0
- package/skills/qgrid/references/decision-rationale.md +179 -0
- package/skills/qgrid/references/docs-workflow.md +32 -0
- package/skills/qgrid/references/openai-codex-runtime.md +153 -0
- package/skills/qgrid/references/prompt-cache-and-usage.md +101 -0
- package/skills/qgrid/references/provider-runtime-differences.md +54 -0
- package/skills/qgrid/references/repo-map.md +37 -0
- package/skills/qgrid/references/request-log-run-lifecycle.md +76 -0
- package/skills/qgrid/references/sonamu-api-web-flow.md +47 -0
- package/skills/qgrid/references/token-auth-quota-lifecycle.md +205 -0
- package/skills/qgrid/references/tool-calling-and-multiturn.md +144 -0
- package/skills/qgrid/references/verification-and-debugging.md +193 -0
- package/bundle/web-dist/client/assets/index-5WdFEqZT.css +0 -1
- package/bundle/web-dist/client/assets/index-jnUY7nJ-.js +0 -78
|
@@ -2,6 +2,14 @@ import "../../_virtual/_rolldown/runtime.js";
|
|
|
2
2
|
import { getLogger } from "@logtape/logtape";
|
|
3
3
|
//#region src/application/qgrid/tool-emulation.ts
|
|
4
4
|
const logger = getLogger(["qgrid", "tool-emulation"]);
|
|
5
|
+
function appendImages(content, images) {
|
|
6
|
+
if (!images?.length) return content;
|
|
7
|
+
return [...content, ...images.map((img) => ({
|
|
8
|
+
type: "image",
|
|
9
|
+
data: img.data,
|
|
10
|
+
revisedPrompt: img.revisedPrompt ?? null
|
|
11
|
+
}))];
|
|
12
|
+
}
|
|
5
13
|
function buildToolCallSchema(tools) {
|
|
6
14
|
const toolDescriptions = tools.map((tool) => {
|
|
7
15
|
const schema = JSON.stringify(tool.inputSchema);
|
|
@@ -48,7 +56,7 @@ function buildToolCallSchema(tools) {
|
|
|
48
56
|
additionalProperties: false
|
|
49
57
|
};
|
|
50
58
|
}
|
|
51
|
-
function applyToolCallEmulation(result, tools, threadCoord) {
|
|
59
|
+
function applyToolCallEmulation(result, tools, threadCoord, images) {
|
|
52
60
|
const runContext = threadCoord ? { threadCoord } : void 0;
|
|
53
61
|
if (!tools?.length) {
|
|
54
62
|
const content = [{
|
|
@@ -57,7 +65,7 @@ function applyToolCallEmulation(result, tools, threadCoord) {
|
|
|
57
65
|
}];
|
|
58
66
|
return {
|
|
59
67
|
...result,
|
|
60
|
-
content,
|
|
68
|
+
content: appendImages(content, images),
|
|
61
69
|
finishReason: "stop",
|
|
62
70
|
runContext
|
|
63
71
|
};
|
|
@@ -69,10 +77,10 @@ function applyToolCallEmulation(result, tools, threadCoord) {
|
|
|
69
77
|
logger.warn(`tool-call emulation parse failed, falling back to text: ${e.message}`);
|
|
70
78
|
return {
|
|
71
79
|
...result,
|
|
72
|
-
content: [{
|
|
80
|
+
content: appendImages([{
|
|
73
81
|
type: "text",
|
|
74
82
|
text: result.text
|
|
75
|
-
}],
|
|
83
|
+
}], images),
|
|
76
84
|
finishReason: "stop",
|
|
77
85
|
runContext
|
|
78
86
|
};
|
|
@@ -89,7 +97,7 @@ function applyToolCallEmulation(result, tools, threadCoord) {
|
|
|
89
97
|
});
|
|
90
98
|
return {
|
|
91
99
|
...result,
|
|
92
|
-
content,
|
|
100
|
+
content: appendImages(content, images),
|
|
93
101
|
finishReason: "tool-calls",
|
|
94
102
|
runContext
|
|
95
103
|
};
|
|
@@ -98,10 +106,10 @@ function applyToolCallEmulation(result, tools, threadCoord) {
|
|
|
98
106
|
return {
|
|
99
107
|
...result,
|
|
100
108
|
text,
|
|
101
|
-
content: [{
|
|
109
|
+
content: appendImages([{
|
|
102
110
|
type: "text",
|
|
103
111
|
text
|
|
104
|
-
}],
|
|
112
|
+
}], images),
|
|
105
113
|
finishReason: "stop",
|
|
106
114
|
runContext
|
|
107
115
|
};
|
|
@@ -109,4 +117,4 @@ function applyToolCallEmulation(result, tools, threadCoord) {
|
|
|
109
117
|
//#endregion
|
|
110
118
|
export { applyToolCallEmulation, buildToolCallSchema };
|
|
111
119
|
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1lbXVsYXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3FncmlkL3Rvb2wtZW11bGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5cbmltcG9ydCB7IHR5cGUgSnNvblZhbHVlIH0gZnJvbSBcIi4uLy4uL2NvZGV4LXByb3RvY29sL3NlcmRlX2pzb24vSnNvblZhbHVlXCI7XG5pbXBvcnQge1xuICB0eXBlIFFncmlkQ29udGVudCxcbiAgdHlwZSBRZ3JpZFRocmVhZENvb3JkLFxuICB0eXBlIFFncmlkVG9vbCxcbiAgdHlwZSBRdWVyeU91dHB1dCxcbn0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwidG9vbC1lbXVsYXRpb25cIl0pO1xuXG50eXBlIFRvb2xDYWxsUmVzcG9uc2UgPSB7XG4gIGFjdGlvbjogXCJhbnN3ZXJcIiB8IFwidG9vbF9jYWxsXCI7XG4gIGFuc3dlcj86IHN0cmluZyB8IG51bGw7XG4gIHRvb2xDYWxscz86IEFycmF5PHsgdG9vbE5hbWU6IHN0cmluZzsgYXJnczogc3RyaW5nIH0+
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1lbXVsYXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3FncmlkL3Rvb2wtZW11bGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5cbmltcG9ydCB7IHR5cGUgSnNvblZhbHVlIH0gZnJvbSBcIi4uLy4uL2NvZGV4LXByb3RvY29sL3NlcmRlX2pzb24vSnNvblZhbHVlXCI7XG5pbXBvcnQge1xuICB0eXBlIFFncmlkQ29udGVudCxcbiAgdHlwZSBRZ3JpZFRocmVhZENvb3JkLFxuICB0eXBlIFFncmlkVG9vbCxcbiAgdHlwZSBRdWVyeU91dHB1dCxcbn0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwidG9vbC1lbXVsYXRpb25cIl0pO1xuXG50eXBlIFRvb2xDYWxsUmVzcG9uc2UgPSB7XG4gIGFjdGlvbjogXCJhbnN3ZXJcIiB8IFwidG9vbF9jYWxsXCI7XG4gIGFuc3dlcj86IHN0cmluZyB8IG51bGw7XG4gIHRvb2xDYWxscz86IEFycmF5PHsgdG9vbE5hbWU6IHN0cmluZzsgYXJnczogc3RyaW5nIH0+IHwgbnVsbDtcbn07XG5cbi8vIGRpc3BhdGNoZXIg6rCAIOuEmOq4sOuKlCDsnbTrr7jsp4Ag6rKw6rO8LiBxZ3JpZCDripQgYmFzZTY0IHBheWxvYWQg66eMIOyghOuLrO2VmOqzoCDtj6zrp7fsnYAg67O07J6l7ZWY7KeAIOyViuuKlOuLpC5cbmV4cG9ydCBpbnRlcmZhY2UgRW11bGF0aW9uSW1hZ2Uge1xuICBkYXRhOiBzdHJpbmc7XG4gIHJldmlzZWRQcm9tcHQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyDsobDrpr3rkJwgY29udGVudCDrkqTsl5Ag7J2066+47KeAIO2MjO2KuOulvCBhcHBlbmQg7ZWc64ukLiDrqqjrk6Ag67CY7ZmYIOu2hOq4sOqwgCDqs7XsnKAuXG5mdW5jdGlvbiBhcHBlbmRJbWFnZXMoY29udGVudDogUWdyaWRDb250ZW50W10sIGltYWdlcz86IEVtdWxhdGlvbkltYWdlW10pOiBRZ3JpZENvbnRlbnRbXSB7XG4gIGlmICghaW1hZ2VzPy5sZW5ndGgpIHJldHVybiBjb250ZW50O1xuICByZXR1cm4gW1xuICAgIC4uLmNvbnRlbnQsXG4gICAgLi4uaW1hZ2VzLm1hcChcbiAgICAgIChpbWcpOiBRZ3JpZENvbnRlbnQgPT4gKHtcbiAgICAgICAgdHlwZTogXCJpbWFnZVwiLFxuICAgICAgICBkYXRhOiBpbWcuZGF0YSxcbiAgICAgICAgcmV2aXNlZFByb21wdDogaW1nLnJldmlzZWRQcm9tcHQgPz8gbnVsbCxcbiAgICAgIH0pLFxuICAgICksXG4gIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRvb2xDYWxsU2NoZW1hKHRvb2xzOiBRZ3JpZFRvb2xbXSk6IEpzb25WYWx1ZSB7XG4gIGNvbnN0IHRvb2xEZXNjcmlwdGlvbnMgPSB0b29sc1xuICAgIC5tYXAoKHRvb2wpID0+IHtcbiAgICAgIGNvbnN0IHNjaGVtYSA9IEpTT04uc3RyaW5naWZ5KHRvb2wuaW5wdXRTY2hlbWEpO1xuICAgICAgcmV0dXJuIGAtICR7dG9vbC5uYW1lfTogJHt0b29sLmRlc2NyaXB0aW9uID8/IFwiXCJ9XFxuICBpbnB1dFNjaGVtYTogJHtzY2hlbWF9YDtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJvYmplY3RcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVXNlIHRoaXMgc2NoZW1hIG9ubHkgdGhyb3VnaCBTdHJ1Y3R1cmVkT3V0cHV0LiBEbyBub3QgaW52b2tlIGxpc3RlZCBjbGllbnQgdG9vbHMgYXMgbmF0aXZlIENsYXVkZSBDb2RlIHRvb2xzLiBUbyByZXF1ZXN0IGNsaWVudC1zaWRlIHRvb2wgZXhlY3V0aW9uLCBzZXQgYWN0aW9uIHRvIHRvb2xfY2FsbCBhbmQgaW5jbHVkZSB0b29sQ2FsbHMuIFVzZSBhY3Rpb24gYW5zd2VyIG9ubHkgd2hlbiBubyBmdXJ0aGVyIGNsaWVudCB0b29sIHJlc3VsdCBpcyBuZWVkZWQuXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgYWN0aW9uOiB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGVudW06IFtcImFuc3dlclwiLCBcInRvb2xfY2FsbFwiXSxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJVc2UgdG9vbF9jYWxsIHRvIHJlcXVlc3QgY2xpZW50LXNpZGUgdG9vbCBleGVjdXRpb24gdGhyb3VnaCB0aGlzIHN0cnVjdHVyZWQgb3V0cHV0LiBVc2UgYW5zd2VyIG9ubHkgZm9yIGEgZmluYWwgYW5zd2VyLlwiLFxuICAgICAgfSxcbiAgICAgIGFuc3dlcjogeyBhbnlPZjogW3sgdHlwZTogXCJzdHJpbmdcIiB9LCB7IHR5cGU6IFwibnVsbFwiIH1dIH0sXG4gICAgICB0b29sQ2FsbHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJDbGllbnQtc2lkZSB0b29sIGNhbGxzIHJlcXVlc3RlZCB0aHJvdWdoIHN0cnVjdHVyZWQgb3V0cHV0LiBEbyBub3QgY2FsbCB0aGVzZSB0b29scyBhcyBuYXRpdmUgQ2xhdWRlIENvZGUgdG9vbHMuXCIsXG4gICAgICAgIGFueU9mOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRvb2xOYW1lOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgZW51bTogdG9vbHMubWFwKCh0b29sKSA9PiB0b29sLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBDbGllbnQtc2lkZSB0b29sIG5hbWUgdG8gcmVxdWVzdCB0aHJvdWdoIHN0cnVjdHVyZWQgb3V0cHV0LiBEbyBub3QgY2FsbCB0aGlzIGFzIGEgbmF0aXZlIENsYXVkZSBDb2RlIHRvb2wuXFxuJHt0b29sRGVzY3JpcHRpb25zfWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVG9vbCBhcmd1bWVudHMgYXMgYSBKU09OIHN0cmluZyBmb3IgdGhlIGNsaWVudC1zaWRlIHRvb2wuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtcInRvb2xOYW1lXCIsIFwiYXJnc1wiXSxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgdHlwZTogXCJudWxsXCIgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXF1aXJlZDogW1wiYWN0aW9uXCIsIFwiYW5zd2VyXCIsIFwidG9vbENhbGxzXCJdLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5VG9vbENhbGxFbXVsYXRpb24oXG4gIHJlc3VsdDogT21pdDxRdWVyeU91dHB1dCwgXCJjb250ZW50XCIgfCBcImZpbmlzaFJlYXNvblwiIHwgXCJydW5Db250ZXh0XCI+LFxuICB0b29scz86IFFncmlkVG9vbFtdLFxuICB0aHJlYWRDb29yZD86IFFncmlkVGhyZWFkQ29vcmQsXG4gIGltYWdlcz86IEVtdWxhdGlvbkltYWdlW10sXG4pOiBRdWVyeU91dHB1dCB7XG4gIC8vIHRocmVhZCDsnqzsgqzsmqkg7KKM7ZGc66W8IHJ1bkNvbnRleHQg66GcIOyLpOyWtCDsmKzrprDri6QgKGF1dG8g66qo65Oc64qUIHJlcXVlc3RMb2dJZCDsl4bsnbQgdGhyZWFkQ29vcmQg66eMKS5cbiAgY29uc3QgcnVuQ29udGV4dCA9IHRocmVhZENvb3JkID8geyB0aHJlYWRDb29yZCB9IDogdW5kZWZpbmVkO1xuICAvLyDsnbTrr7jsp4DripQgZmluaXNoUmVhc29uIOqzvCDsp4HqtZDtlZjripQgY29udGVudCDtjIztirguIOyhsOumveuQnCBjb250ZW50IOuSpOyXkCBhcHBlbmQg7ZWc64ukLlxuXG4gIGlmICghdG9vbHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IGNvbnRlbnQ6IFFncmlkQ29udGVudFtdID0gW3sgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IHJlc3VsdC50ZXh0IH1dO1xuICAgIHJldHVybiB7IC4uLnJlc3VsdCwgY29udGVudDogYXBwZW5kSW1hZ2VzKGNvbnRlbnQsIGltYWdlcyksIGZpbmlzaFJlYXNvbjogXCJzdG9wXCIsIHJ1bkNvbnRleHQgfTtcbiAgfVxuXG4gIGxldCBwYXJzZWQ6IFRvb2xDYWxsUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShyZXN1bHQudGV4dCkgYXMgVG9vbENhbGxSZXNwb25zZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci53YXJuKGB0b29sLWNhbGwgZW11bGF0aW9uIHBhcnNlIGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIHRleHQ6ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIGNvbnRlbnQ6IGFwcGVuZEltYWdlcyhbeyB0eXBlOiBcInRleHRcIiwgdGV4dDogcmVzdWx0LnRleHQgfV0sIGltYWdlcyksXG4gICAgICBmaW5pc2hSZWFzb246IFwic3RvcFwiLFxuICAgICAgcnVuQ29udGV4dCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHBhcnNlZC5hY3Rpb24gPT09IFwidG9vbF9jYWxsXCIpIHtcbiAgICBjb25zdCB0b29sQ2FsbHMgPSBwYXJzZWQudG9vbENhbGxzID8/IFtdO1xuICAgIGNvbnN0IGNvbnRlbnQ6IFFncmlkQ29udGVudFtdID0gdG9vbENhbGxzLm1hcCgodG9vbENhbGwpID0+IHtcbiAgICAgIGlmICghdG9vbHMuc29tZSgodG9vbCkgPT4gdG9vbC5uYW1lID09PSB0b29sQ2FsbC50b29sTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGVtdWxhdGVkIHRvb2w6ICR7dG9vbENhbGwudG9vbE5hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidG9vbC1jYWxsXCIsXG4gICAgICAgIHRvb2xDYWxsSWQ6IGBjYWxsXyR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgMTApfWAsXG4gICAgICAgIHRvb2xOYW1lOiB0b29sQ2FsbC50b29sTmFtZSxcbiAgICAgICAgaW5wdXQ6IHRvb2xDYWxsLmFyZ3MsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiB7IC4uLnJlc3VsdCwgY29udGVudDogYXBwZW5kSW1hZ2VzKGNvbnRlbnQsIGltYWdlcyksIGZpbmlzaFJlYXNvbjogXCJ0b29sLWNhbGxzXCIsIHJ1bkNvbnRleHQgfTtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSBwYXJzZWQuYW5zd2VyID8/IHJlc3VsdC50ZXh0O1xuICByZXR1cm4ge1xuICAgIC4uLnJlc3VsdCxcbiAgICB0ZXh0LFxuICAgIGNvbnRlbnQ6IGFwcGVuZEltYWdlcyhbeyB0eXBlOiBcInRleHRcIiwgdGV4dCB9XSwgaW1hZ2VzKSxcbiAgICBmaW5pc2hSZWFzb246IFwic3RvcFwiLFxuICAgIHJ1bkNvbnRleHQsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQVVBLE1BQU0sU0FBUyxVQUFVLENBQUMsU0FBUyxpQkFBaUIsQ0FBQztBQWVyRCxTQUFTLGFBQWEsU0FBeUIsUUFB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
|
|
@@ -112,6 +112,7 @@ var RequestLogModelClass = class extends BaseModelClass {
|
|
|
112
112
|
cache_creation_tokens: 0,
|
|
113
113
|
duration_ms: 0,
|
|
114
114
|
tool_call_count: 0,
|
|
115
|
+
is_image_generation: params.is_image_generation ?? false,
|
|
115
116
|
...params.history !== void 0 ? { history: params.history } : {}
|
|
116
117
|
});
|
|
117
118
|
return wdb.transaction(async (trx) => {
|
|
@@ -145,7 +146,9 @@ var RequestLogModelClass = class extends BaseModelClass {
|
|
|
145
146
|
"cache_creation_tokens",
|
|
146
147
|
"duration_ms",
|
|
147
148
|
"error_message",
|
|
148
|
-
"tool_call_count"
|
|
149
|
+
"tool_call_count",
|
|
150
|
+
"image_cost_usd",
|
|
151
|
+
"image_cost_method"
|
|
149
152
|
]) if (params[key] !== void 0) update[key] = params[key];
|
|
150
153
|
if (params.history !== void 0) update.history = params.history;
|
|
151
154
|
update.ttft_ms = await this.firstGenerateStepTtft(requestLogId) ?? 0;
|
|
@@ -280,4 +283,4 @@ const RequestLogModel = new RequestLogModelClass();
|
|
|
280
283
|
//#endregion
|
|
281
284
|
export { MICRO_USD, RequestLogModel };
|
|
282
285
|
|
|
283
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1sb2cubW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3JlcXVlc3QtbG9nL3JlcXVlc3QtbG9nLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwaSxcbiAgYXNBcnJheSxcbiAgQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgQmFzZU1vZGVsQ2xhc3MsXG4gIGV4aGF1c3RpdmUsXG4gIHR5cGUgTGlzdFJlc3VsdCxcbiAgTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHsgU0QgfSBmcm9tIFwiLi4vLi4vaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUNvc3RVc2QgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcHJvdmlkZXJzL2NvbW1vbi9tb2RlbC1jb3N0XCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3RMb2dTdWJzZXRLZXksIHR5cGUgUmVxdWVzdExvZ1N1YnNldE1hcHBpbmcgfSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgcmVxdWVzdExvZ0xvYWRlclF1ZXJpZXMsIHJlcXVlc3RMb2dTdWJzZXRRdWVyaWVzIH0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWQuc3NvXCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3RMb2dMaXN0UGFyYW1zLCB0eXBlIFJlcXVlc3RMb2dTYXZlUGFyYW1zIH0gZnJvbSBcIi4vcmVxdWVzdC1sb2cudHlwZXNcIjtcblxuLy8gY29zdF91c2TripQg7KCV7IiYIG1pY3JvLVVTROuhnCDsoIDsnqUuIOyLpOygnCBVU0QgPSBjb3N0X3VzZCAvIE1JQ1JPX1VTRC5cbmV4cG9ydCBjb25zdCBNSUNST19VU0QgPSAxXzAwMF8wMDA7XG5cbnR5cGUgUmVxdWVzdExvZ1VzYWdlUm93ID0ge1xuICB0b2tlbl9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgbW9kZWxfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGlucHV0X3Rva2VuczogbnVtYmVyO1xuICBvdXRwdXRfdG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlX3JlYWRfdG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogbnVtYmVyO1xuICBjb3N0X3VzZD86IG51bWJlciB8IG51bGw7XG59O1xuXG5mdW5jdGlvbiBpc0FudGhyb3BpY1VzYWdlUm93KHJvdzogUGljazxSZXF1ZXN0TG9nVXNhZ2VSb3csIFwidG9rZW5fbmFtZVwiIHwgXCJtb2RlbF9uYW1lXCI+KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgcm93LnRva2VuX25hbWU/LnN0YXJ0c1dpdGgoXCJhbnRocm9waWMvXCIpID09PSB0cnVlIHx8XG4gICAgcm93Lm1vZGVsX25hbWU/LnN0YXJ0c1dpdGgoXCJjbGF1ZGUtXCIpID09PSB0cnVlIHx8XG4gICAgcm93Lm1vZGVsX25hbWU/LnN0YXJ0c1dpdGgoXCJhbnRocm9waWMvY2xhdWRlLVwiKSA9PT0gdHJ1ZVxuICApO1xufVxuXG5mdW5jdGlvbiBjYW5vbmljYWxNb2RlbE5hbWUobW9kZWxOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbW9kZWxOYW1lLmluY2x1ZGVzKFwiL1wiKSA/IG1vZGVsTmFtZS5zcGxpdChcIi9cIikucG9wKCkhIDogbW9kZWxOYW1lO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVkVXNhZ2VGb3JDb3N0KHJvdzogUmVxdWVzdExvZ1VzYWdlUm93KToge1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbDtcbiAgaW5wdXRUb2tlbnM6IG51bWJlcjtcbiAgb3V0cHV0VG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlZElucHV0VG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogbnVtYmVyO1xufSB7XG4gIGNvbnN0IGNhY2hlUmVhZCA9IHJvdy5jYWNoZV9yZWFkX3Rva2VucztcbiAgY29uc3QgY2FjaGVDcmVhdGlvbiA9IHJvdy5jYWNoZV9jcmVhdGlvbl90b2tlbnM7XG4gIGNvbnN0IHN0b3JlZElucHV0ID0gcm93LmlucHV0X3Rva2VucztcbiAgY29uc3QgbGVnYWN5QW50aHJvcGljU3BsaXRJbnB1dCA9XG4gICAgaXNBbnRocm9waWNVc2FnZVJvdyhyb3cpICYmIHN0b3JlZElucHV0IDwgY2FjaGVSZWFkICsgY2FjaGVDcmVhdGlvbjtcbiAgcmV0dXJuIHtcbiAgICBtb2RlbDogcm93Lm1vZGVsX25hbWUgPyBjYW5vbmljYWxNb2RlbE5hbWUocm93Lm1vZGVsX25hbWUpIDogbnVsbCxcbiAgICBpbnB1dFRva2VuczogbGVnYWN5QW50aHJvcGljU3BsaXRJbnB1dCA/IHN0b3JlZElucHV0ICsgY2FjaGVSZWFkICsgY2FjaGVDcmVhdGlvbiA6IHN0b3JlZElucHV0LFxuICAgIG91dHB1dFRva2Vuczogcm93Lm91dHB1dF90b2tlbnMsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IGNhY2hlUmVhZCxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IGNhY2hlQ3JlYXRpb24sXG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxlZ2FjeUFudGhyb3BpY1JvdzxUIGV4dGVuZHMgUmVxdWVzdExvZ1VzYWdlUm93Pihyb3c6IFQpOiBUIHtcbiAgY29uc3QgdXNhZ2UgPSBub3JtYWxpemVkVXNhZ2VGb3JDb3N0KHJvdyk7XG4gIGlmICh1c2FnZS5pbnB1dFRva2VucyA9PT0gcm93LmlucHV0X3Rva2VucykgcmV0dXJuIHJvdztcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHsgLi4ucm93LCBpbnB1dF90b2tlbnM6IHVzYWdlLmlucHV0VG9rZW5zIH07XG4gIGlmICh1c2FnZS5tb2RlbCkge1xuICAgIG5vcm1hbGl6ZWQuY29zdF91c2QgPSBNYXRoLnJvdW5kKGNhbGN1bGF0ZUNvc3RVc2QodXNhZ2UubW9kZWwsIHVzYWdlKSAqIE1JQ1JPX1VTRCk7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbi8qXG4gIFJlcXVlc3RMb2cgTW9kZWxcbiovXG5jbGFzcyBSZXF1ZXN0TG9nTW9kZWxDbGFzcyBleHRlbmRzIEJhc2VNb2RlbENsYXNzPFxuICBSZXF1ZXN0TG9nU3Vic2V0S2V5LFxuICBSZXF1ZXN0TG9nU3Vic2V0TWFwcGluZyxcbiAgdHlwZW9mIHJlcXVlc3RMb2dTdWJzZXRRdWVyaWVzLFxuICB0eXBlb2YgcmVxdWVzdExvZ0xvYWRlclF1ZXJpZXNcbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlJlcXVlc3RMb2dcIiwgcmVxdWVzdExvZ1N1YnNldFF1ZXJpZXMsIHJlcXVlc3RMb2dMb2FkZXJRdWVyaWVzKTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiUmVxdWVzdExvZ1wiIH0pXG4gIGFzeW5jIGZpbmRCeUlkPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5PihcbiAgICBzdWJzZXQ6IFQsXG4gICAgaWQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0TG9nU3Vic2V0TWFwcGluZ1tUXT4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIGlkLFxuICAgICAgbnVtOiAxLFxuICAgICAgcGFnZTogMSxcbiAgICB9KTtcbiAgICBpZiAoIXJvd3NbMF0pIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbihTRChcImVycm9yLmVudGl0eU5vdEZvdW5kXCIpKFwiUmVxdWVzdExvZ1wiLCBpZCkpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxUIGV4dGVuZHMgUmVxdWVzdExvZ1N1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGxpc3RQYXJhbXM6IFJlcXVlc3RMb2dMaXN0UGFyYW1zLFxuICApOiBQcm9taXNlPFJlcXVlc3RMb2dTdWJzZXRNYXBwaW5nW1RdIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIC4uLmxpc3RQYXJhbXMsXG4gICAgICBudW06IDEsXG4gICAgICBwYWdlOiAxLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvd3NbMF0gPz8gbnVsbDtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiUmVxdWVzdExvZ3NcIiB9KVxuICBhc3luYyBmaW5kTWFueTxUIGV4dGVuZHMgUmVxdWVzdExvZ1N1YnNldEtleSwgTFAgZXh0ZW5kcyBSZXF1ZXN0TG9nTGlzdFBhcmFtcz4oXG4gICAgc3Vic2V0OiBULFxuICAgIHJhd1BhcmFtcz86IExQLFxuICApOiBQcm9taXNlPExpc3RSZXN1bHQ8TFAsIFJlcXVlc3RMb2dTdWJzZXRNYXBwaW5nW1RdPj4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIG51bTogMjQsXG4gICAgICBwYWdlOiAxLFxuICAgICAgc2VhcmNoOiBcImlkXCIgYXMgY29uc3QsXG4gICAgICBvcmRlckJ5OiBcImlkLWRlc2NcIiBhcyBjb25zdCxcbiAgICAgIC4uLnJhd1BhcmFtcyxcbiAgICB9IHNhdGlzZmllcyBSZXF1ZXN0TG9nTGlzdFBhcmFtcztcblxuICAgIGNvbnN0IHsgcWIsIG9uU3Vic2V0OiBfIH0gPSB0aGlzLmdldFN1YnNldFF1ZXJpZXMoc3Vic2V0KTtcblxuICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgIHFiLndoZXJlSW4oXCJyZXF1ZXN0X2xvZ3MuaWRcIiwgYXNBcnJheShwYXJhbXMuaWQpKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnRva2VuX25hbWUpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnRva2VuX25hbWVcIiwgcGFyYW1zLnRva2VuX25hbWUpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMucHJvamVjdF9uYW1lX2lzX251bGwpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnByb2plY3RfbmFtZVwiLCBudWxsKTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5wcm9qZWN0X25hbWVfaXNfbm90X251bGwpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnByb2plY3RfbmFtZVwiLCBcIiE9XCIsIG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLnByb2plY3RfbmFtZSkge1xuICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MucHJvamVjdF9uYW1lXCIsIHBhcmFtcy5wcm9qZWN0X25hbWUpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMubW9kZWxfbmFtZSkge1xuICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MubW9kZWxfbmFtZVwiLCBwYXJhbXMubW9kZWxfbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5zZWFyY2ggJiYgcGFyYW1zLmtleXdvcmQgJiYgcGFyYW1zLmtleXdvcmQubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwiaWRcIikge1xuICAgICAgICBxYi53aGVyZShcInJlcXVlc3RfbG9ncy5pZFwiLCBOdW1iZXIocGFyYW1zLmtleXdvcmQpKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJ0b2tlbl9uYW1lXCIpIHtcbiAgICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MudG9rZW5fbmFtZVwiLCBcImxpa2VcIiwgYCUke3BhcmFtcy5rZXl3b3JkfSVgKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJ1c2VyX3Byb21wdFwiKSB7XG4gICAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnVzZXJfcHJvbXB0XCIsIFwibGlrZVwiLCBgJSR7cGFyYW1zLmtleXdvcmR9JWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFeGNlcHRpb24oU0QoXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIikocGFyYW1zLnNlYXJjaCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG9yZGVyQnlcbiAgICBpZiAocGFyYW1zLm9yZGVyQnkpIHtcbiAgICAgIC8vIGRlZmF1bHQgb3JkZXJCeVxuICAgICAgaWYgKHBhcmFtcy5vcmRlckJ5ID09PSBcImlkLWRlc2NcIikge1xuICAgICAgICBxYi5vcmRlckJ5KFwicmVxdWVzdF9sb2dzLmlkXCIsIFwiZGVzY1wiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aGF1c3RpdmUocGFyYW1zLm9yZGVyQnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHtcbiAgICAgIEE6IChyb3cpID0+IG5vcm1hbGl6ZUxlZ2FjeUFudGhyb3BpY1Jvdyhyb3cpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHFiLFxuICAgICAgcGFyYW1zLFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLW11dGF0aW9uXCJdIH0pXG4gIGFzeW5jIHNhdmUoc3BhOiBSZXF1ZXN0TG9nU2F2ZVBhcmFtc1tdKTogUHJvbWlzZTxudW1iZXJbXT4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG5cbiAgICAvLyByZWdpc3RlclxuICAgIHNwYS5mb3JFYWNoKChzcCkgPT4ge1xuICAgICAgd2RiLnViUmVnaXN0ZXIoXCJyZXF1ZXN0X2xvZ3NcIiwgc3ApO1xuICAgIH0pO1xuXG4gICAgLy8gdHJhbnNhY3Rpb25cbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRyeC51YlVwc2VydChcInJlcXVlc3RfbG9nc1wiKTtcblxuICAgICAgcmV0dXJuIGlkcztcbiAgICB9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBSdW4gTGlmZWN5Y2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFzeW5jIGNyZWF0ZVJ1bihwYXJhbXM6IHtcbiAgICB1c2VyX3Byb21wdDogc3RyaW5nO1xuICAgIHN5c3RlbV9wcm9tcHQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIG1vZGVsX25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVmZm9ydD86IHN0cmluZyB8IG51bGw7XG4gICAgcHJvamVjdF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICBoaXN0b3J5PzogdW5rbm93bjtcbiAgfSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICB3ZGIudWJSZWdpc3RlcihcInJlcXVlc3RfbG9nc1wiLCB7XG4gICAgICB1c2VyX3Byb21wdDogcGFyYW1zLnVzZXJfcHJvbXB0LFxuICAgICAgc3lzdGVtX3Byb21wdDogcGFyYW1zLnN5c3RlbV9wcm9tcHQgPz8gbnVsbCxcbiAgICAgIG1vZGVsX25hbWU6IHBhcmFtcy5tb2RlbF9uYW1lID8/IG51bGwsXG4gICAgICBlZmZvcnQ6IHBhcmFtcy5lZmZvcnQgPz8gbnVsbCxcbiAgICAgIHByb2plY3RfbmFtZTogcGFyYW1zLnByb2plY3RfbmFtZSA/PyBudWxsLFxuICAgICAgc3RhdHVzOiBcInJ1bm5pbmdcIixcbiAgICAgIHJlc3BvbnNlOiBcIlwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiAwLFxuICAgICAgb3V0cHV0X3Rva2VuczogMCxcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiAwLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiAwLFxuICAgICAgZHVyYXRpb25fbXM6IDAsXG4gICAgICB0b29sX2NhbGxfY291bnQ6IDAsXG4gICAgICAuLi4ocGFyYW1zLmhpc3RvcnkgIT09IHVuZGVmaW5lZCA/IHsgaGlzdG9yeTogcGFyYW1zLmhpc3RvcnkgYXMgeyB0eXBlOiBzdHJpbmcgfVtdIH0gOiB7fSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBjb25zdCBpZHMgPSBhd2FpdCB0cngudWJVcHNlcnQoXCJyZXF1ZXN0X2xvZ3NcIik7XG4gICAgICByZXR1cm4gaWRzWzBdITtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwcGVuZFN0ZXAocmVxdWVzdExvZ0lkOiBudW1iZXIsIHN0ZXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuICAgIHdkYi51YlJlZ2lzdGVyKFwicmVxdWVzdF9sb2dfc3RlcHNcIiwgeyByZXF1ZXN0X2xvZ19pZDogcmVxdWVzdExvZ0lkLCAuLi5zdGVwIH0pO1xuICAgIHJldHVybiB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgY29uc3QgaWRzID0gYXdhaXQgdHJ4LnViVXBzZXJ0KFwicmVxdWVzdF9sb2dfc3RlcHNcIik7XG4gICAgICBpZiAoc3RlcC50eXBlID09PSBcInRvb2xfY2FsbFwiKSB7XG4gICAgICAgIGF3YWl0IHRyeC5mcm9tKFwicmVxdWVzdF9sb2dzXCIpLndoZXJlKFwiaWRcIiwgcmVxdWVzdExvZ0lkKS5pbmNyZW1lbnQoXCJ0b29sX2NhbGxfY291bnRcIiwgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWRzWzBdITtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGZpbmlzaFJ1bihcbiAgICByZXF1ZXN0TG9nSWQ6IG51bWJlcixcbiAgICBwYXJhbXM6IHtcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgcmVzcG9uc2U/OiBzdHJpbmc7XG4gICAgICB0b2tlbl9uYW1lPzogc3RyaW5nO1xuICAgICAgaW5wdXRfdG9rZW5zPzogbnVtYmVyO1xuICAgICAgb3V0cHV0X3Rva2Vucz86IG51bWJlcjtcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zPzogbnVtYmVyO1xuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zPzogbnVtYmVyO1xuICAgICAgZHVyYXRpb25fbXM/OiBudW1iZXI7XG4gICAgICBoaXN0b3J5PzogdW5rbm93bjtcbiAgICAgIGVycm9yX21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgICB0b29sX2NhbGxfY291bnQ/OiBudW1iZXI7XG4gICAgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHBhcmFtcy5zdGF0dXMgPT09IFwic3VjY2VlZGVkXCIgJiYgIXBhcmFtcy50b2tlbl9uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0b2tlbk5hbWUgaXMgcmVxdWlyZWQgZm9yIHN1Y2NlZWRlZCBydW5zXCIpO1xuICAgIH1cbiAgICBjb25zdCB1cGRhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyBpZDogcmVxdWVzdExvZ0lkLCBzdGF0dXM6IHBhcmFtcy5zdGF0dXMgfTtcbiAgICBjb25zdCBmaWVsZHMgPSBbXG4gICAgICBcInJlc3BvbnNlXCIsXG4gICAgICBcInRva2VuX25hbWVcIixcbiAgICAgIFwiaW5wdXRfdG9rZW5zXCIsXG4gICAgICBcIm91dHB1dF90b2tlbnNcIixcbiAgICAgIFwiY2FjaGVfcmVhZF90b2tlbnNcIixcbiAgICAgIFwiY2FjaGVfY3JlYXRpb25fdG9rZW5zXCIsXG4gICAgICBcImR1cmF0aW9uX21zXCIsXG4gICAgICBcImVycm9yX21lc3NhZ2VcIixcbiAgICAgIFwidG9vbF9jYWxsX2NvdW50XCIsXG4gICAgXSBhcyBjb25zdDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBmaWVsZHMpIHtcbiAgICAgIGlmIChwYXJhbXNba2V5XSAhPT0gdW5kZWZpbmVkKSB1cGRhdGVba2V5XSA9IHBhcmFtc1trZXldO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmhpc3RvcnkgIT09IHVuZGVmaW5lZCkgdXBkYXRlLmhpc3RvcnkgPSBwYXJhbXMuaGlzdG9yeTtcbiAgICB1cGRhdGUudHRmdF9tcyA9IChhd2FpdCB0aGlzLmZpcnN0R2VuZXJhdGVTdGVwVHRmdChyZXF1ZXN0TG9nSWQpKSA/PyAwO1xuXG4gICAgaWYgKHBhcmFtcy5pbnB1dF90b2tlbnMgIT09IHVuZGVmaW5lZCAmJiBwYXJhbXMub3V0cHV0X3Rva2VucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBkYiA9IHRoaXMuZ2V0REIoXCJyXCIpO1xuICAgICAgY29uc3QgW3Jvd10gPSBhd2FpdCBkYihcInJlcXVlc3RfbG9nc1wiKVxuICAgICAgICAuc2VsZWN0KFwibW9kZWxfbmFtZVwiKVxuICAgICAgICAud2hlcmUoXCJpZFwiLCByZXF1ZXN0TG9nSWQpXG4gICAgICAgIC5saW1pdCgxKTtcbiAgICAgIGlmIChyb3c/Lm1vZGVsX25hbWUpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBjYW5vbmljYWxNb2RlbE5hbWUocm93Lm1vZGVsX25hbWUpO1xuICAgICAgICBjb25zdCB1c2FnZSA9IG5vcm1hbGl6ZWRVc2FnZUZvckNvc3Qoe1xuICAgICAgICAgIHRva2VuX25hbWU6IHBhcmFtcy50b2tlbl9uYW1lLFxuICAgICAgICAgIG1vZGVsX25hbWU6IHJvdy5tb2RlbF9uYW1lLFxuICAgICAgICAgIGlucHV0X3Rva2VuczogcGFyYW1zLmlucHV0X3Rva2VucyxcbiAgICAgICAgICBvdXRwdXRfdG9rZW5zOiBwYXJhbXMub3V0cHV0X3Rva2VucyxcbiAgICAgICAgICBjYWNoZV9yZWFkX3Rva2VuczogcGFyYW1zLmNhY2hlX3JlYWRfdG9rZW5zID8/IDAsXG4gICAgICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBwYXJhbXMuY2FjaGVfY3JlYXRpb25fdG9rZW5zID8/IDAsXG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGUuY29zdF91c2QgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIGNhbGN1bGF0ZUNvc3RVc2QobW9kZWwsIHtcbiAgICAgICAgICAgIGlucHV0VG9rZW5zOiB1c2FnZS5pbnB1dFRva2VucyxcbiAgICAgICAgICAgIG91dHB1dFRva2VuczogdXNhZ2Uub3V0cHV0VG9rZW5zLFxuICAgICAgICAgICAgY2FjaGVkSW5wdXRUb2tlbnM6IHVzYWdlLmNhY2hlZElucHV0VG9rZW5zLFxuICAgICAgICAgICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiB1c2FnZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMsXG4gICAgICAgICAgfSkgKiAxXzAwMF8wMDAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICB3ZGIudWJSZWdpc3RlcihcInJlcXVlc3RfbG9nc1wiLCB1cGRhdGUpO1xuICAgIGF3YWl0IHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBhd2FpdCB0cngudWJVcHNlcnQoXCJyZXF1ZXN0X2xvZ3NcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBmaXJzdEdlbmVyYXRlU3RlcFR0ZnQocmVxdWVzdExvZ0lkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlciB8IG51bGw+IHtcbiAgICBjb25zdCBkYiA9IHRoaXMuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IFtyb3ddID0gYXdhaXQgZGIoXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKVxuICAgICAgLnNlbGVjdChcInR0ZnRfbXNcIilcbiAgICAgIC53aGVyZShcInJlcXVlc3RfbG9nX2lkXCIsIHJlcXVlc3RMb2dJZClcbiAgICAgIC53aGVyZShcInR5cGVcIiwgXCJnZW5lcmF0ZVwiKVxuICAgICAgLndoZXJlTm90TnVsbChcInR0ZnRfbXNcIilcbiAgICAgIC5vcmRlckJ5KFwic3RlcF9pbmRleFwiLCBcImFzY1wiKVxuICAgICAgLm9yZGVyQnkoXCJpZFwiLCBcImFzY1wiKVxuICAgICAgLmxpbWl0KDEpO1xuICAgIHJldHVybiByb3c/LnR0ZnRfbXMgPT09IG51bGwgfHwgcm93Py50dGZ0X21zID09PSB1bmRlZmluZWQgPyBudWxsIDogTnVtYmVyKHJvdy50dGZ0X21zKTtcbiAgfVxuXG4gIGFzeW5jIGFnZ3JlZ2F0ZVN0ZXBVc2FnZShyZXF1ZXN0TG9nSWQ6IG51bWJlcik6IFByb21pc2U8e1xuICAgIGlucHV0X3Rva2VuczogbnVtYmVyO1xuICAgIG91dHB1dF90b2tlbnM6IG51bWJlcjtcbiAgICBjYWNoZV9yZWFkX3Rva2VuczogbnVtYmVyO1xuICAgIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogbnVtYmVyO1xuICAgIGR1cmF0aW9uX21zOiBudW1iZXI7XG4gIH0+IHtcbiAgICBjb25zdCBkYiA9IHRoaXMuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IFtyb3ddID0gYXdhaXQgZGIoXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKVxuICAgICAgLndoZXJlKFwicmVxdWVzdF9sb2dfaWRcIiwgcmVxdWVzdExvZ0lkKVxuICAgICAgLndoZXJlKFwidHlwZVwiLCBcImdlbmVyYXRlXCIpXG4gICAgICAuc3VtKHtcbiAgICAgICAgaW5wdXRfdG9rZW5zOiBcImlucHV0X3Rva2Vuc1wiLFxuICAgICAgICBvdXRwdXRfdG9rZW5zOiBcIm91dHB1dF90b2tlbnNcIixcbiAgICAgICAgY2FjaGVfcmVhZF90b2tlbnM6IFwiY2FjaGVfcmVhZF90b2tlbnNcIixcbiAgICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBcImNhY2hlX2NyZWF0aW9uX3Rva2Vuc1wiLFxuICAgICAgICBkdXJhdGlvbl9tczogXCJkdXJhdGlvbl9tc1wiLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0X3Rva2VuczogTnVtYmVyKHJvdz8uaW5wdXRfdG9rZW5zID8/IDApLFxuICAgICAgb3V0cHV0X3Rva2VuczogTnVtYmVyKHJvdz8ub3V0cHV0X3Rva2VucyA/PyAwKSxcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBOdW1iZXIocm93Py5jYWNoZV9yZWFkX3Rva2VucyA/PyAwKSxcbiAgICAgIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogTnVtYmVyKHJvdz8uY2FjaGVfY3JlYXRpb25fdG9rZW5zID8/IDApLFxuICAgICAgZHVyYXRpb25fbXM6IE51bWJlcihyb3c/LmR1cmF0aW9uX21zID8/IDApLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmaW5kU3RhbGVSdW5uaW5nSWRzKHRocmVzaG9sZE1zOiBudW1iZXIsIGxpbWl0OiBudW1iZXIgPSAxMCk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCBkYiA9IHRoaXMuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IG5ldyBEYXRlKERhdGUubm93KCkgLSB0aHJlc2hvbGRNcyk7XG4gICAgY29uc3Qgcm93cyA9IGF3YWl0IGRiKFwicmVxdWVzdF9sb2dzXCIpXG4gICAgICAuc2VsZWN0KFwiaWRcIilcbiAgICAgIC53aGVyZShcInN0YXR1c1wiLCBcInJ1bm5pbmdcIilcbiAgICAgIC53aGVyZShcImNyZWF0ZWRfYXRcIiwgXCI8XCIsIHRocmVzaG9sZClcbiAgICAgIC5saW1pdChsaW1pdCk7XG4gICAgcmV0dXJuIHJvd3MubWFwKChyOiB7IGlkOiBudW1iZXIgfSkgPT4gci5pZCk7XG4gIH1cblxuICBhc3luYyBnZXROZXh0U3RlcEluZGV4KHJlcXVlc3RMb2dJZDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBkYiA9IHRoaXMuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IFtyb3ddID0gYXdhaXQgZGIoXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKVxuICAgICAgLndoZXJlKFwicmVxdWVzdF9sb2dfaWRcIiwgcmVxdWVzdExvZ0lkKVxuICAgICAgLm1heChcInN0ZXBfaW5kZXggYXMgbWF4U3RlcFwiKTtcbiAgICByZXR1cm4gKChyb3cgYXMgeyBtYXhTdGVwOiBudW1iZXIgfCBudWxsIH0pPy5tYXhTdGVwID8/IC0xKSArIDE7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZVRvb2xDYWxsKFxuICAgIHJlcXVlc3RMb2dJZDogbnVtYmVyLFxuICAgIHRvb2xDYWxsSWQ6IHN0cmluZyxcbiAgICBwYXJhbXM6IHsgdG9vbF9yZXN1bHQ/OiBzdHJpbmc7IHRvb2xfZHVyYXRpb25fbXM/OiBudW1iZXI7IGVycm9yPzogc3RyaW5nIH0sXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0cnhcbiAgICAgICAgLmZyb20oXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKVxuICAgICAgICAud2hlcmUoXCJyZXF1ZXN0X2xvZ19pZFwiLCByZXF1ZXN0TG9nSWQpXG4gICAgICAgIC53aGVyZShcInRvb2xfY2FsbF9pZFwiLCB0b29sQ2FsbElkKVxuICAgICAgICAud2hlcmUoXCJ0eXBlXCIsIFwidG9vbF9jYWxsXCIpXG4gICAgICAgIC51cGRhdGUoe1xuICAgICAgICAgIC4uLihwYXJhbXMudG9vbF9yZXN1bHQgIT09IHVuZGVmaW5lZCA/IHsgdG9vbF9yZXN1bHQ6IHBhcmFtcy50b29sX3Jlc3VsdCB9IDoge30pLFxuICAgICAgICAgIC4uLihwYXJhbXMudG9vbF9kdXJhdGlvbl9tcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHsgdG9vbF9kdXJhdGlvbl9tczogcGFyYW1zLnRvb2xfZHVyYXRpb25fbXMgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgLi4uKHBhcmFtcy5lcnJvciAhPT0gdW5kZWZpbmVkID8geyBlcnJvcjogcGFyYW1zLmVycm9yIH0gOiB7fSksXG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSk7XG4gIH1cblxuICAvLyBTb25hbXUgZmluZE1hbnnripQgc3Vic2V0IOyghOyytCDsu6zrn7wodGV4dCDtj6ztlagp7J2EIO2OmOy5mO2VtOyEnCBhZ2dyZWdhdGXsl5Qg64SI66y0IOustOqxsOybgCDihpIgcmF3IHN1bSDsgqzsmqkuXG4gIGFzeW5jIHRvdGFsQ29zdChwYXJhbXM6IHsgdG9rZW5fbmFtZT86IHN0cmluZyB9ID0ge30pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHFiID0gdGhpcy5nZXREQihcInJcIikoXCJyZXF1ZXN0X2xvZ3NcIik7XG4gICAgaWYgKHBhcmFtcy50b2tlbl9uYW1lKSB7XG4gICAgICBxYi53aGVyZShcInRva2VuX25hbWVcIiwgcGFyYW1zLnRva2VuX25hbWUpO1xuICAgIH1cbiAgICAvLyDquLDsobQgY29zdF91c2Qg7JeQ64qUIOqzvOqxsCBBbnRocm9waWMgY2FjaGUg6rOE7IKwIOuyhOq3uOuhnCDsnYzsiJjqsIAg7KCA7J6l65CcIHJvdyDqsIAg7J6I7J2EIOyImCDsnojri6QuXG4gICAgLy8g7ZmU66m0IOynkeqzhOuKlCDsoIDsnqXqsJIgc3VtIOydtCDslYTri4jrnbwg7ZiE7J6sIOqzhOyCsOyLneycvOuhnCB1c2FnZSDrpbwg7J6s6rOE7IKw7ZW0IOqzvOqxsCDroZzqt7jrj4Qg7KaJ7IucIOuztOygle2VnOuLpC5cbiAgICBjb25zdCByb3dzID0gKGF3YWl0IHFiLnNlbGVjdChcbiAgICAgIFwibW9kZWxfbmFtZVwiLFxuICAgICAgXCJpbnB1dF90b2tlbnNcIixcbiAgICAgIFwib3V0cHV0X3Rva2Vuc1wiLFxuICAgICAgXCJjYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgXCJjYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIFwiY29zdF91c2RcIixcbiAgICApKSBhcyBBcnJheTx7XG4gICAgICBtb2RlbF9uYW1lOiBzdHJpbmcgfCBudWxsO1xuICAgICAgaW5wdXRfdG9rZW5zOiBudW1iZXI7XG4gICAgICBvdXRwdXRfdG9rZW5zOiBudW1iZXI7XG4gICAgICBjYWNoZV9yZWFkX3Rva2VuczogbnVtYmVyO1xuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBudW1iZXI7XG4gICAgICBjb3N0X3VzZDogbnVtYmVyIHwgbnVsbDtcbiAgICB9PjtcblxuICAgIHJldHVybiByb3dzLnJlZHVjZSgoc3VtLCByb3cpID0+IHtcbiAgICAgIGNvbnN0IHVzYWdlID0gbm9ybWFsaXplZFVzYWdlRm9yQ29zdChyb3cpO1xuICAgICAgaWYgKCF1c2FnZS5tb2RlbCkgcmV0dXJuIHN1bSArIE1hdGgubWF4KHJvdy5jb3N0X3VzZCA/PyAwLCAwKSAvIE1JQ1JPX1VTRDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHN1bSArXG4gICAgICAgIGNhbGN1bGF0ZUNvc3RVc2QodXNhZ2UubW9kZWwsIHtcbiAgICAgICAgICBpbnB1dFRva2VuczogdXNhZ2UuaW5wdXRUb2tlbnMsXG4gICAgICAgICAgb3V0cHV0VG9rZW5zOiB1c2FnZS5vdXRwdXRUb2tlbnMsXG4gICAgICAgICAgY2FjaGVkSW5wdXRUb2tlbnM6IHVzYWdlLmNhY2hlZElucHV0VG9rZW5zLFxuICAgICAgICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogdXNhZ2UuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGFzeW5jIGRpc3RpbmN0UHJvamVjdE5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXRQdXJpKFwiclwiKVxuICAgICAgLmZyb20oXCJyZXF1ZXN0X2xvZ3NcIilcbiAgICAgIC5kaXN0aW5jdChcInByb2plY3RfbmFtZVwiKVxuICAgICAgLndoZXJlKFwicHJvamVjdF9uYW1lXCIsIFwiIT1cIiwgbnVsbClcbiAgICAgIC5vcmRlckJ5KFwicHJvamVjdF9uYW1lXCIsIFwiYXNjXCIpXG4gICAgICAuc2VsZWN0KHtcbiAgICAgICAgcHJvamVjdF9uYW1lOiBcInByb2plY3RfbmFtZVwiLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJvd3MubWFwKChyKSA9PiByLnByb2plY3RfbmFtZSEpO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLW11dGF0aW9uXCJdIH0pXG4gIGFzeW5jIGRlbChpZHM6IG51bWJlcltdKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuXG4gICAgLy8gdHJhbnNhY3Rpb25cbiAgICBhd2FpdCB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgYXdhaXQgdHJ4XG4gICAgICAgIC50YWJsZShcInJlcXVlc3RfbG9nX3N0ZXBzXCIpXG4gICAgICAgIC53aGVyZUluKFwicmVxdWVzdF9sb2dfc3RlcHMucmVxdWVzdF9sb2dfaWRcIiwgaWRzKVxuICAgICAgICAuZGVsZXRlKCk7XG4gICAgICByZXR1cm4gdHJ4LnRhYmxlKFwicmVxdWVzdF9sb2dzXCIpLndoZXJlSW4oXCJyZXF1ZXN0X2xvZ3MuaWRcIiwgaWRzKS5kZWxldGUoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBpZHMubGVuZ3RoO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nTW9kZWwgPSBuZXcgUmVxdWVzdExvZ01vZGVsQ2xhc3MoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFpQkEsTUFBYSxZQUFZO0FBWXpCLFNBQVMsb0JBQW9CLEtBQXFFO0FBQ2hHLFFBQ0UsSUFBSSxZQUFZLFdBQVcsYUFBYSxLQUFLLFFBQzdDLElBQUks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
|
|
286
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1sb2cubW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3JlcXVlc3QtbG9nL3JlcXVlc3QtbG9nLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwaSxcbiAgYXNBcnJheSxcbiAgQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgQmFzZU1vZGVsQ2xhc3MsXG4gIGV4aGF1c3RpdmUsXG4gIHR5cGUgTGlzdFJlc3VsdCxcbiAgTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHsgU0QgfSBmcm9tIFwiLi4vLi4vaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUNvc3RVc2QgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcHJvdmlkZXJzL2NvbW1vbi9tb2RlbC1jb3N0XCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3RMb2dTdWJzZXRLZXksIHR5cGUgUmVxdWVzdExvZ1N1YnNldE1hcHBpbmcgfSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgcmVxdWVzdExvZ0xvYWRlclF1ZXJpZXMsIHJlcXVlc3RMb2dTdWJzZXRRdWVyaWVzIH0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWQuc3NvXCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3RMb2dMaXN0UGFyYW1zLCB0eXBlIFJlcXVlc3RMb2dTYXZlUGFyYW1zIH0gZnJvbSBcIi4vcmVxdWVzdC1sb2cudHlwZXNcIjtcblxuLy8gY29zdF91c2TripQg7KCV7IiYIG1pY3JvLVVTROuhnCDsoIDsnqUuIOyLpOygnCBVU0QgPSBjb3N0X3VzZCAvIE1JQ1JPX1VTRC5cbmV4cG9ydCBjb25zdCBNSUNST19VU0QgPSAxXzAwMF8wMDA7XG5cbnR5cGUgUmVxdWVzdExvZ1VzYWdlUm93ID0ge1xuICB0b2tlbl9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgbW9kZWxfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGlucHV0X3Rva2VuczogbnVtYmVyO1xuICBvdXRwdXRfdG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlX3JlYWRfdG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogbnVtYmVyO1xuICBjb3N0X3VzZD86IG51bWJlciB8IG51bGw7XG59O1xuXG5mdW5jdGlvbiBpc0FudGhyb3BpY1VzYWdlUm93KHJvdzogUGljazxSZXF1ZXN0TG9nVXNhZ2VSb3csIFwidG9rZW5fbmFtZVwiIHwgXCJtb2RlbF9uYW1lXCI+KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgcm93LnRva2VuX25hbWU/LnN0YXJ0c1dpdGgoXCJhbnRocm9waWMvXCIpID09PSB0cnVlIHx8XG4gICAgcm93Lm1vZGVsX25hbWU/LnN0YXJ0c1dpdGgoXCJjbGF1ZGUtXCIpID09PSB0cnVlIHx8XG4gICAgcm93Lm1vZGVsX25hbWU/LnN0YXJ0c1dpdGgoXCJhbnRocm9waWMvY2xhdWRlLVwiKSA9PT0gdHJ1ZVxuICApO1xufVxuXG5mdW5jdGlvbiBjYW5vbmljYWxNb2RlbE5hbWUobW9kZWxOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbW9kZWxOYW1lLmluY2x1ZGVzKFwiL1wiKSA/IG1vZGVsTmFtZS5zcGxpdChcIi9cIikucG9wKCkhIDogbW9kZWxOYW1lO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVkVXNhZ2VGb3JDb3N0KHJvdzogUmVxdWVzdExvZ1VzYWdlUm93KToge1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbDtcbiAgaW5wdXRUb2tlbnM6IG51bWJlcjtcbiAgb3V0cHV0VG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlZElucHV0VG9rZW5zOiBudW1iZXI7XG4gIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogbnVtYmVyO1xufSB7XG4gIGNvbnN0IGNhY2hlUmVhZCA9IHJvdy5jYWNoZV9yZWFkX3Rva2VucztcbiAgY29uc3QgY2FjaGVDcmVhdGlvbiA9IHJvdy5jYWNoZV9jcmVhdGlvbl90b2tlbnM7XG4gIGNvbnN0IHN0b3JlZElucHV0ID0gcm93LmlucHV0X3Rva2VucztcbiAgY29uc3QgbGVnYWN5QW50aHJvcGljU3BsaXRJbnB1dCA9XG4gICAgaXNBbnRocm9waWNVc2FnZVJvdyhyb3cpICYmIHN0b3JlZElucHV0IDwgY2FjaGVSZWFkICsgY2FjaGVDcmVhdGlvbjtcbiAgcmV0dXJuIHtcbiAgICBtb2RlbDogcm93Lm1vZGVsX25hbWUgPyBjYW5vbmljYWxNb2RlbE5hbWUocm93Lm1vZGVsX25hbWUpIDogbnVsbCxcbiAgICBpbnB1dFRva2VuczogbGVnYWN5QW50aHJvcGljU3BsaXRJbnB1dCA/IHN0b3JlZElucHV0ICsgY2FjaGVSZWFkICsgY2FjaGVDcmVhdGlvbiA6IHN0b3JlZElucHV0LFxuICAgIG91dHB1dFRva2Vuczogcm93Lm91dHB1dF90b2tlbnMsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IGNhY2hlUmVhZCxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IGNhY2hlQ3JlYXRpb24sXG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxlZ2FjeUFudGhyb3BpY1JvdzxUIGV4dGVuZHMgUmVxdWVzdExvZ1VzYWdlUm93Pihyb3c6IFQpOiBUIHtcbiAgY29uc3QgdXNhZ2UgPSBub3JtYWxpemVkVXNhZ2VGb3JDb3N0KHJvdyk7XG4gIGlmICh1c2FnZS5pbnB1dFRva2VucyA9PT0gcm93LmlucHV0X3Rva2VucykgcmV0dXJuIHJvdztcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHsgLi4ucm93LCBpbnB1dF90b2tlbnM6IHVzYWdlLmlucHV0VG9rZW5zIH07XG4gIGlmICh1c2FnZS5tb2RlbCkge1xuICAgIG5vcm1hbGl6ZWQuY29zdF91c2QgPSBNYXRoLnJvdW5kKGNhbGN1bGF0ZUNvc3RVc2QodXNhZ2UubW9kZWwsIHVzYWdlKSAqIE1JQ1JPX1VTRCk7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbi8qXG4gIFJlcXVlc3RMb2cgTW9kZWxcbiovXG5jbGFzcyBSZXF1ZXN0TG9nTW9kZWxDbGFzcyBleHRlbmRzIEJhc2VNb2RlbENsYXNzPFxuICBSZXF1ZXN0TG9nU3Vic2V0S2V5LFxuICBSZXF1ZXN0TG9nU3Vic2V0TWFwcGluZyxcbiAgdHlwZW9mIHJlcXVlc3RMb2dTdWJzZXRRdWVyaWVzLFxuICB0eXBlb2YgcmVxdWVzdExvZ0xvYWRlclF1ZXJpZXNcbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlJlcXVlc3RMb2dcIiwgcmVxdWVzdExvZ1N1YnNldFF1ZXJpZXMsIHJlcXVlc3RMb2dMb2FkZXJRdWVyaWVzKTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiUmVxdWVzdExvZ1wiIH0pXG4gIGFzeW5jIGZpbmRCeUlkPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5PihcbiAgICBzdWJzZXQ6IFQsXG4gICAgaWQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0TG9nU3Vic2V0TWFwcGluZ1tUXT4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIGlkLFxuICAgICAgbnVtOiAxLFxuICAgICAgcGFnZTogMSxcbiAgICB9KTtcbiAgICBpZiAoIXJvd3NbMF0pIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbihTRChcImVycm9yLmVudGl0eU5vdEZvdW5kXCIpKFwiUmVxdWVzdExvZ1wiLCBpZCkpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxUIGV4dGVuZHMgUmVxdWVzdExvZ1N1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGxpc3RQYXJhbXM6IFJlcXVlc3RMb2dMaXN0UGFyYW1zLFxuICApOiBQcm9taXNlPFJlcXVlc3RMb2dTdWJzZXRNYXBwaW5nW1RdIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIC4uLmxpc3RQYXJhbXMsXG4gICAgICBudW06IDEsXG4gICAgICBwYWdlOiAxLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvd3NbMF0gPz8gbnVsbDtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiUmVxdWVzdExvZ3NcIiB9KVxuICBhc3luYyBmaW5kTWFueTxUIGV4dGVuZHMgUmVxdWVzdExvZ1N1YnNldEtleSwgTFAgZXh0ZW5kcyBSZXF1ZXN0TG9nTGlzdFBhcmFtcz4oXG4gICAgc3Vic2V0OiBULFxuICAgIHJhd1BhcmFtcz86IExQLFxuICApOiBQcm9taXNlPExpc3RSZXN1bHQ8TFAsIFJlcXVlc3RMb2dTdWJzZXRNYXBwaW5nW1RdPj4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIG51bTogMjQsXG4gICAgICBwYWdlOiAxLFxuICAgICAgc2VhcmNoOiBcImlkXCIgYXMgY29uc3QsXG4gICAgICBvcmRlckJ5OiBcImlkLWRlc2NcIiBhcyBjb25zdCxcbiAgICAgIC4uLnJhd1BhcmFtcyxcbiAgICB9IHNhdGlzZmllcyBSZXF1ZXN0TG9nTGlzdFBhcmFtcztcblxuICAgIGNvbnN0IHsgcWIsIG9uU3Vic2V0OiBfIH0gPSB0aGlzLmdldFN1YnNldFF1ZXJpZXMoc3Vic2V0KTtcblxuICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgIHFiLndoZXJlSW4oXCJyZXF1ZXN0X2xvZ3MuaWRcIiwgYXNBcnJheShwYXJhbXMuaWQpKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnRva2VuX25hbWUpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnRva2VuX25hbWVcIiwgcGFyYW1zLnRva2VuX25hbWUpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMucHJvamVjdF9uYW1lX2lzX251bGwpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnByb2plY3RfbmFtZVwiLCBudWxsKTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5wcm9qZWN0X25hbWVfaXNfbm90X251bGwpIHtcbiAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnByb2plY3RfbmFtZVwiLCBcIiE9XCIsIG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLnByb2plY3RfbmFtZSkge1xuICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MucHJvamVjdF9uYW1lXCIsIHBhcmFtcy5wcm9qZWN0X25hbWUpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMubW9kZWxfbmFtZSkge1xuICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MubW9kZWxfbmFtZVwiLCBwYXJhbXMubW9kZWxfbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5zZWFyY2ggJiYgcGFyYW1zLmtleXdvcmQgJiYgcGFyYW1zLmtleXdvcmQubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwiaWRcIikge1xuICAgICAgICBxYi53aGVyZShcInJlcXVlc3RfbG9ncy5pZFwiLCBOdW1iZXIocGFyYW1zLmtleXdvcmQpKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJ0b2tlbl9uYW1lXCIpIHtcbiAgICAgICAgcWIud2hlcmUoXCJyZXF1ZXN0X2xvZ3MudG9rZW5fbmFtZVwiLCBcImxpa2VcIiwgYCUke3BhcmFtcy5rZXl3b3JkfSVgKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJ1c2VyX3Byb21wdFwiKSB7XG4gICAgICAgIHFiLndoZXJlKFwicmVxdWVzdF9sb2dzLnVzZXJfcHJvbXB0XCIsIFwibGlrZVwiLCBgJSR7cGFyYW1zLmtleXdvcmR9JWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFeGNlcHRpb24oU0QoXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIikocGFyYW1zLnNlYXJjaCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG9yZGVyQnlcbiAgICBpZiAocGFyYW1zLm9yZGVyQnkpIHtcbiAgICAgIC8vIGRlZmF1bHQgb3JkZXJCeVxuICAgICAgaWYgKHBhcmFtcy5vcmRlckJ5ID09PSBcImlkLWRlc2NcIikge1xuICAgICAgICBxYi5vcmRlckJ5KFwicmVxdWVzdF9sb2dzLmlkXCIsIFwiZGVzY1wiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aGF1c3RpdmUocGFyYW1zLm9yZGVyQnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHtcbiAgICAgIEE6IChyb3cpID0+IG5vcm1hbGl6ZUxlZ2FjeUFudGhyb3BpY1Jvdyhyb3cpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHFiLFxuICAgICAgcGFyYW1zLFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLW11dGF0aW9uXCJdIH0pXG4gIGFzeW5jIHNhdmUoc3BhOiBSZXF1ZXN0TG9nU2F2ZVBhcmFtc1tdKTogUHJvbWlzZTxudW1iZXJbXT4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG5cbiAgICAvLyByZWdpc3RlclxuICAgIHNwYS5mb3JFYWNoKChzcCkgPT4ge1xuICAgICAgd2RiLnViUmVnaXN0ZXIoXCJyZXF1ZXN0X2xvZ3NcIiwgc3ApO1xuICAgIH0pO1xuXG4gICAgLy8gdHJhbnNhY3Rpb25cbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRyeC51YlVwc2VydChcInJlcXVlc3RfbG9nc1wiKTtcblxuICAgICAgcmV0dXJuIGlkcztcbiAgICB9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBSdW4gTGlmZWN5Y2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFzeW5jIGNyZWF0ZVJ1bihwYXJhbXM6IHtcbiAgICB1c2VyX3Byb21wdDogc3RyaW5nO1xuICAgIHN5c3RlbV9wcm9tcHQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIG1vZGVsX25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVmZm9ydD86IHN0cmluZyB8IG51bGw7XG4gICAgcHJvamVjdF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICBoaXN0b3J5PzogdW5rbm93bjtcbiAgICBpc19pbWFnZV9nZW5lcmF0aW9uPzogYm9vbGVhbjtcbiAgfSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICB3ZGIudWJSZWdpc3RlcihcInJlcXVlc3RfbG9nc1wiLCB7XG4gICAgICB1c2VyX3Byb21wdDogcGFyYW1zLnVzZXJfcHJvbXB0LFxuICAgICAgc3lzdGVtX3Byb21wdDogcGFyYW1zLnN5c3RlbV9wcm9tcHQgPz8gbnVsbCxcbiAgICAgIG1vZGVsX25hbWU6IHBhcmFtcy5tb2RlbF9uYW1lID8/IG51bGwsXG4gICAgICBlZmZvcnQ6IHBhcmFtcy5lZmZvcnQgPz8gbnVsbCxcbiAgICAgIHByb2plY3RfbmFtZTogcGFyYW1zLnByb2plY3RfbmFtZSA/PyBudWxsLFxuICAgICAgc3RhdHVzOiBcInJ1bm5pbmdcIixcbiAgICAgIHJlc3BvbnNlOiBcIlwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiAwLFxuICAgICAgb3V0cHV0X3Rva2VuczogMCxcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiAwLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiAwLFxuICAgICAgZHVyYXRpb25fbXM6IDAsXG4gICAgICB0b29sX2NhbGxfY291bnQ6IDAsXG4gICAgICAvLyDsnbTrr7jsp4AgdHVybiDsi53rs4QoUjEzKS4gcnVuIOqyveuhnCh0b29scytpbWFnZSDsobDtlakp64+EIGF1dG8g6rK966Gc7JmAIOuPmeydvO2VmOqyjCDrp4jtgrkuXG4gICAgICBpc19pbWFnZV9nZW5lcmF0aW9uOiBwYXJhbXMuaXNfaW1hZ2VfZ2VuZXJhdGlvbiA/PyBmYWxzZSxcbiAgICAgIC4uLihwYXJhbXMuaGlzdG9yeSAhPT0gdW5kZWZpbmVkID8geyBoaXN0b3J5OiBwYXJhbXMuaGlzdG9yeSBhcyB7IHR5cGU6IHN0cmluZyB9W10gfSA6IHt9KSxcbiAgICB9KTtcbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRyeC51YlVwc2VydChcInJlcXVlc3RfbG9nc1wiKTtcbiAgICAgIHJldHVybiBpZHNbMF0hO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYXBwZW5kU3RlcChyZXF1ZXN0TG9nSWQ6IG51bWJlciwgc3RlcDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG4gICAgd2RiLnViUmVnaXN0ZXIoXCJyZXF1ZXN0X2xvZ19zdGVwc1wiLCB7IHJlcXVlc3RfbG9nX2lkOiByZXF1ZXN0TG9nSWQsIC4uLnN0ZXAgfSk7XG4gICAgcmV0dXJuIHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBjb25zdCBpZHMgPSBhd2FpdCB0cngudWJVcHNlcnQoXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKTtcbiAgICAgIGlmIChzdGVwLnR5cGUgPT09IFwidG9vbF9jYWxsXCIpIHtcbiAgICAgICAgYXdhaXQgdHJ4LmZyb20oXCJyZXF1ZXN0X2xvZ3NcIikud2hlcmUoXCJpZFwiLCByZXF1ZXN0TG9nSWQpLmluY3JlbWVudChcInRvb2xfY2FsbF9jb3VudFwiLCAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpZHNbMF0hO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmluaXNoUnVuKFxuICAgIHJlcXVlc3RMb2dJZDogbnVtYmVyLFxuICAgIHBhcmFtczoge1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICByZXNwb25zZT86IHN0cmluZztcbiAgICAgIHRva2VuX25hbWU/OiBzdHJpbmc7XG4gICAgICBpbnB1dF90b2tlbnM/OiBudW1iZXI7XG4gICAgICBvdXRwdXRfdG9rZW5zPzogbnVtYmVyO1xuICAgICAgY2FjaGVfcmVhZF90b2tlbnM/OiBudW1iZXI7XG4gICAgICBjYWNoZV9jcmVhdGlvbl90b2tlbnM/OiBudW1iZXI7XG4gICAgICBkdXJhdGlvbl9tcz86IG51bWJlcjtcbiAgICAgIGhpc3Rvcnk/OiB1bmtub3duO1xuICAgICAgZXJyb3JfbWVzc2FnZT86IHN0cmluZztcbiAgICAgIHRvb2xfY2FsbF9jb3VudD86IG51bWJlcjtcbiAgICAgIGltYWdlX2Nvc3RfdXNkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIGltYWdlX2Nvc3RfbWV0aG9kPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAocGFyYW1zLnN0YXR1cyA9PT0gXCJzdWNjZWVkZWRcIiAmJiAhcGFyYW1zLnRva2VuX25hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInRva2VuTmFtZSBpcyByZXF1aXJlZCBmb3Igc3VjY2VlZGVkIHJ1bnNcIik7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IGlkOiByZXF1ZXN0TG9nSWQsIHN0YXR1czogcGFyYW1zLnN0YXR1cyB9O1xuICAgIGNvbnN0IGZpZWxkcyA9IFtcbiAgICAgIFwicmVzcG9uc2VcIixcbiAgICAgIFwidG9rZW5fbmFtZVwiLFxuICAgICAgXCJpbnB1dF90b2tlbnNcIixcbiAgICAgIFwib3V0cHV0X3Rva2Vuc1wiLFxuICAgICAgXCJjYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgXCJjYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIFwiZHVyYXRpb25fbXNcIixcbiAgICAgIFwiZXJyb3JfbWVzc2FnZVwiLFxuICAgICAgXCJ0b29sX2NhbGxfY291bnRcIixcbiAgICAgIFwiaW1hZ2VfY29zdF91c2RcIixcbiAgICAgIFwiaW1hZ2VfY29zdF9tZXRob2RcIixcbiAgICBdIGFzIGNvbnN0O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGZpZWxkcykge1xuICAgICAgaWYgKHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQpIHVwZGF0ZVtrZXldID0gcGFyYW1zW2tleV07XG4gICAgfVxuICAgIGlmIChwYXJhbXMuaGlzdG9yeSAhPT0gdW5kZWZpbmVkKSB1cGRhdGUuaGlzdG9yeSA9IHBhcmFtcy5oaXN0b3J5O1xuICAgIHVwZGF0ZS50dGZ0X21zID0gKGF3YWl0IHRoaXMuZmlyc3RHZW5lcmF0ZVN0ZXBUdGZ0KHJlcXVlc3RMb2dJZCkpID8/IDA7XG5cbiAgICBpZiAocGFyYW1zLmlucHV0X3Rva2VucyAhPT0gdW5kZWZpbmVkICYmIHBhcmFtcy5vdXRwdXRfdG9rZW5zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGRiID0gdGhpcy5nZXREQihcInJcIik7XG4gICAgICBjb25zdCBbcm93XSA9IGF3YWl0IGRiKFwicmVxdWVzdF9sb2dzXCIpXG4gICAgICAgIC5zZWxlY3QoXCJtb2RlbF9uYW1lXCIpXG4gICAgICAgIC53aGVyZShcImlkXCIsIHJlcXVlc3RMb2dJZClcbiAgICAgICAgLmxpbWl0KDEpO1xuICAgICAgaWYgKHJvdz8ubW9kZWxfbmFtZSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IGNhbm9uaWNhbE1vZGVsTmFtZShyb3cubW9kZWxfbmFtZSk7XG4gICAgICAgIGNvbnN0IHVzYWdlID0gbm9ybWFsaXplZFVzYWdlRm9yQ29zdCh7XG4gICAgICAgICAgdG9rZW5fbmFtZTogcGFyYW1zLnRva2VuX25hbWUsXG4gICAgICAgICAgbW9kZWxfbmFtZTogcm93Lm1vZGVsX25hbWUsXG4gICAgICAgICAgaW5wdXRfdG9rZW5zOiBwYXJhbXMuaW5wdXRfdG9rZW5zLFxuICAgICAgICAgIG91dHB1dF90b2tlbnM6IHBhcmFtcy5vdXRwdXRfdG9rZW5zLFxuICAgICAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBwYXJhbXMuY2FjaGVfcmVhZF90b2tlbnMgPz8gMCxcbiAgICAgICAgICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IHBhcmFtcy5jYWNoZV9jcmVhdGlvbl90b2tlbnMgPz8gMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHVwZGF0ZS5jb3N0X3VzZCA9IE1hdGgucm91bmQoXG4gICAgICAgICAgY2FsY3VsYXRlQ29zdFVzZChtb2RlbCwge1xuICAgICAgICAgICAgaW5wdXRUb2tlbnM6IHVzYWdlLmlucHV0VG9rZW5zLFxuICAgICAgICAgICAgb3V0cHV0VG9rZW5zOiB1c2FnZS5vdXRwdXRUb2tlbnMsXG4gICAgICAgICAgICBjYWNoZWRJbnB1dFRva2VuczogdXNhZ2UuY2FjaGVkSW5wdXRUb2tlbnMsXG4gICAgICAgICAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IHVzYWdlLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VucyxcbiAgICAgICAgICB9KSAqIDFfMDAwXzAwMCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuICAgIHdkYi51YlJlZ2lzdGVyKFwicmVxdWVzdF9sb2dzXCIsIHVwZGF0ZSk7XG4gICAgYXdhaXQgd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGF3YWl0IHRyeC51YlVwc2VydChcInJlcXVlc3RfbG9nc1wiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGZpcnN0R2VuZXJhdGVTdGVwVHRmdChyZXF1ZXN0TG9nSWQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyIHwgbnVsbD4ge1xuICAgIGNvbnN0IGRiID0gdGhpcy5nZXREQihcInJcIik7XG4gICAgY29uc3QgW3Jvd10gPSBhd2FpdCBkYihcInJlcXVlc3RfbG9nX3N0ZXBzXCIpXG4gICAgICAuc2VsZWN0KFwidHRmdF9tc1wiKVxuICAgICAgLndoZXJlKFwicmVxdWVzdF9sb2dfaWRcIiwgcmVxdWVzdExvZ0lkKVxuICAgICAgLndoZXJlKFwidHlwZVwiLCBcImdlbmVyYXRlXCIpXG4gICAgICAud2hlcmVOb3ROdWxsKFwidHRmdF9tc1wiKVxuICAgICAgLm9yZGVyQnkoXCJzdGVwX2luZGV4XCIsIFwiYXNjXCIpXG4gICAgICAub3JkZXJCeShcImlkXCIsIFwiYXNjXCIpXG4gICAgICAubGltaXQoMSk7XG4gICAgcmV0dXJuIHJvdz8udHRmdF9tcyA9PT0gbnVsbCB8fCByb3c/LnR0ZnRfbXMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBOdW1iZXIocm93LnR0ZnRfbXMpO1xuICB9XG5cbiAgYXN5bmMgYWdncmVnYXRlU3RlcFVzYWdlKHJlcXVlc3RMb2dJZDogbnVtYmVyKTogUHJvbWlzZTx7XG4gICAgaW5wdXRfdG9rZW5zOiBudW1iZXI7XG4gICAgb3V0cHV0X3Rva2VuczogbnVtYmVyO1xuICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBudW1iZXI7XG4gICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBudW1iZXI7XG4gICAgZHVyYXRpb25fbXM6IG51bWJlcjtcbiAgfT4ge1xuICAgIGNvbnN0IGRiID0gdGhpcy5nZXREQihcInJcIik7XG4gICAgY29uc3QgW3Jvd10gPSBhd2FpdCBkYihcInJlcXVlc3RfbG9nX3N0ZXBzXCIpXG4gICAgICAud2hlcmUoXCJyZXF1ZXN0X2xvZ19pZFwiLCByZXF1ZXN0TG9nSWQpXG4gICAgICAud2hlcmUoXCJ0eXBlXCIsIFwiZ2VuZXJhdGVcIilcbiAgICAgIC5zdW0oe1xuICAgICAgICBpbnB1dF90b2tlbnM6IFwiaW5wdXRfdG9rZW5zXCIsXG4gICAgICAgIG91dHB1dF90b2tlbnM6IFwib3V0cHV0X3Rva2Vuc1wiLFxuICAgICAgICBjYWNoZV9yZWFkX3Rva2VuczogXCJjYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IFwiY2FjaGVfY3JlYXRpb25fdG9rZW5zXCIsXG4gICAgICAgIGR1cmF0aW9uX21zOiBcImR1cmF0aW9uX21zXCIsXG4gICAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRfdG9rZW5zOiBOdW1iZXIocm93Py5pbnB1dF90b2tlbnMgPz8gMCksXG4gICAgICBvdXRwdXRfdG9rZW5zOiBOdW1iZXIocm93Py5vdXRwdXRfdG9rZW5zID8/IDApLFxuICAgICAgY2FjaGVfcmVhZF90b2tlbnM6IE51bWJlcihyb3c/LmNhY2hlX3JlYWRfdG9rZW5zID8/IDApLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBOdW1iZXIocm93Py5jYWNoZV9jcmVhdGlvbl90b2tlbnMgPz8gMCksXG4gICAgICBkdXJhdGlvbl9tczogTnVtYmVyKHJvdz8uZHVyYXRpb25fbXMgPz8gMCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRTdGFsZVJ1bm5pbmdJZHModGhyZXNob2xkTXM6IG51bWJlciwgbGltaXQ6IG51bWJlciA9IDEwKTogUHJvbWlzZTxudW1iZXJbXT4ge1xuICAgIGNvbnN0IGRiID0gdGhpcy5nZXREQihcInJcIik7XG4gICAgY29uc3QgdGhyZXNob2xkID0gbmV3IERhdGUoRGF0ZS5ub3coKSAtIHRocmVzaG9sZE1zKTtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgZGIoXCJyZXF1ZXN0X2xvZ3NcIilcbiAgICAgIC5zZWxlY3QoXCJpZFwiKVxuICAgICAgLndoZXJlKFwic3RhdHVzXCIsIFwicnVubmluZ1wiKVxuICAgICAgLndoZXJlKFwiY3JlYXRlZF9hdFwiLCBcIjxcIiwgdGhyZXNob2xkKVxuICAgICAgLmxpbWl0KGxpbWl0KTtcbiAgICByZXR1cm4gcm93cy5tYXAoKHI6IHsgaWQ6IG51bWJlciB9KSA9PiByLmlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldE5leHRTdGVwSW5kZXgocmVxdWVzdExvZ0lkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGRiID0gdGhpcy5nZXREQihcInJcIik7XG4gICAgY29uc3QgW3Jvd10gPSBhd2FpdCBkYihcInJlcXVlc3RfbG9nX3N0ZXBzXCIpXG4gICAgICAud2hlcmUoXCJyZXF1ZXN0X2xvZ19pZFwiLCByZXF1ZXN0TG9nSWQpXG4gICAgICAubWF4KFwic3RlcF9pbmRleCBhcyBtYXhTdGVwXCIpO1xuICAgIHJldHVybiAoKHJvdyBhcyB7IG1heFN0ZXA6IG51bWJlciB8IG51bGwgfSk/Lm1heFN0ZXAgPz8gLTEpICsgMTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlVG9vbENhbGwoXG4gICAgcmVxdWVzdExvZ0lkOiBudW1iZXIsXG4gICAgdG9vbENhbGxJZDogc3RyaW5nLFxuICAgIHBhcmFtczogeyB0b29sX3Jlc3VsdD86IHN0cmluZzsgdG9vbF9kdXJhdGlvbl9tcz86IG51bWJlcjsgZXJyb3I/OiBzdHJpbmcgfSxcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuICAgIHJldHVybiB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRyeFxuICAgICAgICAuZnJvbShcInJlcXVlc3RfbG9nX3N0ZXBzXCIpXG4gICAgICAgIC53aGVyZShcInJlcXVlc3RfbG9nX2lkXCIsIHJlcXVlc3RMb2dJZClcbiAgICAgICAgLndoZXJlKFwidG9vbF9jYWxsX2lkXCIsIHRvb2xDYWxsSWQpXG4gICAgICAgIC53aGVyZShcInR5cGVcIiwgXCJ0b29sX2NhbGxcIilcbiAgICAgICAgLnVwZGF0ZSh7XG4gICAgICAgICAgLi4uKHBhcmFtcy50b29sX3Jlc3VsdCAhPT0gdW5kZWZpbmVkID8geyB0b29sX3Jlc3VsdDogcGFyYW1zLnRvb2xfcmVzdWx0IH0gOiB7fSksXG4gICAgICAgICAgLi4uKHBhcmFtcy50b29sX2R1cmF0aW9uX21zICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8geyB0b29sX2R1cmF0aW9uX21zOiBwYXJhbXMudG9vbF9kdXJhdGlvbl9tcyB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAuLi4ocGFyYW1zLmVycm9yICE9PSB1bmRlZmluZWQgPyB7IGVycm9yOiBwYXJhbXMuZXJyb3IgfSA6IHt9KSxcbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFNvbmFtdSBmaW5kTWFueeuKlCBzdWJzZXQg7KCE7LK0IOy7rOufvCh0ZXh0IO2PrO2VqCnsnYQg7Y6Y7LmY7ZW07IScIGFnZ3JlZ2F0ZeyXlCDrhIjrrLQg66y06rGw7JuAIOKGkiByYXcgc3VtIOyCrOyaqS5cbiAgYXN5bmMgdG90YWxDb3N0KHBhcmFtczogeyB0b2tlbl9uYW1lPzogc3RyaW5nIH0gPSB7fSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgcWIgPSB0aGlzLmdldERCKFwiclwiKShcInJlcXVlc3RfbG9nc1wiKTtcbiAgICBpZiAocGFyYW1zLnRva2VuX25hbWUpIHtcbiAgICAgIHFiLndoZXJlKFwidG9rZW5fbmFtZVwiLCBwYXJhbXMudG9rZW5fbmFtZSk7XG4gICAgfVxuICAgIC8vIOq4sOyhtCBjb3N0X3VzZCDsl5DripQg6rO86rGwIEFudGhyb3BpYyBjYWNoZSDqs4TsgrAg67KE6re466GcIOydjOyImOqwgCDsoIDsnqXrkJwgcm93IOqwgCDsnojsnYQg7IiYIOyeiOuLpC5cbiAgICAvLyDtmZTrqbQg7KeR6rOE64qUIOyggOyepeqwkiBzdW0g7J20IOyVhOuLiOudvCDtmITsnqwg6rOE7IKw7Iud7Jy866GcIHVzYWdlIOulvCDsnqzqs4TsgrDtlbQg6rO86rGwIOuhnOq3uOuPhCDsponsi5wg67O07KCV7ZWc64ukLlxuICAgIGNvbnN0IHJvd3MgPSAoYXdhaXQgcWIuc2VsZWN0KFxuICAgICAgXCJtb2RlbF9uYW1lXCIsXG4gICAgICBcImlucHV0X3Rva2Vuc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5zXCIsXG4gICAgICBcImNhY2hlX3JlYWRfdG9rZW5zXCIsXG4gICAgICBcImNhY2hlX2NyZWF0aW9uX3Rva2Vuc1wiLFxuICAgICAgXCJjb3N0X3VzZFwiLFxuICAgICkpIGFzIEFycmF5PHtcbiAgICAgIG1vZGVsX25hbWU6IHN0cmluZyB8IG51bGw7XG4gICAgICBpbnB1dF90b2tlbnM6IG51bWJlcjtcbiAgICAgIG91dHB1dF90b2tlbnM6IG51bWJlcjtcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBudW1iZXI7XG4gICAgICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IG51bWJlcjtcbiAgICAgIGNvc3RfdXNkOiBudW1iZXIgfCBudWxsO1xuICAgIH0+O1xuXG4gICAgcmV0dXJuIHJvd3MucmVkdWNlKChzdW0sIHJvdykgPT4ge1xuICAgICAgY29uc3QgdXNhZ2UgPSBub3JtYWxpemVkVXNhZ2VGb3JDb3N0KHJvdyk7XG4gICAgICBpZiAoIXVzYWdlLm1vZGVsKSByZXR1cm4gc3VtICsgTWF0aC5tYXgocm93LmNvc3RfdXNkID8/IDAsIDApIC8gTUlDUk9fVVNEO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgc3VtICtcbiAgICAgICAgY2FsY3VsYXRlQ29zdFVzZCh1c2FnZS5tb2RlbCwge1xuICAgICAgICAgIGlucHV0VG9rZW5zOiB1c2FnZS5pbnB1dFRva2VucyxcbiAgICAgICAgICBvdXRwdXRUb2tlbnM6IHVzYWdlLm91dHB1dFRva2VucyxcbiAgICAgICAgICBjYWNoZWRJbnB1dFRva2VuczogdXNhZ2UuY2FjaGVkSW5wdXRUb2tlbnMsXG4gICAgICAgICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiB1c2FnZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0sIDApO1xuICB9XG5cbiAgYXN5bmMgZGlzdGluY3RQcm9qZWN0TmFtZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmdldFB1cmkoXCJyXCIpXG4gICAgICAuZnJvbShcInJlcXVlc3RfbG9nc1wiKVxuICAgICAgLmRpc3RpbmN0KFwicHJvamVjdF9uYW1lXCIpXG4gICAgICAud2hlcmUoXCJwcm9qZWN0X25hbWVcIiwgXCIhPVwiLCBudWxsKVxuICAgICAgLm9yZGVyQnkoXCJwcm9qZWN0X25hbWVcIiwgXCJhc2NcIilcbiAgICAgIC5zZWxlY3Qoe1xuICAgICAgICBwcm9qZWN0X25hbWU6IFwicHJvamVjdF9uYW1lXCIsXG4gICAgICB9KTtcbiAgICByZXR1cm4gcm93cy5tYXAoKHIpID0+IHIucHJvamVjdF9uYW1lISk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stbXV0YXRpb25cIl0gfSlcbiAgYXN5bmMgZGVsKGlkczogbnVtYmVyW10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG5cbiAgICAvLyB0cmFuc2FjdGlvblxuICAgIGF3YWl0IHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBhd2FpdCB0cnhcbiAgICAgICAgLnRhYmxlKFwicmVxdWVzdF9sb2dfc3RlcHNcIilcbiAgICAgICAgLndoZXJlSW4oXCJyZXF1ZXN0X2xvZ19zdGVwcy5yZXF1ZXN0X2xvZ19pZFwiLCBpZHMpXG4gICAgICAgIC5kZWxldGUoKTtcbiAgICAgIHJldHVybiB0cngudGFibGUoXCJyZXF1ZXN0X2xvZ3NcIikud2hlcmVJbihcInJlcXVlc3RfbG9ncy5pZFwiLCBpZHMpLmRlbGV0ZSgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlkcy5sZW5ndGg7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dNb2RlbCA9IG5ldyBSZXF1ZXN0TG9nTW9kZWxDbGFzcygpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWlCQSxNQUFhLFlBQVk7QUFZekIsU0FBUyxvQkFBb0IsS0FBcUU7QUFDaEcsUUFDRSxJQUFJLFlBQVksV0FBVyxhQUFhLEtBQUssUUFDN0MsSUFBSSxZQUFZLFdBQVcsVUFBVSxLQUFLLFFBQzFDLElBQUksWUFBWSxXQUFXLG9CQUFvQixLQUFLOztBQUl4RCxTQUFTLG1CQUFtQixXQUEyQjtBQUNyRCxRQUFPLFVBQVUsU0FBUyxJQUFJLEdBQUcsVUFBVSxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUk7O0FBR2pFLFNBQVMsdUJBQXVCLEtBTTlCO0NBQ0EsTUFBTSxZQUFZLElBQUk7Q0FDdEIsTUFBTSxnQkFBZ0IsSUFBSTtDQUMxQixNQUFNLGNBQWMsSUFBSTtDQUN4QixNQUFNLDRCQUNKLG9CQUFvQixJQUFJLElBQUksY0FBYyxZQUFZO0FBQ3hELFFBQU87RUFDTCxPQUFPLElBQUksYUFBYSxtQkFBbUIsSUFBSSxXQUFXLEdBQUc7RUFDN0QsYUFBYSw0QkFBNEIsY0FBYyxZQUFZLGdCQUFnQjtFQUNuRixjQUFjLElBQUk7RUFDbEIsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjs7QUFHSCxTQUFTLDRCQUEwRCxLQUFXO0NBQzVFLE1BQU0sUUFBUSx1QkFBdUIsSUFBSTtBQUN6QyxLQUFJLE1BQU0sZ0JBQWdCLElBQUksYUFBYyxRQUFPO0NBQ25ELE1BQU0sYUFBYTtFQUFFLEdBQUc7RUFBSyxjQUFjLE1BQU07RUFBYTtBQUM5RCxLQUFJ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
|
|
@@ -88,11 +88,14 @@ const RequestLogBaseSchema = z.object({
|
|
|
88
88
|
duration_ms: z.int(),
|
|
89
89
|
ttft_ms: z.int(),
|
|
90
90
|
cost_usd: z.int().nullable(),
|
|
91
|
+
image_cost_usd: z.int().nullable(),
|
|
92
|
+
image_cost_method: z.string().max(100).nullable(),
|
|
91
93
|
effort: z.string().max(10).nullable(),
|
|
92
94
|
history: HistoryItems.nullable(),
|
|
93
95
|
status: RequestLogStatus,
|
|
94
96
|
error_message: z.string().nullable(),
|
|
95
|
-
tool_call_count: z.int()
|
|
97
|
+
tool_call_count: z.int(),
|
|
98
|
+
is_image_generation: z.boolean()
|
|
96
99
|
});
|
|
97
100
|
const RequestLogStepBaseSchema = z.object({
|
|
98
101
|
id: z.int(),
|
|
@@ -177,11 +180,14 @@ const RequestLogSubsetA = z.object({
|
|
|
177
180
|
duration_ms: z.int(),
|
|
178
181
|
ttft_ms: z.int(),
|
|
179
182
|
cost_usd: z.int().nullable(),
|
|
183
|
+
image_cost_usd: z.int().nullable(),
|
|
184
|
+
image_cost_method: z.string().max(100).nullable(),
|
|
180
185
|
effort: z.string().max(10).nullable(),
|
|
181
186
|
history: HistoryItems.nullable(),
|
|
182
187
|
status: RequestLogStatus,
|
|
183
188
|
error_message: z.string().nullable(),
|
|
184
|
-
tool_call_count: z.int()
|
|
189
|
+
tool_call_count: z.int(),
|
|
190
|
+
is_image_generation: z.boolean()
|
|
185
191
|
});
|
|
186
192
|
const RequestLogSubsetP = z.object({
|
|
187
193
|
id: z.int(),
|
|
@@ -196,9 +202,12 @@ const RequestLogSubsetP = z.object({
|
|
|
196
202
|
duration_ms: z.int(),
|
|
197
203
|
ttft_ms: z.int(),
|
|
198
204
|
cost_usd: z.int().nullable(),
|
|
205
|
+
image_cost_usd: z.int().nullable(),
|
|
206
|
+
image_cost_method: z.string().max(100).nullable(),
|
|
199
207
|
effort: z.string().max(10).nullable(),
|
|
200
208
|
status: RequestLogStatus,
|
|
201
|
-
tool_call_count: z.int()
|
|
209
|
+
tool_call_count: z.int(),
|
|
210
|
+
is_image_generation: z.boolean()
|
|
202
211
|
});
|
|
203
212
|
const RequestLogSubsetKey = z.enum(["A", "P"]);
|
|
204
213
|
const RequestLogStepSubsetA = z.object({
|
|
@@ -257,4 +266,4 @@ const TokenSubsetKey = z.enum(["A"]);
|
|
|
257
266
|
//#endregion
|
|
258
267
|
export { RequestLogBaseListParams, RequestLogBaseSchema, RequestLogOrderBy, RequestLogOrderByLabel, RequestLogSearchField, RequestLogSearchFieldLabel, RequestLogStatus, RequestLogStatusLabel, RequestLogStepBaseListParams, RequestLogStepBaseSchema, RequestLogStepOrderBy, RequestLogStepOrderByLabel, RequestLogStepSearchField, RequestLogStepSearchFieldLabel, RequestLogStepSubsetA, RequestLogStepSubsetKey, RequestLogStepSubsetT, RequestLogStepType, RequestLogStepTypeLabel, RequestLogSubsetA, RequestLogSubsetKey, RequestLogSubsetP, TokenBaseListParams, TokenBaseSchema, TokenOrderBy, TokenOrderByLabel, TokenSearchField, TokenSearchFieldLabel, TokenSubsetA, TokenSubsetKey };
|
|
259
268
|
|
|
260
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmdlbmVyYXRlZC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24vc29uYW11LmdlbmVyYXRlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBnZW5lcmF0ZWRcbiAqIOyngeygkSDsiJjsoJXtlZjsp4Ag66eI7IS47JqULlxuICovXG5cbi8qIG94bGludC1kaXNhYmxlICovXG5cbmltcG9ydCB7IHpBcnJheWFibGUsIFNvbmFtdVF1ZXJ5TW9kZSwgQXBwbHlTb25hbXVGaWx0ZXIgfSBmcm9tIFwic29uYW11XCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vLyBDdXN0b21TY2FsYXI6IEhpc3RvcnlJdGVtc1xuY29uc3QgSGlzdG9yeUl0ZW1zID0gei5hcnJheShcbiAgei5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgcm9sZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbnRlbnQ6IHoudW5rbm93bigpLm9wdGlvbmFsKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGFyZ3VtZW50czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNhbGxfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBvdXRwdXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSksXG4pO1xudHlwZSBIaXN0b3J5SXRlbXMgPSB6LmluZmVyPHR5cGVvZiBIaXN0b3J5SXRlbXM+O1xuXG4vLyBDdXN0b21TY2FsYXI6IFRva2VuQ3JlZGVudGlhbHNcbmNvbnN0IFRva2VuQ3JlZGVudGlhbHMgPSB6LnVuaW9uKFtcbiAgei5vYmplY3Qoe1xuICAgIGFjY2Vzc1Rva2VuOiB6LnN0cmluZygpLFxuICAgIHJlZnJlc2hUb2tlbjogei5zdHJpbmcoKSxcbiAgICBleHBpcmVzQXQ6IHoubnVtYmVyKCksXG4gICAgYWNjb3VudFV1aWQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgYWNjZXNzVG9rZW46IHouc3RyaW5nKCksXG4gICAgcmVmcmVzaFRva2VuOiB6LnN0cmluZygpLFxuICAgIGlkVG9rZW46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDogei5udW1iZXIoKSxcbiAgICBpZFRva2VuRXhwaXJlc0F0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgYWNjb3VudElkOiB6LnN0cmluZygpLFxuICAgIHBsYW5UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIH0pLFxuXSk7XG50eXBlIFRva2VuQ3JlZGVudGlhbHMgPSB6LmluZmVyPHR5cGVvZiBUb2tlbkNyZWRlbnRpYWxzPjtcblxuLy8gRW51bXM6IFJlcXVlc3RMb2dcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nT3JkZXJCeSA9IHouZW51bShbXCJpZC1kZXNjXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dPcmRlckJ5XCIpO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ09yZGVyQnkgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nT3JkZXJCeT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ09yZGVyQnlMYWJlbCA9IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTZWFyY2hGaWVsZCA9IHpcbiAgLmVudW0oW1wiaWRcIiwgXCJ0b2tlbl9uYW1lXCIsIFwidXNlcl9wcm9tcHRcIl0pXG4gIC5kZXNjcmliZShcIlJlcXVlc3RMb2dTZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTZWFyY2hGaWVsZCA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTZWFyY2hGaWVsZD47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1NlYXJjaEZpZWxkTGFiZWwgPSB7XG4gIGlkOiBcIklEXCIsXG4gIHRva2VuX25hbWU6IFwi7Yag7YGw7J2066aEXCIsXG4gIHVzZXJfcHJvbXB0OiBcIuyCrOyaqeyekCDtlITroaztlITtirhcIixcbn07XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0YXR1cyA9IHpcbiAgLmVudW0oW1wicnVubmluZ1wiLCBcInN1Y2NlZWRlZFwiLCBcImVycm9yXCIsIFwiYWJvcnRlZFwiXSlcbiAgLmRlc2NyaWJlKFwiUmVxdWVzdExvZ1N0YXR1c1wiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RhdHVzPjtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RhdHVzTGFiZWwgPSB7XG4gIHJ1bm5pbmc6IFwi7Iuk7ZaJIOykkVwiLFxuICBzdWNjZWVkZWQ6IFwi7ISx6rO1XCIsXG4gIGVycm9yOiBcIuyXkOufrFwiLFxuICBhYm9ydGVkOiBcIuykkeuLqFwiLFxufTtcblxuLy8gRW51bXM6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBUeXBlID0gei5lbnVtKFtcImdlbmVyYXRlXCIsIFwidG9vbF9jYWxsXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dTdGVwVHlwZVwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwVHlwZSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwVHlwZT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBUeXBlTGFiZWwgPSB7IGdlbmVyYXRlOiBcIkxMTSDsg53shLFcIiwgdG9vbF9jYWxsOiBcIlRvb2wg7Zi47LacXCIgfTtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RlcE9yZGVyQnkgPSB6LmVudW0oW1wiaWQtYXNjXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dTdGVwT3JkZXJCeVwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwT3JkZXJCeSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwT3JkZXJCeT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBPcmRlckJ5TGFiZWwgPSB7IFwiaWQtYXNjXCI6IFwiSUTsiJxcIiB9O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwU2VhcmNoRmllbGQgPSB6LmVudW0oW1wiaWRcIl0pLmRlc2NyaWJlKFwiUmVxdWVzdExvZ1N0ZXBTZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwU2VhcmNoRmllbGQgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RlcFNlYXJjaEZpZWxkPjtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RlcFNlYXJjaEZpZWxkTGFiZWwgPSB7IGlkOiBcIklEXCIgfTtcblxuLy8gRW51bXM6IFRva2VuXG5leHBvcnQgY29uc3QgVG9rZW5PcmRlckJ5ID0gei5lbnVtKFtcImlkLWRlc2NcIiwgXCJvcmQtYXNjXCJdKS5kZXNjcmliZShcIlRva2VuT3JkZXJCeVwiKTtcbmV4cG9ydCB0eXBlIFRva2VuT3JkZXJCeSA9IHouaW5mZXI8dHlwZW9mIFRva2VuT3JkZXJCeT47XG5leHBvcnQgY29uc3QgVG9rZW5PcmRlckJ5TGFiZWwgPSB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIsIFwib3JkLWFzY1wiOiBcIuyInOyEnOyInFwiIH07XG5leHBvcnQgY29uc3QgVG9rZW5TZWFyY2hGaWVsZCA9IHouZW51bShbXCJpZFwiLCBcIm5hbWVcIl0pLmRlc2NyaWJlKFwiVG9rZW5TZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFRva2VuU2VhcmNoRmllbGQgPSB6LmluZmVyPHR5cGVvZiBUb2tlblNlYXJjaEZpZWxkPjtcbmV4cG9ydCBjb25zdCBUb2tlblNlYXJjaEZpZWxkTGFiZWwgPSB7IGlkOiBcIklEXCIsIG5hbWU6IFwi7J2066aEXCIgfTtcblxuLy8gQmFzZVNjaGVtYTogUmVxdWVzdExvZ1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dCYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHRva2VuX25hbWU6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgbW9kZWxfbmFtZTogei5zdHJpbmcoKS5tYXgoNTApLm51bGxhYmxlKCksXG4gIHVzZXJfcHJvbXB0OiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHN5c3RlbV9wcm9tcHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgcmVzcG9uc2U6IHouc3RyaW5nKCksXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKSxcbiAgb3V0cHV0X3Rva2Vuczogei5pbnQoKSxcbiAgY2FjaGVfcmVhZF90b2tlbnM6IHouaW50KCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKSxcbiAgZHVyYXRpb25fbXM6IHouaW50KCksXG4gIHR0ZnRfbXM6IHouaW50KCksXG4gIGNvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5tYXgoMTApLm51bGxhYmxlKCksXG4gIGhpc3Rvcnk6IEhpc3RvcnlJdGVtcy5udWxsYWJsZSgpLFxuICBzdGF0dXM6IFJlcXVlc3RMb2dTdGF0dXMsXG4gIGVycm9yX21lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2NvdW50OiB6LmludCgpLFxufSk7XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nQmFzZVNjaGVtYSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dCYXNlU2NoZW1hPiAmIHtcbiAgcmVhZG9ubHkgX19oYXNEZWZhdWx0X186IHJlYWRvbmx5IFtcbiAgICBcImNyZWF0ZWRfYXRcIixcbiAgICBcInRva2VuX25hbWVcIixcbiAgICBcInByb2plY3RfbmFtZVwiLFxuICAgIFwibW9kZWxfbmFtZVwiLFxuICAgIFwidXNlcl9wcm9tcHRcIixcbiAgICBcInN5c3RlbV9wcm9tcHRcIixcbiAgICBcInJlc3BvbnNlXCIsXG4gICAgXCJpbnB1dF90b2tlbnNcIixcbiAgICBcIm91dHB1dF90b2tlbnNcIixcbiAgICBcImNhY2hlX3JlYWRfdG9rZW5zXCIsXG4gICAgXCJjYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICBcImR1cmF0aW9uX21zXCIsXG4gICAgXCJ0dGZ0X21zXCIsXG4gICAgXCJjb3N0X3VzZFwiLFxuICAgIFwiZWZmb3J0XCIsXG4gICAgXCJoaXN0b3J5XCIsXG4gICAgXCJzdGF0dXNcIixcbiAgICBcImVycm9yX21lc3NhZ2VcIixcbiAgICBcInRvb2xfY2FsbF9jb3VudFwiLFxuICAgIFwiaWRcIixcbiAgXTtcbn07XG5cbi8vIEJhc2VTY2hlbWE6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBCYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHJlcXVlc3RfbG9nX2lkOiB6LmludCgpLFxuICBzdGVwX2luZGV4OiB6LmludCgpLFxuICB0eXBlOiBSZXF1ZXN0TG9nU3RlcFR5cGUsXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBvdXRwdXRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX3JlYWRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBkdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0dGZ0X21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGZpbmlzaF9yZWFzb246IHouc3RyaW5nKCkubWF4KDIwKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdGV4dDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIHRvb2xfY2FsbF9pbmRleDogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0b29sX2NhbGxfaWQ6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgdG9vbF9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHRvb2xfYXJnczogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX3Jlc3VsdDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX2R1cmF0aW9uX21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGVycm9yOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG59KTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYT4gJiB7XG4gIHJlYWRvbmx5IF9faGFzRGVmYXVsdF9fOiByZWFkb25seSBbXG4gICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgXCJpbnB1dF90b2tlbnNcIixcbiAgICBcIm91dHB1dF90b2tlbnNcIixcbiAgICBcImNhY2hlX3JlYWRfdG9rZW5zXCIsXG4gICAgXCJjYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICBcImR1cmF0aW9uX21zXCIsXG4gICAgXCJ0dGZ0X21zXCIsXG4gICAgXCJmaW5pc2hfcmVhc29uXCIsXG4gICAgXCJyZWFzb25pbmdfdGV4dFwiLFxuICAgIFwicmVhc29uaW5nX3Rva2Vuc1wiLFxuICAgIFwidG9vbF9jYWxsX2luZGV4XCIsXG4gICAgXCJ0b29sX2NhbGxfaWRcIixcbiAgICBcInRvb2xfbmFtZVwiLFxuICAgIFwidG9vbF9hcmdzXCIsXG4gICAgXCJ0b29sX3Jlc3VsdFwiLFxuICAgIFwidG9vbF9kdXJhdGlvbl9tc1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImlkXCIsXG4gIF07XG59O1xuXG4vLyBCYXNlU2NoZW1hOiBUb2tlblxuZXhwb3J0IGNvbnN0IFRva2VuQmFzZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICBwcm92aWRlcjogei5zdHJpbmcoKS5tYXgoMjApLFxuICBjcmVkZW50aWFsczogVG9rZW5DcmVkZW50aWFscyxcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgYWN0aXZlOiB6LmJvb2xlYW4oKSxcbiAgb3JkOiB6LmludCgpLFxuICBxdW90YV90aHJlc2hvbGQ6IHouaW50KCkubnVsbGFibGUoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9rZW5CYXNlU2NoZW1hID0gei5pbmZlcjx0eXBlb2YgVG9rZW5CYXNlU2NoZW1hPiAmIHtcbiAgcmVhZG9ubHkgX19oYXNEZWZhdWx0X186IHJlYWRvbmx5IFtcImNyZWF0ZWRfYXRcIiwgXCJhY3RpdmVcIiwgXCJvcmRcIiwgXCJxdW90YV90aHJlc2hvbGRcIiwgXCJpZFwiXTtcbn07XG5cbi8vIEJhc2VMaXN0UGFyYW1zOiBSZXF1ZXN0TG9nXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ0Jhc2VMaXN0UGFyYW1zID0gelxuICAub2JqZWN0KHtcbiAgICBudW06IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKSxcbiAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm1pbigxKSxcbiAgICBzZWFyY2g6IFJlcXVlc3RMb2dTZWFyY2hGaWVsZCxcbiAgICBrZXl3b3JkOiB6LnN0cmluZygpLFxuICAgIG9yZGVyQnk6IFJlcXVlc3RMb2dPcmRlckJ5LFxuICAgIHF1ZXJ5TW9kZTogU29uYW11UXVlcnlNb2RlLFxuICAgIGlkOiB6QXJyYXlhYmxlKHoubnVtYmVyKCkuaW50KCkucG9zaXRpdmUoKSksXG4gICAgc29uYW11RmlsdGVyOiB6LmN1c3RvbTxBcHBseVNvbmFtdUZpbHRlcjxSZXF1ZXN0TG9nQmFzZVNjaGVtYSwgbmV2ZXIsIG5ldmVyPj4oKSxcbiAgICB0b2tlbl9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gICAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgICBtb2RlbF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dCYXNlTGlzdFBhcmFtcyA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dCYXNlTGlzdFBhcmFtcz47XG5cbi8vIEJhc2VMaXN0UGFyYW1zOiBSZXF1ZXN0TG9nU3RlcFxuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwQmFzZUxpc3RQYXJhbXMgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG51bTogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLFxuICAgIHBhZ2U6IHoubnVtYmVyKCkuaW50KCkubWluKDEpLFxuICAgIHNlYXJjaDogUmVxdWVzdExvZ1N0ZXBTZWFyY2hGaWVsZCxcbiAgICBrZXl3b3JkOiB6LnN0cmluZygpLFxuICAgIG9yZGVyQnk6IFJlcXVlc3RMb2dTdGVwT3JkZXJCeSxcbiAgICBxdWVyeU1vZGU6IFNvbmFtdVF1ZXJ5TW9kZSxcbiAgICBpZDogekFycmF5YWJsZSh6Lm51bWJlcigpLmludCgpLnBvc2l0aXZlKCkpLFxuICAgIHNvbmFtdUZpbHRlcjogei5jdXN0b208QXBwbHlTb25hbXVGaWx0ZXI8UmVxdWVzdExvZ1N0ZXBCYXNlU2NoZW1hLCBuZXZlciwgbmV2ZXI+PigpLFxuICAgIHJlcXVlc3RfbG9nX2lkOiB6LmludCgpLFxuICB9KVxuICAucGFydGlhbCgpO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N0ZXBCYXNlTGlzdFBhcmFtcyA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwQmFzZUxpc3RQYXJhbXM+O1xuXG4vLyBCYXNlTGlzdFBhcmFtczogVG9rZW5cbmV4cG9ydCBjb25zdCBUb2tlbkJhc2VMaXN0UGFyYW1zID0gelxuICAub2JqZWN0KHtcbiAgICBudW06IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKSxcbiAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm1pbigxKSxcbiAgICBzZWFyY2g6IFRva2VuU2VhcmNoRmllbGQsXG4gICAga2V5d29yZDogei5zdHJpbmcoKSxcbiAgICBvcmRlckJ5OiBUb2tlbk9yZGVyQnksXG4gICAgcXVlcnlNb2RlOiBTb25hbXVRdWVyeU1vZGUsXG4gICAgaWQ6IHpBcnJheWFibGUoei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpKSxcbiAgICBzb25hbXVGaWx0ZXI6IHouY3VzdG9tPEFwcGx5U29uYW11RmlsdGVyPFRva2VuQmFzZVNjaGVtYSwgbmV2ZXIsIG5ldmVyPj4oKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbmV4cG9ydCB0eXBlIFRva2VuQmFzZUxpc3RQYXJhbXMgPSB6LmluZmVyPHR5cGVvZiBUb2tlbkJhc2VMaXN0UGFyYW1zPjtcblxuLy8gU3Vic2V0czogUmVxdWVzdExvZ1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdWJzZXRBID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHRva2VuX25hbWU6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgbW9kZWxfbmFtZTogei5zdHJpbmcoKS5tYXgoNTApLm51bGxhYmxlKCksXG4gIHVzZXJfcHJvbXB0OiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHN5c3RlbV9wcm9tcHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgcmVzcG9uc2U6IHouc3RyaW5nKCksXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKSxcbiAgb3V0cHV0X3Rva2Vuczogei5pbnQoKSxcbiAgY2FjaGVfcmVhZF90b2tlbnM6IHouaW50KCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKSxcbiAgZHVyYXRpb25fbXM6IHouaW50KCksXG4gIHR0ZnRfbXM6IHouaW50KCksXG4gIGNvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5tYXgoMTApLm51bGxhYmxlKCksXG4gIGhpc3Rvcnk6IEhpc3RvcnlJdGVtcy5udWxsYWJsZSgpLFxuICBzdGF0dXM6IFJlcXVlc3RMb2dTdGF0dXMsXG4gIGVycm9yX21lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2NvdW50OiB6LmludCgpLFxufSk7XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3Vic2V0QSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdWJzZXRBPjtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3Vic2V0UCA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICB0b2tlbl9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHByb2plY3RfbmFtZTogei5zdHJpbmcoKS5tYXgoNTApLm51bGxhYmxlKCksXG4gIG1vZGVsX25hbWU6IHouc3RyaW5nKCkubWF4KDUwKS5udWxsYWJsZSgpLFxuICBpbnB1dF90b2tlbnM6IHouaW50KCksXG4gIG91dHB1dF90b2tlbnM6IHouaW50KCksXG4gIGNhY2hlX3JlYWRfdG9rZW5zOiB6LmludCgpLFxuICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IHouaW50KCksXG4gIGR1cmF0aW9uX21zOiB6LmludCgpLFxuICB0dGZ0X21zOiB6LmludCgpLFxuICBjb3N0X3VzZDogei5pbnQoKS5udWxsYWJsZSgpLFxuICBlZmZvcnQ6IHouc3RyaW5nKCkubWF4KDEwKS5udWxsYWJsZSgpLFxuICBzdGF0dXM6IFJlcXVlc3RMb2dTdGF0dXMsXG4gIHRvb2xfY2FsbF9jb3VudDogei5pbnQoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N1YnNldFAgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3Vic2V0UD47XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3Vic2V0TWFwcGluZyA9IHtcbiAgQTogUmVxdWVzdExvZ1N1YnNldEE7XG4gIFA6IFJlcXVlc3RMb2dTdWJzZXRQO1xufTtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3Vic2V0S2V5ID0gei5lbnVtKFtcIkFcIiwgXCJQXCJdKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdWJzZXRLZXkgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3Vic2V0S2V5PjtcblxuLy8gU3Vic2V0czogUmVxdWVzdExvZ1N0ZXBcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RlcFN1YnNldEEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LmludCgpLFxuICBjcmVhdGVkX2F0OiB6LmRhdGUoKSxcbiAgc3RlcF9pbmRleDogei5pbnQoKSxcbiAgdHlwZTogUmVxdWVzdExvZ1N0ZXBUeXBlLFxuICBpbnB1dF90b2tlbnM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgb3V0cHV0X3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBjYWNoZV9yZWFkX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgZHVyYXRpb25fbXM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgdHRmdF9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBmaW5pc2hfcmVhc29uOiB6LnN0cmluZygpLm1heCgyMCkubnVsbGFibGUoKSxcbiAgcmVhc29uaW5nX3RleHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgcmVhc29uaW5nX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0b29sX2NhbGxfaW5kZXg6IHouaW50KCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2lkOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHRvb2xfbmFtZTogei5zdHJpbmcoKS5tYXgoMTAwKS5udWxsYWJsZSgpLFxuICB0b29sX2FyZ3M6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9yZXN1bHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9kdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBlcnJvcjogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxufSk7XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3RlcFN1YnNldEEgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RlcFN1YnNldEE+O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwU3Vic2V0VCA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICBzdGVwX2luZGV4OiB6LmludCgpLFxuICB0eXBlOiBSZXF1ZXN0TG9nU3RlcFR5cGUsXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBvdXRwdXRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX3JlYWRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBkdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0dGZ0X21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGZpbmlzaF9yZWFzb246IHouc3RyaW5nKCkubWF4KDIwKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIHRvb2xfY2FsbF9pbmRleDogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0b29sX2NhbGxfaWQ6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgdG9vbF9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHRvb2xfZHVyYXRpb25fbXM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgZXJyb3I6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N0ZXBTdWJzZXRUID0gei5pbmZlcjx0eXBlb2YgUmVxdWVzdExvZ1N0ZXBTdWJzZXRUPjtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwU3Vic2V0TWFwcGluZyA9IHtcbiAgQTogUmVxdWVzdExvZ1N0ZXBTdWJzZXRBO1xuICBUOiBSZXF1ZXN0TG9nU3RlcFN1YnNldFQ7XG59O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5ID0gei5lbnVtKFtcIkFcIiwgXCJUXCJdKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5ID0gei5pbmZlcjx0eXBlb2YgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXk+O1xuXG4vLyBTdWJzZXRzOiBUb2tlblxuZXhwb3J0IGNvbnN0IFRva2VuU3Vic2V0QSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICBwcm92aWRlcjogei5zdHJpbmcoKS5tYXgoMjApLFxuICBjcmVkZW50aWFsczogVG9rZW5DcmVkZW50aWFscyxcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgYWN0aXZlOiB6LmJvb2xlYW4oKSxcbiAgb3JkOiB6LmludCgpLFxuICBxdW90YV90aHJlc2hvbGQ6IHouaW50KCkubnVsbGFibGUoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9rZW5TdWJzZXRBID0gei5pbmZlcjx0eXBlb2YgVG9rZW5TdWJzZXRBPjtcbmV4cG9ydCB0eXBlIFRva2VuU3Vic2V0TWFwcGluZyA9IHtcbiAgQTogVG9rZW5TdWJzZXRBO1xufTtcbmV4cG9ydCBjb25zdCBUb2tlblN1YnNldEtleSA9IHouZW51bShbXCJBXCJdKTtcbmV4cG9ydCB0eXBlIFRva2VuU3Vic2V0S2V5ID0gei5pbmZlcjx0eXBlb2YgVG9rZW5TdWJzZXRLZXk+O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVdBLE1BQU0sZUFBZSxFQUFFLE1BQ3JCLEVBQUUsT0FBTztDQUNQLE1BQU0sRUFBRSxRQUFRO0NBQ2hCLE1BQU0sRUFBRSxRQUFRLENBQUMsVUFBVTtDQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDLFVB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
|
|
269
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmdlbmVyYXRlZC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24vc29uYW11LmdlbmVyYXRlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBnZW5lcmF0ZWRcbiAqIOyngeygkSDsiJjsoJXtlZjsp4Ag66eI7IS47JqULlxuICovXG5cbi8qIG94bGludC1kaXNhYmxlICovXG5cbmltcG9ydCB7IHpBcnJheWFibGUsIFNvbmFtdVF1ZXJ5TW9kZSwgQXBwbHlTb25hbXVGaWx0ZXIgfSBmcm9tIFwic29uYW11XCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vLyBDdXN0b21TY2FsYXI6IEhpc3RvcnlJdGVtc1xuY29uc3QgSGlzdG9yeUl0ZW1zID0gei5hcnJheShcbiAgei5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgcm9sZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbnRlbnQ6IHoudW5rbm93bigpLm9wdGlvbmFsKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGFyZ3VtZW50czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNhbGxfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBvdXRwdXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSksXG4pO1xudHlwZSBIaXN0b3J5SXRlbXMgPSB6LmluZmVyPHR5cGVvZiBIaXN0b3J5SXRlbXM+O1xuXG4vLyBDdXN0b21TY2FsYXI6IFRva2VuQ3JlZGVudGlhbHNcbmNvbnN0IFRva2VuQ3JlZGVudGlhbHMgPSB6LnVuaW9uKFtcbiAgei5vYmplY3Qoe1xuICAgIGFjY2Vzc1Rva2VuOiB6LnN0cmluZygpLFxuICAgIHJlZnJlc2hUb2tlbjogei5zdHJpbmcoKSxcbiAgICBleHBpcmVzQXQ6IHoubnVtYmVyKCksXG4gICAgYWNjb3VudFV1aWQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgYWNjZXNzVG9rZW46IHouc3RyaW5nKCksXG4gICAgcmVmcmVzaFRva2VuOiB6LnN0cmluZygpLFxuICAgIGlkVG9rZW46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDogei5udW1iZXIoKSxcbiAgICBpZFRva2VuRXhwaXJlc0F0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgYWNjb3VudElkOiB6LnN0cmluZygpLFxuICAgIHBsYW5UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIH0pLFxuXSk7XG50eXBlIFRva2VuQ3JlZGVudGlhbHMgPSB6LmluZmVyPHR5cGVvZiBUb2tlbkNyZWRlbnRpYWxzPjtcblxuLy8gRW51bXM6IFJlcXVlc3RMb2dcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nT3JkZXJCeSA9IHouZW51bShbXCJpZC1kZXNjXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dPcmRlckJ5XCIpO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ09yZGVyQnkgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nT3JkZXJCeT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ09yZGVyQnlMYWJlbCA9IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTZWFyY2hGaWVsZCA9IHpcbiAgLmVudW0oW1wiaWRcIiwgXCJ0b2tlbl9uYW1lXCIsIFwidXNlcl9wcm9tcHRcIl0pXG4gIC5kZXNjcmliZShcIlJlcXVlc3RMb2dTZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTZWFyY2hGaWVsZCA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTZWFyY2hGaWVsZD47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1NlYXJjaEZpZWxkTGFiZWwgPSB7XG4gIGlkOiBcIklEXCIsXG4gIHRva2VuX25hbWU6IFwi7Yag7YGw7J2066aEXCIsXG4gIHVzZXJfcHJvbXB0OiBcIuyCrOyaqeyekCDtlITroaztlITtirhcIixcbn07XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0YXR1cyA9IHpcbiAgLmVudW0oW1wicnVubmluZ1wiLCBcInN1Y2NlZWRlZFwiLCBcImVycm9yXCIsIFwiYWJvcnRlZFwiXSlcbiAgLmRlc2NyaWJlKFwiUmVxdWVzdExvZ1N0YXR1c1wiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RhdHVzPjtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RhdHVzTGFiZWwgPSB7XG4gIHJ1bm5pbmc6IFwi7Iuk7ZaJIOykkVwiLFxuICBzdWNjZWVkZWQ6IFwi7ISx6rO1XCIsXG4gIGVycm9yOiBcIuyXkOufrFwiLFxuICBhYm9ydGVkOiBcIuykkeuLqFwiLFxufTtcblxuLy8gRW51bXM6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBUeXBlID0gei5lbnVtKFtcImdlbmVyYXRlXCIsIFwidG9vbF9jYWxsXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dTdGVwVHlwZVwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwVHlwZSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwVHlwZT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBUeXBlTGFiZWwgPSB7IGdlbmVyYXRlOiBcIkxMTSDsg53shLFcIiwgdG9vbF9jYWxsOiBcIlRvb2wg7Zi47LacXCIgfTtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RlcE9yZGVyQnkgPSB6LmVudW0oW1wiaWQtYXNjXCJdKS5kZXNjcmliZShcIlJlcXVlc3RMb2dTdGVwT3JkZXJCeVwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwT3JkZXJCeSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwT3JkZXJCeT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBPcmRlckJ5TGFiZWwgPSB7IFwiaWQtYXNjXCI6IFwiSUTsiJxcIiB9O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwU2VhcmNoRmllbGQgPSB6LmVudW0oW1wiaWRcIl0pLmRlc2NyaWJlKFwiUmVxdWVzdExvZ1N0ZXBTZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwU2VhcmNoRmllbGQgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RlcFNlYXJjaEZpZWxkPjtcbmV4cG9ydCBjb25zdCBSZXF1ZXN0TG9nU3RlcFNlYXJjaEZpZWxkTGFiZWwgPSB7IGlkOiBcIklEXCIgfTtcblxuLy8gRW51bXM6IFRva2VuXG5leHBvcnQgY29uc3QgVG9rZW5PcmRlckJ5ID0gei5lbnVtKFtcImlkLWRlc2NcIiwgXCJvcmQtYXNjXCJdKS5kZXNjcmliZShcIlRva2VuT3JkZXJCeVwiKTtcbmV4cG9ydCB0eXBlIFRva2VuT3JkZXJCeSA9IHouaW5mZXI8dHlwZW9mIFRva2VuT3JkZXJCeT47XG5leHBvcnQgY29uc3QgVG9rZW5PcmRlckJ5TGFiZWwgPSB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIsIFwib3JkLWFzY1wiOiBcIuyInOyEnOyInFwiIH07XG5leHBvcnQgY29uc3QgVG9rZW5TZWFyY2hGaWVsZCA9IHouZW51bShbXCJpZFwiLCBcIm5hbWVcIl0pLmRlc2NyaWJlKFwiVG9rZW5TZWFyY2hGaWVsZFwiKTtcbmV4cG9ydCB0eXBlIFRva2VuU2VhcmNoRmllbGQgPSB6LmluZmVyPHR5cGVvZiBUb2tlblNlYXJjaEZpZWxkPjtcbmV4cG9ydCBjb25zdCBUb2tlblNlYXJjaEZpZWxkTGFiZWwgPSB7IGlkOiBcIklEXCIsIG5hbWU6IFwi7J2066aEXCIgfTtcblxuLy8gQmFzZVNjaGVtYTogUmVxdWVzdExvZ1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dCYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHRva2VuX25hbWU6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgbW9kZWxfbmFtZTogei5zdHJpbmcoKS5tYXgoNTApLm51bGxhYmxlKCksXG4gIHVzZXJfcHJvbXB0OiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHN5c3RlbV9wcm9tcHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgcmVzcG9uc2U6IHouc3RyaW5nKCksXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKSxcbiAgb3V0cHV0X3Rva2Vuczogei5pbnQoKSxcbiAgY2FjaGVfcmVhZF90b2tlbnM6IHouaW50KCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKSxcbiAgZHVyYXRpb25fbXM6IHouaW50KCksXG4gIHR0ZnRfbXM6IHouaW50KCksXG4gIGNvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGltYWdlX2Nvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGltYWdlX2Nvc3RfbWV0aG9kOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5tYXgoMTApLm51bGxhYmxlKCksXG4gIGhpc3Rvcnk6IEhpc3RvcnlJdGVtcy5udWxsYWJsZSgpLFxuICBzdGF0dXM6IFJlcXVlc3RMb2dTdGF0dXMsXG4gIGVycm9yX21lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2NvdW50OiB6LmludCgpLFxuICBpc19pbWFnZV9nZW5lcmF0aW9uOiB6LmJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ0Jhc2VTY2hlbWEgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nQmFzZVNjaGVtYT4gJiB7XG4gIHJlYWRvbmx5IF9faGFzRGVmYXVsdF9fOiByZWFkb25seSBbXG4gICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgXCJ0b2tlbl9uYW1lXCIsXG4gICAgXCJwcm9qZWN0X25hbWVcIixcbiAgICBcIm1vZGVsX25hbWVcIixcbiAgICBcInVzZXJfcHJvbXB0XCIsXG4gICAgXCJzeXN0ZW1fcHJvbXB0XCIsXG4gICAgXCJyZXNwb25zZVwiLFxuICAgIFwiaW5wdXRfdG9rZW5zXCIsXG4gICAgXCJvdXRwdXRfdG9rZW5zXCIsXG4gICAgXCJjYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgIFwiY2FjaGVfY3JlYXRpb25fdG9rZW5zXCIsXG4gICAgXCJkdXJhdGlvbl9tc1wiLFxuICAgIFwidHRmdF9tc1wiLFxuICAgIFwiY29zdF91c2RcIixcbiAgICBcImltYWdlX2Nvc3RfdXNkXCIsXG4gICAgXCJpbWFnZV9jb3N0X21ldGhvZFwiLFxuICAgIFwiZWZmb3J0XCIsXG4gICAgXCJoaXN0b3J5XCIsXG4gICAgXCJzdGF0dXNcIixcbiAgICBcImVycm9yX21lc3NhZ2VcIixcbiAgICBcInRvb2xfY2FsbF9jb3VudFwiLFxuICAgIFwiaXNfaW1hZ2VfZ2VuZXJhdGlvblwiLFxuICAgIFwiaWRcIixcbiAgXTtcbn07XG5cbi8vIEJhc2VTY2hlbWE6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBCYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHJlcXVlc3RfbG9nX2lkOiB6LmludCgpLFxuICBzdGVwX2luZGV4OiB6LmludCgpLFxuICB0eXBlOiBSZXF1ZXN0TG9nU3RlcFR5cGUsXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBvdXRwdXRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX3JlYWRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBkdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0dGZ0X21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGZpbmlzaF9yZWFzb246IHouc3RyaW5nKCkubWF4KDIwKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdGV4dDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIHRvb2xfY2FsbF9pbmRleDogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0b29sX2NhbGxfaWQ6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgdG9vbF9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHRvb2xfYXJnczogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX3Jlc3VsdDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX2R1cmF0aW9uX21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGVycm9yOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG59KTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYT4gJiB7XG4gIHJlYWRvbmx5IF9faGFzRGVmYXVsdF9fOiByZWFkb25seSBbXG4gICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgXCJpbnB1dF90b2tlbnNcIixcbiAgICBcIm91dHB1dF90b2tlbnNcIixcbiAgICBcImNhY2hlX3JlYWRfdG9rZW5zXCIsXG4gICAgXCJjYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICBcImR1cmF0aW9uX21zXCIsXG4gICAgXCJ0dGZ0X21zXCIsXG4gICAgXCJmaW5pc2hfcmVhc29uXCIsXG4gICAgXCJyZWFzb25pbmdfdGV4dFwiLFxuICAgIFwicmVhc29uaW5nX3Rva2Vuc1wiLFxuICAgIFwidG9vbF9jYWxsX2luZGV4XCIsXG4gICAgXCJ0b29sX2NhbGxfaWRcIixcbiAgICBcInRvb2xfbmFtZVwiLFxuICAgIFwidG9vbF9hcmdzXCIsXG4gICAgXCJ0b29sX3Jlc3VsdFwiLFxuICAgIFwidG9vbF9kdXJhdGlvbl9tc1wiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImlkXCIsXG4gIF07XG59O1xuXG4vLyBCYXNlU2NoZW1hOiBUb2tlblxuZXhwb3J0IGNvbnN0IFRva2VuQmFzZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICBwcm92aWRlcjogei5zdHJpbmcoKS5tYXgoMjApLFxuICBjcmVkZW50aWFsczogVG9rZW5DcmVkZW50aWFscyxcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgYWN0aXZlOiB6LmJvb2xlYW4oKSxcbiAgb3JkOiB6LmludCgpLFxuICBxdW90YV90aHJlc2hvbGQ6IHouaW50KCkubnVsbGFibGUoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9rZW5CYXNlU2NoZW1hID0gei5pbmZlcjx0eXBlb2YgVG9rZW5CYXNlU2NoZW1hPiAmIHtcbiAgcmVhZG9ubHkgX19oYXNEZWZhdWx0X186IHJlYWRvbmx5IFtcImNyZWF0ZWRfYXRcIiwgXCJhY3RpdmVcIiwgXCJvcmRcIiwgXCJxdW90YV90aHJlc2hvbGRcIiwgXCJpZFwiXTtcbn07XG5cbi8vIEJhc2VMaXN0UGFyYW1zOiBSZXF1ZXN0TG9nXG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ0Jhc2VMaXN0UGFyYW1zID0gelxuICAub2JqZWN0KHtcbiAgICBudW06IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKSxcbiAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm1pbigxKSxcbiAgICBzZWFyY2g6IFJlcXVlc3RMb2dTZWFyY2hGaWVsZCxcbiAgICBrZXl3b3JkOiB6LnN0cmluZygpLFxuICAgIG9yZGVyQnk6IFJlcXVlc3RMb2dPcmRlckJ5LFxuICAgIHF1ZXJ5TW9kZTogU29uYW11UXVlcnlNb2RlLFxuICAgIGlkOiB6QXJyYXlhYmxlKHoubnVtYmVyKCkuaW50KCkucG9zaXRpdmUoKSksXG4gICAgc29uYW11RmlsdGVyOiB6LmN1c3RvbTxBcHBseVNvbmFtdUZpbHRlcjxSZXF1ZXN0TG9nQmFzZVNjaGVtYSwgbmV2ZXIsIG5ldmVyPj4oKSxcbiAgICB0b2tlbl9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gICAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgICBtb2RlbF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dCYXNlTGlzdFBhcmFtcyA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dCYXNlTGlzdFBhcmFtcz47XG5cbi8vIEJhc2VMaXN0UGFyYW1zOiBSZXF1ZXN0TG9nU3RlcFxuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwQmFzZUxpc3RQYXJhbXMgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG51bTogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLFxuICAgIHBhZ2U6IHoubnVtYmVyKCkuaW50KCkubWluKDEpLFxuICAgIHNlYXJjaDogUmVxdWVzdExvZ1N0ZXBTZWFyY2hGaWVsZCxcbiAgICBrZXl3b3JkOiB6LnN0cmluZygpLFxuICAgIG9yZGVyQnk6IFJlcXVlc3RMb2dTdGVwT3JkZXJCeSxcbiAgICBxdWVyeU1vZGU6IFNvbmFtdVF1ZXJ5TW9kZSxcbiAgICBpZDogekFycmF5YWJsZSh6Lm51bWJlcigpLmludCgpLnBvc2l0aXZlKCkpLFxuICAgIHNvbmFtdUZpbHRlcjogei5jdXN0b208QXBwbHlTb25hbXVGaWx0ZXI8UmVxdWVzdExvZ1N0ZXBCYXNlU2NoZW1hLCBuZXZlciwgbmV2ZXI+PigpLFxuICAgIHJlcXVlc3RfbG9nX2lkOiB6LmludCgpLFxuICB9KVxuICAucGFydGlhbCgpO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N0ZXBCYXNlTGlzdFBhcmFtcyA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwQmFzZUxpc3RQYXJhbXM+O1xuXG4vLyBCYXNlTGlzdFBhcmFtczogVG9rZW5cbmV4cG9ydCBjb25zdCBUb2tlbkJhc2VMaXN0UGFyYW1zID0gelxuICAub2JqZWN0KHtcbiAgICBudW06IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKSxcbiAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm1pbigxKSxcbiAgICBzZWFyY2g6IFRva2VuU2VhcmNoRmllbGQsXG4gICAga2V5d29yZDogei5zdHJpbmcoKSxcbiAgICBvcmRlckJ5OiBUb2tlbk9yZGVyQnksXG4gICAgcXVlcnlNb2RlOiBTb25hbXVRdWVyeU1vZGUsXG4gICAgaWQ6IHpBcnJheWFibGUoei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpKSxcbiAgICBzb25hbXVGaWx0ZXI6IHouY3VzdG9tPEFwcGx5U29uYW11RmlsdGVyPFRva2VuQmFzZVNjaGVtYSwgbmV2ZXIsIG5ldmVyPj4oKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbmV4cG9ydCB0eXBlIFRva2VuQmFzZUxpc3RQYXJhbXMgPSB6LmluZmVyPHR5cGVvZiBUb2tlbkJhc2VMaXN0UGFyYW1zPjtcblxuLy8gU3Vic2V0czogUmVxdWVzdExvZ1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdWJzZXRBID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHRva2VuX25hbWU6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgcHJvamVjdF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgbW9kZWxfbmFtZTogei5zdHJpbmcoKS5tYXgoNTApLm51bGxhYmxlKCksXG4gIHVzZXJfcHJvbXB0OiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHN5c3RlbV9wcm9tcHQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgcmVzcG9uc2U6IHouc3RyaW5nKCksXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKSxcbiAgb3V0cHV0X3Rva2Vuczogei5pbnQoKSxcbiAgY2FjaGVfcmVhZF90b2tlbnM6IHouaW50KCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKSxcbiAgZHVyYXRpb25fbXM6IHouaW50KCksXG4gIHR0ZnRfbXM6IHouaW50KCksXG4gIGNvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGltYWdlX2Nvc3RfdXNkOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGltYWdlX2Nvc3RfbWV0aG9kOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5tYXgoMTApLm51bGxhYmxlKCksXG4gIGhpc3Rvcnk6IEhpc3RvcnlJdGVtcy5udWxsYWJsZSgpLFxuICBzdGF0dXM6IFJlcXVlc3RMb2dTdGF0dXMsXG4gIGVycm9yX21lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2NvdW50OiB6LmludCgpLFxuICBpc19pbWFnZV9nZW5lcmF0aW9uOiB6LmJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N1YnNldEEgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3Vic2V0QT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N1YnNldFAgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LmludCgpLFxuICBjcmVhdGVkX2F0OiB6LmRhdGUoKSxcbiAgdG9rZW5fbmFtZTogei5zdHJpbmcoKS5tYXgoMTAwKS5udWxsYWJsZSgpLFxuICBwcm9qZWN0X25hbWU6IHouc3RyaW5nKCkubWF4KDUwKS5udWxsYWJsZSgpLFxuICBtb2RlbF9uYW1lOiB6LnN0cmluZygpLm1heCg1MCkubnVsbGFibGUoKSxcbiAgaW5wdXRfdG9rZW5zOiB6LmludCgpLFxuICBvdXRwdXRfdG9rZW5zOiB6LmludCgpLFxuICBjYWNoZV9yZWFkX3Rva2Vuczogei5pbnQoKSxcbiAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiB6LmludCgpLFxuICBkdXJhdGlvbl9tczogei5pbnQoKSxcbiAgdHRmdF9tczogei5pbnQoKSxcbiAgY29zdF91c2Q6IHouaW50KCkubnVsbGFibGUoKSxcbiAgaW1hZ2VfY29zdF91c2Q6IHouaW50KCkubnVsbGFibGUoKSxcbiAgaW1hZ2VfY29zdF9tZXRob2Q6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgZWZmb3J0OiB6LnN0cmluZygpLm1heCgxMCkubnVsbGFibGUoKSxcbiAgc3RhdHVzOiBSZXF1ZXN0TG9nU3RhdHVzLFxuICB0b29sX2NhbGxfY291bnQ6IHouaW50KCksXG4gIGlzX2ltYWdlX2dlbmVyYXRpb246IHouYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3Vic2V0UCA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdWJzZXRQPjtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdWJzZXRNYXBwaW5nID0ge1xuICBBOiBSZXF1ZXN0TG9nU3Vic2V0QTtcbiAgUDogUmVxdWVzdExvZ1N1YnNldFA7XG59O1xuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdWJzZXRLZXkgPSB6LmVudW0oW1wiQVwiLCBcIlBcIl0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N1YnNldEtleSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdWJzZXRLZXk+O1xuXG4vLyBTdWJzZXRzOiBSZXF1ZXN0TG9nU3RlcFxuZXhwb3J0IGNvbnN0IFJlcXVlc3RMb2dTdGVwU3Vic2V0QSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouaW50KCksXG4gIGNyZWF0ZWRfYXQ6IHouZGF0ZSgpLFxuICBzdGVwX2luZGV4OiB6LmludCgpLFxuICB0eXBlOiBSZXF1ZXN0TG9nU3RlcFR5cGUsXG4gIGlucHV0X3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBvdXRwdXRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX3JlYWRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGNhY2hlX2NyZWF0aW9uX3Rva2Vuczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBkdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0dGZ0X21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGZpbmlzaF9yZWFzb246IHouc3RyaW5nKCkubWF4KDIwKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdGV4dDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICByZWFzb25pbmdfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIHRvb2xfY2FsbF9pbmRleDogei5pbnQoKS5udWxsYWJsZSgpLFxuICB0b29sX2NhbGxfaWQ6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgdG9vbF9uYW1lOiB6LnN0cmluZygpLm1heCgxMDApLm51bGxhYmxlKCksXG4gIHRvb2xfYXJnczogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX3Jlc3VsdDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICB0b29sX2R1cmF0aW9uX21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGVycm9yOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG59KTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwU3Vic2V0QSA9IHouaW5mZXI8dHlwZW9mIFJlcXVlc3RMb2dTdGVwU3Vic2V0QT47XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBTdWJzZXRUID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHN0ZXBfaW5kZXg6IHouaW50KCksXG4gIHR5cGU6IFJlcXVlc3RMb2dTdGVwVHlwZSxcbiAgaW5wdXRfdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIG91dHB1dF90b2tlbnM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgY2FjaGVfcmVhZF90b2tlbnM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIGR1cmF0aW9uX21zOiB6LmludCgpLm51bGxhYmxlKCksXG4gIHR0ZnRfbXM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgZmluaXNoX3JlYXNvbjogei5zdHJpbmcoKS5tYXgoMjApLm51bGxhYmxlKCksXG4gIHJlYXNvbmluZ190b2tlbnM6IHouaW50KCkubnVsbGFibGUoKSxcbiAgdG9vbF9jYWxsX2luZGV4OiB6LmludCgpLm51bGxhYmxlKCksXG4gIHRvb2xfY2FsbF9pZDogei5zdHJpbmcoKS5tYXgoMTAwKS5udWxsYWJsZSgpLFxuICB0b29sX25hbWU6IHouc3RyaW5nKCkubWF4KDEwMCkubnVsbGFibGUoKSxcbiAgdG9vbF9kdXJhdGlvbl9tczogei5pbnQoKS5udWxsYWJsZSgpLFxuICBlcnJvcjogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxufSk7XG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3RlcFN1YnNldFQgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RlcFN1YnNldFQ+O1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N0ZXBTdWJzZXRNYXBwaW5nID0ge1xuICBBOiBSZXF1ZXN0TG9nU3RlcFN1YnNldEE7XG4gIFQ6IFJlcXVlc3RMb2dTdGVwU3Vic2V0VDtcbn07XG5leHBvcnQgY29uc3QgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXkgPSB6LmVudW0oW1wiQVwiLCBcIlRcIl0pO1xuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXkgPSB6LmluZmVyPHR5cGVvZiBSZXF1ZXN0TG9nU3RlcFN1YnNldEtleT47XG5cbi8vIFN1YnNldHM6IFRva2VuXG5leHBvcnQgY29uc3QgVG9rZW5TdWJzZXRBID0gei5vYmplY3Qoe1xuICBpZDogei5pbnQoKSxcbiAgY3JlYXRlZF9hdDogei5kYXRlKCksXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLm1heCgyMCksXG4gIGNyZWRlbnRpYWxzOiBUb2tlbkNyZWRlbnRpYWxzLFxuICBuYW1lOiB6LnN0cmluZygpLFxuICBhY3RpdmU6IHouYm9vbGVhbigpLFxuICBvcmQ6IHouaW50KCksXG4gIHF1b3RhX3RocmVzaG9sZDogei5pbnQoKS5udWxsYWJsZSgpLFxufSk7XG5leHBvcnQgdHlwZSBUb2tlblN1YnNldEEgPSB6LmluZmVyPHR5cGVvZiBUb2tlblN1YnNldEE+O1xuZXhwb3J0IHR5cGUgVG9rZW5TdWJzZXRNYXBwaW5nID0ge1xuICBBOiBUb2tlblN1YnNldEE7XG59O1xuZXhwb3J0IGNvbnN0IFRva2VuU3Vic2V0S2V5ID0gei5lbnVtKFtcIkFcIl0pO1xuZXhwb3J0IHR5cGUgVG9rZW5TdWJzZXRLZXkgPSB6LmluZmVyPHR5cGVvZiBUb2tlblN1YnNldEtleT47XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsTUFBTSxlQUFlLEVBQUUsTUFDckIsRUFBRSxPQUFPO0NBQ1AsTUFBTSxFQUFFLFFBQVE7Q0FDaEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVO0NBQzNCLFNBQVMsRUFBRSxTQUFTLENBQUMsVUFBVTtDQUMvQixNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVU7Q0FDM0IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxVQUFVO0NBQ2hDLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVTtDQUM5QixRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVU7Q0FDOUIsQ0FBQyxDQUNIO0FBSUQsTUFBTSxtQkFBbUIsRUFBRSxNQUFNLENBQy9CLEVBQUUsT0FBTztDQUNQLGFBQWEsRUFBRSxRQUFRO0NBQ3ZCLGNBQWMsRUFBRSxRQUFRO0NBQ3hCLFdBQVcsRUFBRSxRQUFRO0NBQ3JCLGFBQWEsRUFBRSxRQUFRO0NBQ3hCLENBQUMsRUFDRixFQUFFLE9BQU87Q0FDUCxhQUFhLEVBQUUsUUFBUTtDQUN2QixjQUFjLEVBQUUsUUFBUTtDQUN4QixTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVU7Q0FDOUIsc0JBQXNCLEVBQUUsUUFBUTtDQUNoQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsVUFBVTtDQUN2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
|
|
@@ -18,11 +18,14 @@ const requestLogSubsetQueries = {
|
|
|
18
18
|
duration_ms: "request_logs.duration_ms",
|
|
19
19
|
ttft_ms: "request_logs.ttft_ms",
|
|
20
20
|
cost_usd: "request_logs.cost_usd",
|
|
21
|
+
image_cost_usd: "request_logs.image_cost_usd",
|
|
22
|
+
image_cost_method: "request_logs.image_cost_method",
|
|
21
23
|
effort: "request_logs.effort",
|
|
22
24
|
history: "request_logs.history",
|
|
23
25
|
status: "request_logs.status",
|
|
24
26
|
error_message: "request_logs.error_message",
|
|
25
|
-
tool_call_count: "request_logs.tool_call_count"
|
|
27
|
+
tool_call_count: "request_logs.tool_call_count",
|
|
28
|
+
is_image_generation: "request_logs.is_image_generation"
|
|
26
29
|
});
|
|
27
30
|
},
|
|
28
31
|
P: (qbWrapper) => {
|
|
@@ -39,9 +42,12 @@ const requestLogSubsetQueries = {
|
|
|
39
42
|
duration_ms: "request_logs.duration_ms",
|
|
40
43
|
ttft_ms: "request_logs.ttft_ms",
|
|
41
44
|
cost_usd: "request_logs.cost_usd",
|
|
45
|
+
image_cost_usd: "request_logs.image_cost_usd",
|
|
46
|
+
image_cost_method: "request_logs.image_cost_method",
|
|
42
47
|
effort: "request_logs.effort",
|
|
43
48
|
status: "request_logs.status",
|
|
44
|
-
tool_call_count: "request_logs.tool_call_count"
|
|
49
|
+
tool_call_count: "request_logs.tool_call_count",
|
|
50
|
+
is_image_generation: "request_logs.is_image_generation"
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
53
|
};
|
|
@@ -116,4 +122,4 @@ const tokenLoaderQueries = { A: [] };
|
|
|
116
122
|
//#endregion
|
|
117
123
|
export { requestLogLoaderQueries, requestLogStepLoaderQueries, requestLogStepSubsetQueries, requestLogSubsetQueries, tokenLoaderQueries, tokenSubsetQueries };
|
|
118
124
|
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmdlbmVyYXRlZC5zc28uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NvbmFtdS5nZW5lcmF0ZWQuc3NvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGdlbmVyYXRlZFxuICog7KeB7KCRIOyImOygle2VmOyngCDrp4jshLjsmpQuXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBQdXJpV3JhcHBlciwgdHlwZSBEYXRhYmFzZVNjaGVtYUV4dGVuZCwgdHlwZSBQdXJpTG9hZGVyUXVlcmllcyB9IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHtcbiAgdHlwZSBSZXF1ZXN0TG9nU3Vic2V0S2V5LFxuICB0eXBlIFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5LFxuICB0eXBlIFRva2VuU3Vic2V0S2V5LFxuICB0eXBlIFJlcXVlc3RMb2dCYXNlU2NoZW1hLFxuICB0eXBlIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYSxcbiAgdHlwZSBUb2tlbkJhc2VTY2hlbWEsXG59IGZyb20gXCIuL3NvbmFtdS5nZW5lcmF0ZWRcIjtcblxuLy8gU3Vic2V0UXVlcnk6IFJlcXVlc3RMb2dcbmV4cG9ydCBjb25zdCByZXF1ZXN0TG9nU3Vic2V0UXVlcmllcyA9IHtcbiAgQTogKHFiV3JhcHBlcjogUHVyaVdyYXBwZXI8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+KSA9PiB7XG4gICAgcmV0dXJuIHFiV3JhcHBlci5mcm9tKFwicmVxdWVzdF9sb2dzXCIpLnNlbGVjdCh7XG4gICAgICBpZDogXCJyZXF1ZXN0X2xvZ3MuaWRcIixcbiAgICAgIGNyZWF0ZWRfYXQ6IFwicmVxdWVzdF9sb2dzLmNyZWF0ZWRfYXRcIixcbiAgICAgIHRva2VuX25hbWU6IFwicmVxdWVzdF9sb2dzLnRva2VuX25hbWVcIixcbiAgICAgIHByb2plY3RfbmFtZTogXCJyZXF1ZXN0X2xvZ3MucHJvamVjdF9uYW1lXCIsXG4gICAgICBtb2RlbF9uYW1lOiBcInJlcXVlc3RfbG9ncy5tb2RlbF9uYW1lXCIsXG4gICAgICB1c2VyX3Byb21wdDogXCJyZXF1ZXN0X2xvZ3MudXNlcl9wcm9tcHRcIixcbiAgICAgIHN5c3RlbV9wcm9tcHQ6IFwicmVxdWVzdF9sb2dzLnN5c3RlbV9wcm9tcHRcIixcbiAgICAgIHJlc3BvbnNlOiBcInJlcXVlc3RfbG9ncy5yZXNwb25zZVwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5pbnB1dF90b2tlbnNcIixcbiAgICAgIG91dHB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dzLm91dHB1dF90b2tlbnNcIixcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIGR1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9ncy5kdXJhdGlvbl9tc1wiLFxuICAgICAgdHRmdF9tczogXCJyZXF1ZXN0X2xvZ3MudHRmdF9tc1wiLFxuICAgICAgY29zdF91c2Q6IFwicmVxdWVzdF9sb2dzLmNvc3RfdXNkXCIsXG4gICAgICBlZmZvcnQ6IFwicmVxdWVzdF9sb2dzLmVmZm9ydFwiLFxuICAgICAgaGlzdG9yeTogXCJyZXF1ZXN0X2xvZ3MuaGlzdG9yeVwiLFxuICAgICAgc3RhdHVzOiBcInJlcXVlc3RfbG9ncy5zdGF0dXNcIixcbiAgICAgIGVycm9yX21lc3NhZ2U6IFwicmVxdWVzdF9sb2dzLmVycm9yX21lc3NhZ2VcIixcbiAgICAgIHRvb2xfY2FsbF9jb3VudDogXCJyZXF1ZXN0X2xvZ3MudG9vbF9jYWxsX2NvdW50XCIsXG4gICAgfSk7XG4gIH0sXG4gIFA6IChxYldyYXBwZXI6IFB1cmlXcmFwcGVyPERhdGFiYXNlU2NoZW1hRXh0ZW5kPikgPT4ge1xuICAgIHJldHVybiBxYldyYXBwZXIuZnJvbShcInJlcXVlc3RfbG9nc1wiKS5zZWxlY3Qoe1xuICAgICAgaWQ6IFwicmVxdWVzdF9sb2dzLmlkXCIsXG4gICAgICBjcmVhdGVkX2F0OiBcInJlcXVlc3RfbG9ncy5jcmVhdGVkX2F0XCIsXG4gICAgICB0b2tlbl9uYW1lOiBcInJlcXVlc3RfbG9ncy50b2tlbl9uYW1lXCIsXG4gICAgICBwcm9qZWN0X25hbWU6IFwicmVxdWVzdF9sb2dzLnByb2plY3RfbmFtZVwiLFxuICAgICAgbW9kZWxfbmFtZTogXCJyZXF1ZXN0X2xvZ3MubW9kZWxfbmFtZVwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5pbnB1dF90b2tlbnNcIixcbiAgICAgIG91dHB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dzLm91dHB1dF90b2tlbnNcIixcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIGR1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9ncy5kdXJhdGlvbl9tc1wiLFxuICAgICAgdHRmdF9tczogXCJyZXF1ZXN0X2xvZ3MudHRmdF9tc1wiLFxuICAgICAgY29zdF91c2Q6IFwicmVxdWVzdF9sb2dzLmNvc3RfdXNkXCIsXG4gICAgICBlZmZvcnQ6IFwicmVxdWVzdF9sb2dzLmVmZm9ydFwiLFxuICAgICAgc3RhdHVzOiBcInJlcXVlc3RfbG9ncy5zdGF0dXNcIixcbiAgICAgIHRvb2xfY2FsbF9jb3VudDogXCJyZXF1ZXN0X2xvZ3MudG9vbF9jYWxsX2NvdW50XCIsXG4gICAgfSk7XG4gIH0sXG59O1xuXG4vLyBMb2FkZXJRdWVyeTogUmVxdWVzdExvZ1xuZXhwb3J0IGNvbnN0IHJlcXVlc3RMb2dMb2FkZXJRdWVyaWVzID0ge1xuICBBOiBbXSxcbiAgUDogW10sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBQdXJpTG9hZGVyUXVlcmllczxSZXF1ZXN0TG9nU3Vic2V0S2V5PjtcblxuLy8gU3Vic2V0UXVlcnk6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgcmVxdWVzdExvZ1N0ZXBTdWJzZXRRdWVyaWVzID0ge1xuICBBOiAocWJXcmFwcGVyOiBQdXJpV3JhcHBlcjxEYXRhYmFzZVNjaGVtYUV4dGVuZD4pID0+IHtcbiAgICByZXR1cm4gcWJXcmFwcGVyLmZyb20oXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKS5zZWxlY3Qoe1xuICAgICAgaWQ6IFwicmVxdWVzdF9sb2dfc3RlcHMuaWRcIixcbiAgICAgIGNyZWF0ZWRfYXQ6IFwicmVxdWVzdF9sb2dfc3RlcHMuY3JlYXRlZF9hdFwiLFxuICAgICAgc3RlcF9pbmRleDogXCJyZXF1ZXN0X2xvZ19zdGVwcy5zdGVwX2luZGV4XCIsXG4gICAgICB0eXBlOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnR5cGVcIixcbiAgICAgIGlucHV0X3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5pbnB1dF90b2tlbnNcIixcbiAgICAgIG91dHB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMub3V0cHV0X3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfcmVhZF90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMuY2FjaGVfcmVhZF90b2tlbnNcIixcbiAgICAgIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5jYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIGR1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmR1cmF0aW9uX21zXCIsXG4gICAgICB0dGZ0X21zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnR0ZnRfbXNcIixcbiAgICAgIGZpbmlzaF9yZWFzb246IFwicmVxdWVzdF9sb2dfc3RlcHMuZmluaXNoX3JlYXNvblwiLFxuICAgICAgcmVhc29uaW5nX3RleHQ6IFwicmVxdWVzdF9sb2dfc3RlcHMucmVhc29uaW5nX3RleHRcIixcbiAgICAgIHJlYXNvbmluZ190b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMucmVhc29uaW5nX3Rva2Vuc1wiLFxuICAgICAgdG9vbF9jYWxsX2luZGV4OiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfY2FsbF9pbmRleFwiLFxuICAgICAgdG9vbF9jYWxsX2lkOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfY2FsbF9pZFwiLFxuICAgICAgdG9vbF9uYW1lOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfbmFtZVwiLFxuICAgICAgdG9vbF9hcmdzOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfYXJnc1wiLFxuICAgICAgdG9vbF9yZXN1bHQ6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9yZXN1bHRcIixcbiAgICAgIHRvb2xfZHVyYXRpb25fbXM6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9kdXJhdGlvbl9tc1wiLFxuICAgICAgZXJyb3I6IFwicmVxdWVzdF9sb2dfc3RlcHMuZXJyb3JcIixcbiAgICB9KTtcbiAgfSxcbiAgVDogKHFiV3JhcHBlcjogUHVyaVdyYXBwZXI8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+KSA9PiB7XG4gICAgcmV0dXJuIHFiV3JhcHBlci5mcm9tKFwicmVxdWVzdF9sb2dfc3RlcHNcIikuc2VsZWN0KHtcbiAgICAgIGlkOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmlkXCIsXG4gICAgICBjcmVhdGVkX2F0OiBcInJlcXVlc3RfbG9nX3N0ZXBzLmNyZWF0ZWRfYXRcIixcbiAgICAgIHN0ZXBfaW5kZXg6IFwicmVxdWVzdF9sb2dfc3RlcHMuc3RlcF9pbmRleFwiLFxuICAgICAgdHlwZTogXCJyZXF1ZXN0X2xvZ19zdGVwcy50eXBlXCIsXG4gICAgICBpbnB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMuaW5wdXRfdG9rZW5zXCIsXG4gICAgICBvdXRwdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLm91dHB1dF90b2tlbnNcIixcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmNhY2hlX3JlYWRfdG9rZW5zXCIsXG4gICAgICBjYWNoZV9jcmVhdGlvbl90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMuY2FjaGVfY3JlYXRpb25fdG9rZW5zXCIsXG4gICAgICBkdXJhdGlvbl9tczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5kdXJhdGlvbl9tc1wiLFxuICAgICAgdHRmdF9tczogXCJyZXF1ZXN0X2xvZ19zdGVwcy50dGZ0X21zXCIsXG4gICAgICBmaW5pc2hfcmVhc29uOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmZpbmlzaF9yZWFzb25cIixcbiAgICAgIHJlYXNvbmluZ190b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMucmVhc29uaW5nX3Rva2Vuc1wiLFxuICAgICAgdG9vbF9jYWxsX2luZGV4OiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfY2FsbF9pbmRleFwiLFxuICAgICAgdG9vbF9jYWxsX2lkOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfY2FsbF9pZFwiLFxuICAgICAgdG9vbF9uYW1lOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfbmFtZVwiLFxuICAgICAgdG9vbF9kdXJhdGlvbl9tczogXCJyZXF1ZXN0X2xvZ19zdGVwcy50b29sX2R1cmF0aW9uX21zXCIsXG4gICAgICBlcnJvcjogXCJyZXF1ZXN0X2xvZ19zdGVwcy5lcnJvclwiLFxuICAgIH0pO1xuICB9LFxufTtcblxuLy8gTG9hZGVyUXVlcnk6IFJlcXVlc3RMb2dTdGVwXG5leHBvcnQgY29uc3QgcmVxdWVzdExvZ1N0ZXBMb2FkZXJRdWVyaWVzID0ge1xuICBBOiBbXSxcbiAgVDogW10sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBQdXJpTG9hZGVyUXVlcmllczxSZXF1ZXN0TG9nU3RlcFN1YnNldEtleT47XG5cbi8vIFN1YnNldFF1ZXJ5OiBUb2tlblxuZXhwb3J0IGNvbnN0IHRva2VuU3Vic2V0UXVlcmllcyA9IHtcbiAgQTogKHFiV3JhcHBlcjogUHVyaVdyYXBwZXI8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+KSA9PiB7XG4gICAgcmV0dXJuIHFiV3JhcHBlci5mcm9tKFwidG9rZW5zXCIpLnNlbGVjdCh7XG4gICAgICBpZDogXCJ0b2tlbnMuaWRcIixcbiAgICAgIGNyZWF0ZWRfYXQ6IFwidG9rZW5zLmNyZWF0ZWRfYXRcIixcbiAgICAgIHByb3ZpZGVyOiBcInRva2Vucy5wcm92aWRlclwiLFxuICAgICAgY3JlZGVudGlhbHM6IFwidG9rZW5zLmNyZWRlbnRpYWxzXCIsXG4gICAgICBuYW1lOiBcInRva2Vucy5uYW1lXCIsXG4gICAgICBhY3RpdmU6IFwidG9rZW5zLmFjdGl2ZVwiLFxuICAgICAgb3JkOiBcInRva2Vucy5vcmRcIixcbiAgICAgIHF1b3RhX3RocmVzaG9sZDogXCJ0b2tlbnMucXVvdGFfdGhyZXNob2xkXCIsXG4gICAgfSk7XG4gIH0sXG59O1xuXG4vLyBMb2FkZXJRdWVyeTogVG9rZW5cbmV4cG9ydCBjb25zdCB0b2tlbkxvYWRlclF1ZXJpZXMgPSB7XG4gIEE6IFtdLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUHVyaUxvYWRlclF1ZXJpZXM8VG9rZW5TdWJzZXRLZXk+O1xuXG4vLyBGb3JlaWduS2V5IFR5cGVzXG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nU3RlcEZvcmVpZ25LZXlzID0gXCJyZXF1ZXN0X2xvZ19pZFwiO1xuXG4vLyBEYXRhYmFzZVNjaGVtYVxuZGVjbGFyZSBtb2R1bGUgXCJzb25hbXVcIiB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VTY2hlbWFFeHRlbmQge1xuICAgIHJlcXVlc3RfbG9nczogUmVxdWVzdExvZ0Jhc2VTY2hlbWE7XG4gICAgcmVxdWVzdF9sb2dfc3RlcHM6IFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYTtcbiAgICB0b2tlbnM6IFRva2VuQmFzZVNjaGVtYTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VGb3JlaWduS2V5cyB7XG4gICAgcmVxdWVzdF9sb2dfc3RlcHM6IFJlcXVlc3RMb2dTdGVwRm9yZWlnbktleXM7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsTUFBYSwwQkFBMEI7Q0FDckMsSUFBSSxjQUFpRDtBQUNuRCxTQUFPLFVBQVUsS0FBSyxlQUFlLENBQUMsT0FBTztHQUMzQyxJQUFJO0dBQ0osWUFBWTtHQUNaLFlBQVk7R0FDWixjQUFjO0dBQ2QsWUFBWTtHQUNaLGFBQWE7R0FDYixlQUFlO0dBQ2YsVUFBVTtHQUNWLGNBQWM7R0FDZCxlQUFlO0dBQ2YsbUJBQW1CO0dBQ25CLHVCQUF1QjtHQUN2QixhQUFhO0dBQ2IsU0FBUztHQUNULFVBQVU7R0FDVixRQUFRO0dBQ1IsU0FBUztHQUNULFFBQVE7R0FDUixlQUFlO0dBQ2YsaUJBQWlCO0dBQ2xCLENBQUM7O0NBRUosSUFBSSxjQUFpRDtBQUNuRCxTQUFPLFVBQVUsS0FBSyxlQUFlLENBQUMsT0FBTztHQUMzQyxJQUFJO0dBQ0osWUFBWTtHQUNaLFlBQVk7R0FDWixjQUFjO0dBQ2QsWUFBWTtHQUNaLGNBQWM7R0FDZCxlQUFlO0dBQ2YsbUJBQW1CO0dBQ25CLHVCQUF1QjtHQUN2QixhQUFhO0dBQ2IsU0FBUztHQUNULFVBQVU7R0FDVixRQUFRO0dBQ1IsUUFBUTtHQUNSLGlCQUFpQjtHQUNsQixDQUFDOztDQUVMO0FBR0QsTUFBYSwwQkFBMEI7Q0FDckMsR0FBRyxFQUFFO0NBQ0wsR0FBRyxFQUFFO0NBQ047QUFHRCxNQUFhLDhCQUE4QjtDQUN6QyxJQUFJLGNBQWlEO0FBQ25ELFNBQU8sVUFBVSxLQUFLLG9CQUFvQixDQUFDLE9BQU87R0FDaEQsSUFBSTtHQUNKLFlBQVk7R0FDWixZQUFZO0dBQ1osTUFBTTtHQUNOLGNBQWM7R0FDZCxlQUFlO0dBQ2YsbUJBQW1CO0dBQ25CLHVCQUF1QjtHQUN2QixhQUFhO0dBQ2IsU0FBUztHQUNULGVBQWU7R0FDZixnQkFBZ0I7R0FDaEIsa0JBQWtCO0dBQ2xCLGlCQUFpQjtHQUNqQixjQUFjO0dBQ2QsV0FBVztHQUNYLFdBQVc7R0FDWCxhQUFhO0dBQ2Isa0JBQWtCO0dBQ2xCLE9BQU87R0FDUixDQUFDOztDQUVKLElBQUksY0FBaUQ7QUFDbkQsU0FBTyxVQUFVLEtBQUssb0JBQW9CLENBQUMsT0FBTztHQUNoRCxJQUFJO0dBQ0osWUFBWTtHQUNaLFlBQVk7R0FDWixNQUFNO0dBQ04sY0FBYztHQUNkLGVBQWU7R0FDZixtQkFBbUI7R0FDbkIsdUJBQXVCO0dBQ3ZCLGFBQWE7R0FDYixTQUFTO0dBQ1QsZUFBZTtHQUNmLGtCQUFrQjtHQUNsQixpQkFBaUI7R0FDakIsY0FBYztHQUNkLFdBQVc7R0FDWCxrQkFBa0I7R0FDbEIsT0FBTztHQUNSLENBQUM7O0NBRUw7QUFHRCxNQUFhLDhCQUE4QjtDQUN6QyxHQUFHLEVBQUU7Q0FDTCxHQUFHLEVBQUU7Q0FDTjtBQUdELE1BQWEscUJBQXFCLEVBQ2hDLElBQUksY0FBaUQ7QUFDbkQsUUFBTyxVQUFVLEtBQUssU0FBUyxDQUFDLE9BQU87RUFDckMsSUFBSTtFQUNKLFlBQVk7RUFDWixVQUFVO0VBQ1YsYUFBYTtFQUNiLE1BQU07RUFDTixRQUFRO0VBQ1IsS0FBSztFQUNMLGlCQUFpQjtFQUNsQixDQUFDO0dBRUw7QUFHRCxNQUFhLHFCQUFxQixFQUNoQyxHQUFHLEVBQUUsRUFDTiJ9
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmdlbmVyYXRlZC5zc28uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NvbmFtdS5nZW5lcmF0ZWQuc3NvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGdlbmVyYXRlZFxuICog7KeB7KCRIOyImOygle2VmOyngCDrp4jshLjsmpQuXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBQdXJpV3JhcHBlciwgdHlwZSBEYXRhYmFzZVNjaGVtYUV4dGVuZCwgdHlwZSBQdXJpTG9hZGVyUXVlcmllcyB9IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHtcbiAgdHlwZSBSZXF1ZXN0TG9nU3Vic2V0S2V5LFxuICB0eXBlIFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5LFxuICB0eXBlIFRva2VuU3Vic2V0S2V5LFxuICB0eXBlIFJlcXVlc3RMb2dCYXNlU2NoZW1hLFxuICB0eXBlIFJlcXVlc3RMb2dTdGVwQmFzZVNjaGVtYSxcbiAgdHlwZSBUb2tlbkJhc2VTY2hlbWEsXG59IGZyb20gXCIuL3NvbmFtdS5nZW5lcmF0ZWRcIjtcblxuLy8gU3Vic2V0UXVlcnk6IFJlcXVlc3RMb2dcbmV4cG9ydCBjb25zdCByZXF1ZXN0TG9nU3Vic2V0UXVlcmllcyA9IHtcbiAgQTogKHFiV3JhcHBlcjogUHVyaVdyYXBwZXI8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+KSA9PiB7XG4gICAgcmV0dXJuIHFiV3JhcHBlci5mcm9tKFwicmVxdWVzdF9sb2dzXCIpLnNlbGVjdCh7XG4gICAgICBpZDogXCJyZXF1ZXN0X2xvZ3MuaWRcIixcbiAgICAgIGNyZWF0ZWRfYXQ6IFwicmVxdWVzdF9sb2dzLmNyZWF0ZWRfYXRcIixcbiAgICAgIHRva2VuX25hbWU6IFwicmVxdWVzdF9sb2dzLnRva2VuX25hbWVcIixcbiAgICAgIHByb2plY3RfbmFtZTogXCJyZXF1ZXN0X2xvZ3MucHJvamVjdF9uYW1lXCIsXG4gICAgICBtb2RlbF9uYW1lOiBcInJlcXVlc3RfbG9ncy5tb2RlbF9uYW1lXCIsXG4gICAgICB1c2VyX3Byb21wdDogXCJyZXF1ZXN0X2xvZ3MudXNlcl9wcm9tcHRcIixcbiAgICAgIHN5c3RlbV9wcm9tcHQ6IFwicmVxdWVzdF9sb2dzLnN5c3RlbV9wcm9tcHRcIixcbiAgICAgIHJlc3BvbnNlOiBcInJlcXVlc3RfbG9ncy5yZXNwb25zZVwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5pbnB1dF90b2tlbnNcIixcbiAgICAgIG91dHB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dzLm91dHB1dF90b2tlbnNcIixcbiAgICAgIGNhY2hlX3JlYWRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5jYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIGR1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9ncy5kdXJhdGlvbl9tc1wiLFxuICAgICAgdHRmdF9tczogXCJyZXF1ZXN0X2xvZ3MudHRmdF9tc1wiLFxuICAgICAgY29zdF91c2Q6IFwicmVxdWVzdF9sb2dzLmNvc3RfdXNkXCIsXG4gICAgICBpbWFnZV9jb3N0X3VzZDogXCJyZXF1ZXN0X2xvZ3MuaW1hZ2VfY29zdF91c2RcIixcbiAgICAgIGltYWdlX2Nvc3RfbWV0aG9kOiBcInJlcXVlc3RfbG9ncy5pbWFnZV9jb3N0X21ldGhvZFwiLFxuICAgICAgZWZmb3J0OiBcInJlcXVlc3RfbG9ncy5lZmZvcnRcIixcbiAgICAgIGhpc3Rvcnk6IFwicmVxdWVzdF9sb2dzLmhpc3RvcnlcIixcbiAgICAgIHN0YXR1czogXCJyZXF1ZXN0X2xvZ3Muc3RhdHVzXCIsXG4gICAgICBlcnJvcl9tZXNzYWdlOiBcInJlcXVlc3RfbG9ncy5lcnJvcl9tZXNzYWdlXCIsXG4gICAgICB0b29sX2NhbGxfY291bnQ6IFwicmVxdWVzdF9sb2dzLnRvb2xfY2FsbF9jb3VudFwiLFxuICAgICAgaXNfaW1hZ2VfZ2VuZXJhdGlvbjogXCJyZXF1ZXN0X2xvZ3MuaXNfaW1hZ2VfZ2VuZXJhdGlvblwiLFxuICAgIH0pO1xuICB9LFxuICBQOiAocWJXcmFwcGVyOiBQdXJpV3JhcHBlcjxEYXRhYmFzZVNjaGVtYUV4dGVuZD4pID0+IHtcbiAgICByZXR1cm4gcWJXcmFwcGVyLmZyb20oXCJyZXF1ZXN0X2xvZ3NcIikuc2VsZWN0KHtcbiAgICAgIGlkOiBcInJlcXVlc3RfbG9ncy5pZFwiLFxuICAgICAgY3JlYXRlZF9hdDogXCJyZXF1ZXN0X2xvZ3MuY3JlYXRlZF9hdFwiLFxuICAgICAgdG9rZW5fbmFtZTogXCJyZXF1ZXN0X2xvZ3MudG9rZW5fbmFtZVwiLFxuICAgICAgcHJvamVjdF9uYW1lOiBcInJlcXVlc3RfbG9ncy5wcm9qZWN0X25hbWVcIixcbiAgICAgIG1vZGVsX25hbWU6IFwicmVxdWVzdF9sb2dzLm1vZGVsX25hbWVcIixcbiAgICAgIGlucHV0X3Rva2VuczogXCJyZXF1ZXN0X2xvZ3MuaW5wdXRfdG9rZW5zXCIsXG4gICAgICBvdXRwdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9ncy5vdXRwdXRfdG9rZW5zXCIsXG4gICAgICBjYWNoZV9yZWFkX3Rva2VuczogXCJyZXF1ZXN0X2xvZ3MuY2FjaGVfcmVhZF90b2tlbnNcIixcbiAgICAgIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogXCJyZXF1ZXN0X2xvZ3MuY2FjaGVfY3JlYXRpb25fdG9rZW5zXCIsXG4gICAgICBkdXJhdGlvbl9tczogXCJyZXF1ZXN0X2xvZ3MuZHVyYXRpb25fbXNcIixcbiAgICAgIHR0ZnRfbXM6IFwicmVxdWVzdF9sb2dzLnR0ZnRfbXNcIixcbiAgICAgIGNvc3RfdXNkOiBcInJlcXVlc3RfbG9ncy5jb3N0X3VzZFwiLFxuICAgICAgaW1hZ2VfY29zdF91c2Q6IFwicmVxdWVzdF9sb2dzLmltYWdlX2Nvc3RfdXNkXCIsXG4gICAgICBpbWFnZV9jb3N0X21ldGhvZDogXCJyZXF1ZXN0X2xvZ3MuaW1hZ2VfY29zdF9tZXRob2RcIixcbiAgICAgIGVmZm9ydDogXCJyZXF1ZXN0X2xvZ3MuZWZmb3J0XCIsXG4gICAgICBzdGF0dXM6IFwicmVxdWVzdF9sb2dzLnN0YXR1c1wiLFxuICAgICAgdG9vbF9jYWxsX2NvdW50OiBcInJlcXVlc3RfbG9ncy50b29sX2NhbGxfY291bnRcIixcbiAgICAgIGlzX2ltYWdlX2dlbmVyYXRpb246IFwicmVxdWVzdF9sb2dzLmlzX2ltYWdlX2dlbmVyYXRpb25cIixcbiAgICB9KTtcbiAgfSxcbn07XG5cbi8vIExvYWRlclF1ZXJ5OiBSZXF1ZXN0TG9nXG5leHBvcnQgY29uc3QgcmVxdWVzdExvZ0xvYWRlclF1ZXJpZXMgPSB7XG4gIEE6IFtdLFxuICBQOiBbXSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFB1cmlMb2FkZXJRdWVyaWVzPFJlcXVlc3RMb2dTdWJzZXRLZXk+O1xuXG4vLyBTdWJzZXRRdWVyeTogUmVxdWVzdExvZ1N0ZXBcbmV4cG9ydCBjb25zdCByZXF1ZXN0TG9nU3RlcFN1YnNldFF1ZXJpZXMgPSB7XG4gIEE6IChxYldyYXBwZXI6IFB1cmlXcmFwcGVyPERhdGFiYXNlU2NoZW1hRXh0ZW5kPikgPT4ge1xuICAgIHJldHVybiBxYldyYXBwZXIuZnJvbShcInJlcXVlc3RfbG9nX3N0ZXBzXCIpLnNlbGVjdCh7XG4gICAgICBpZDogXCJyZXF1ZXN0X2xvZ19zdGVwcy5pZFwiLFxuICAgICAgY3JlYXRlZF9hdDogXCJyZXF1ZXN0X2xvZ19zdGVwcy5jcmVhdGVkX2F0XCIsXG4gICAgICBzdGVwX2luZGV4OiBcInJlcXVlc3RfbG9nX3N0ZXBzLnN0ZXBfaW5kZXhcIixcbiAgICAgIHR5cGU6IFwicmVxdWVzdF9sb2dfc3RlcHMudHlwZVwiLFxuICAgICAgaW5wdXRfdG9rZW5zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmlucHV0X3Rva2Vuc1wiLFxuICAgICAgb3V0cHV0X3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5vdXRwdXRfdG9rZW5zXCIsXG4gICAgICBjYWNoZV9yZWFkX3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5jYWNoZV9yZWFkX3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfY3JlYXRpb25fdG9rZW5zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmNhY2hlX2NyZWF0aW9uX3Rva2Vuc1wiLFxuICAgICAgZHVyYXRpb25fbXM6IFwicmVxdWVzdF9sb2dfc3RlcHMuZHVyYXRpb25fbXNcIixcbiAgICAgIHR0ZnRfbXM6IFwicmVxdWVzdF9sb2dfc3RlcHMudHRmdF9tc1wiLFxuICAgICAgZmluaXNoX3JlYXNvbjogXCJyZXF1ZXN0X2xvZ19zdGVwcy5maW5pc2hfcmVhc29uXCIsXG4gICAgICByZWFzb25pbmdfdGV4dDogXCJyZXF1ZXN0X2xvZ19zdGVwcy5yZWFzb25pbmdfdGV4dFwiLFxuICAgICAgcmVhc29uaW5nX3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5yZWFzb25pbmdfdG9rZW5zXCIsXG4gICAgICB0b29sX2NhbGxfaW5kZXg6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9jYWxsX2luZGV4XCIsXG4gICAgICB0b29sX2NhbGxfaWQ6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9jYWxsX2lkXCIsXG4gICAgICB0b29sX25hbWU6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9uYW1lXCIsXG4gICAgICB0b29sX2FyZ3M6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9hcmdzXCIsXG4gICAgICB0b29sX3Jlc3VsdDogXCJyZXF1ZXN0X2xvZ19zdGVwcy50b29sX3Jlc3VsdFwiLFxuICAgICAgdG9vbF9kdXJhdGlvbl9tczogXCJyZXF1ZXN0X2xvZ19zdGVwcy50b29sX2R1cmF0aW9uX21zXCIsXG4gICAgICBlcnJvcjogXCJyZXF1ZXN0X2xvZ19zdGVwcy5lcnJvclwiLFxuICAgIH0pO1xuICB9LFxuICBUOiAocWJXcmFwcGVyOiBQdXJpV3JhcHBlcjxEYXRhYmFzZVNjaGVtYUV4dGVuZD4pID0+IHtcbiAgICByZXR1cm4gcWJXcmFwcGVyLmZyb20oXCJyZXF1ZXN0X2xvZ19zdGVwc1wiKS5zZWxlY3Qoe1xuICAgICAgaWQ6IFwicmVxdWVzdF9sb2dfc3RlcHMuaWRcIixcbiAgICAgIGNyZWF0ZWRfYXQ6IFwicmVxdWVzdF9sb2dfc3RlcHMuY3JlYXRlZF9hdFwiLFxuICAgICAgc3RlcF9pbmRleDogXCJyZXF1ZXN0X2xvZ19zdGVwcy5zdGVwX2luZGV4XCIsXG4gICAgICB0eXBlOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnR5cGVcIixcbiAgICAgIGlucHV0X3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5pbnB1dF90b2tlbnNcIixcbiAgICAgIG91dHB1dF90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMub3V0cHV0X3Rva2Vuc1wiLFxuICAgICAgY2FjaGVfcmVhZF90b2tlbnM6IFwicmVxdWVzdF9sb2dfc3RlcHMuY2FjaGVfcmVhZF90b2tlbnNcIixcbiAgICAgIGNhY2hlX2NyZWF0aW9uX3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5jYWNoZV9jcmVhdGlvbl90b2tlbnNcIixcbiAgICAgIGR1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmR1cmF0aW9uX21zXCIsXG4gICAgICB0dGZ0X21zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnR0ZnRfbXNcIixcbiAgICAgIGZpbmlzaF9yZWFzb246IFwicmVxdWVzdF9sb2dfc3RlcHMuZmluaXNoX3JlYXNvblwiLFxuICAgICAgcmVhc29uaW5nX3Rva2VuczogXCJyZXF1ZXN0X2xvZ19zdGVwcy5yZWFzb25pbmdfdG9rZW5zXCIsXG4gICAgICB0b29sX2NhbGxfaW5kZXg6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9jYWxsX2luZGV4XCIsXG4gICAgICB0b29sX2NhbGxfaWQ6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9jYWxsX2lkXCIsXG4gICAgICB0b29sX25hbWU6IFwicmVxdWVzdF9sb2dfc3RlcHMudG9vbF9uYW1lXCIsXG4gICAgICB0b29sX2R1cmF0aW9uX21zOiBcInJlcXVlc3RfbG9nX3N0ZXBzLnRvb2xfZHVyYXRpb25fbXNcIixcbiAgICAgIGVycm9yOiBcInJlcXVlc3RfbG9nX3N0ZXBzLmVycm9yXCIsXG4gICAgfSk7XG4gIH0sXG59O1xuXG4vLyBMb2FkZXJRdWVyeTogUmVxdWVzdExvZ1N0ZXBcbmV4cG9ydCBjb25zdCByZXF1ZXN0TG9nU3RlcExvYWRlclF1ZXJpZXMgPSB7XG4gIEE6IFtdLFxuICBUOiBbXSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFB1cmlMb2FkZXJRdWVyaWVzPFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5PjtcblxuLy8gU3Vic2V0UXVlcnk6IFRva2VuXG5leHBvcnQgY29uc3QgdG9rZW5TdWJzZXRRdWVyaWVzID0ge1xuICBBOiAocWJXcmFwcGVyOiBQdXJpV3JhcHBlcjxEYXRhYmFzZVNjaGVtYUV4dGVuZD4pID0+IHtcbiAgICByZXR1cm4gcWJXcmFwcGVyLmZyb20oXCJ0b2tlbnNcIikuc2VsZWN0KHtcbiAgICAgIGlkOiBcInRva2Vucy5pZFwiLFxuICAgICAgY3JlYXRlZF9hdDogXCJ0b2tlbnMuY3JlYXRlZF9hdFwiLFxuICAgICAgcHJvdmlkZXI6IFwidG9rZW5zLnByb3ZpZGVyXCIsXG4gICAgICBjcmVkZW50aWFsczogXCJ0b2tlbnMuY3JlZGVudGlhbHNcIixcbiAgICAgIG5hbWU6IFwidG9rZW5zLm5hbWVcIixcbiAgICAgIGFjdGl2ZTogXCJ0b2tlbnMuYWN0aXZlXCIsXG4gICAgICBvcmQ6IFwidG9rZW5zLm9yZFwiLFxuICAgICAgcXVvdGFfdGhyZXNob2xkOiBcInRva2Vucy5xdW90YV90aHJlc2hvbGRcIixcbiAgICB9KTtcbiAgfSxcbn07XG5cbi8vIExvYWRlclF1ZXJ5OiBUb2tlblxuZXhwb3J0IGNvbnN0IHRva2VuTG9hZGVyUXVlcmllcyA9IHtcbiAgQTogW10sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBQdXJpTG9hZGVyUXVlcmllczxUb2tlblN1YnNldEtleT47XG5cbi8vIEZvcmVpZ25LZXkgVHlwZXNcbmV4cG9ydCB0eXBlIFJlcXVlc3RMb2dTdGVwRm9yZWlnbktleXMgPSBcInJlcXVlc3RfbG9nX2lkXCI7XG5cbi8vIERhdGFiYXNlU2NoZW1hXG5kZWNsYXJlIG1vZHVsZSBcInNvbmFtdVwiIHtcbiAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVNjaGVtYUV4dGVuZCB7XG4gICAgcmVxdWVzdF9sb2dzOiBSZXF1ZXN0TG9nQmFzZVNjaGVtYTtcbiAgICByZXF1ZXN0X2xvZ19zdGVwczogUmVxdWVzdExvZ1N0ZXBCYXNlU2NoZW1hO1xuICAgIHRva2VuczogVG9rZW5CYXNlU2NoZW1hO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUZvcmVpZ25LZXlzIHtcbiAgICByZXF1ZXN0X2xvZ19zdGVwczogUmVxdWVzdExvZ1N0ZXBGb3JlaWduS2V5cztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQWlCQSxNQUFhLDBCQUEwQjtDQUNyQyxJQUFJLGNBQWlEO0FBQ25ELFNBQU8sVUFBVSxLQUFLLGVBQWUsQ0FBQyxPQUFPO0dBQzNDLElBQUk7R0FDSixZQUFZO0dBQ1osWUFBWTtHQUNaLGNBQWM7R0FDZCxZQUFZO0dBQ1osYUFBYTtHQUNiLGVBQWU7R0FDZixVQUFVO0dBQ1YsY0FBYztHQUNkLGVBQWU7R0FDZixtQkFBbUI7R0FDbkIsdUJBQXVCO0dBQ3ZCLGFBQWE7R0FDYixTQUFTO0dBQ1QsVUFBVTtHQUNWLGdCQUFnQjtHQUNoQixtQkFBbUI7R0FDbkIsUUFBUTtHQUNSLFNBQVM7R0FDVCxRQUFRO0dBQ1IsZUFBZTtHQUNmLGlCQUFpQjtHQUNqQixxQkFBcUI7R0FDdEIsQ0FBQzs7Q0FFSixJQUFJLGNBQWlEO0FBQ25ELFNBQU8sVUFBVSxLQUFLLGVBQWUsQ0FBQyxPQUFPO0dBQzNDLElBQUk7R0FDSixZQUFZO0dBQ1osWUFBWTtHQUNaLGNBQWM7R0FDZCxZQUFZO0dBQ1osY0FBYztHQUNkLGVBQWU7R0FDZixtQkFBbUI7R0FDbkIsdUJBQXVCO0dBQ3ZCLGFBQWE7R0FDYixTQUFTO0dBQ1QsVUFBVTtHQUNWLGdCQUFnQjtHQUNoQixtQkFBbUI7R0FDbkIsUUFBUTtHQUNSLFFBQVE7R0FDUixpQkFBaUI7R0FDakIscUJBQXFCO0dBQ3RCLENBQUM7O0NBRUw7QUFHRCxNQUFhLDBCQUEwQjtDQUNyQyxHQUFHLEVBQUU7Q0FDTCxHQUFHLEVBQUU7Q0FDTjtBQUdELE1BQWEsOEJBQThCO0NBQ3pDLElBQUksY0FBaUQ7QUFDbkQsU0FBTyxVQUFVLEtBQUssb0JBQW9CLENBQUMsT0FBTztHQUNoRCxJQUFJO0dBQ0osWUFBWTtHQUNaLFlBQVk7R0FDWixNQUFNO0dBQ04sY0FBYztHQUNkLGVBQWU7R0FDZixtQkFBbUI7R0FDbkIsdUJBQXVCO0dBQ3ZCLGFBQWE7R0FDYixTQUFTO0dBQ1QsZUFBZTtHQUNmLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsaUJBQWlCO0dBQ2pCLGNBQWM7R0FDZCxXQUFXO0dBQ1gsV0FBVztHQUNYLGFBQWE7R0FDYixrQkFBa0I7R0FDbEIsT0FBTztHQUNSLENBQUM7O0NBRUosSUFBSSxjQUFpRDtBQUNuRCxTQUFPLFVBQVUsS0FBSyxvQkFBb0IsQ0FBQyxPQUFPO0dBQ2hELElBQUk7R0FDSixZQUFZO0dBQ1osWUFBWTtHQUNaLE1BQU07R0FDTixjQUFjO0dBQ2QsZUFBZTtHQUNmLG1CQUFtQjtHQUNuQix1QkFBdUI7R0FDdkIsYUFBYTtHQUNiLFNBQVM7R0FDVCxlQUFlO0dBQ2Ysa0JBQWtCO0dBQ2xCLGlCQUFpQjtHQUNqQixjQUFjO0dBQ2QsV0FBVztHQUNYLGtCQUFrQjtHQUNsQixPQUFPO0dBQ1IsQ0FBQzs7Q0FFTDtBQUdELE1BQWEsOEJBQThCO0NBQ3pDLEdBQUcsRUFBRTtDQUNMLEdBQUcsRUFBRTtDQUNOO0FBR0QsTUFBYSxxQkFBcUIsRUFDaEMsSUFBSSxjQUFpRDtBQUNuRCxRQUFPLFVBQVUsS0FBSyxTQUFTLENBQUMsT0FBTztFQUNyQyxJQUFJO0VBQ0osWUFBWTtFQUNaLFVBQVU7RUFDVixhQUFhO0VBQ2IsTUFBTTtFQUNOLFFBQVE7RUFDUixLQUFLO0VBQ0wsaUJBQWlCO0VBQ2xCLENBQUM7R0FFTDtBQUdELE1BQWEscUJBQXFCLEVBQ2hDLEdBQUcsRUFBRSxFQUNOIn0=
|