diff --git a/apps/designer/package.json b/apps/designer/package.json index 0030eb8..7eb5907 100644 --- a/apps/designer/package.json +++ b/apps/designer/package.json @@ -15,17 +15,17 @@ "typecheck": "vue-tsc --noEmit --skipLibCheck" }, "dependencies": { - "@vtj/core": "^0.11.1", - "@vtj/designer": "0.11.1", - "@vtj/icons": "0.11.1", - "@vtj/local": "^0.11.1", - "@vtj/materials": "^0.11.1", + "@vtj/core": "^0.11.2", + "@vtj/designer": "0.11.2", + "@vtj/icons": "0.11.2", + "@vtj/local": "^0.11.2", + "@vtj/materials": "^0.11.2", "@vtj/node": "0.11.1", - "@vtj/pro": "^0.11.1", - "@vtj/renderer": "^0.11.1", - "@vtj/ui": "^0.11.1", - "@vtj/utils": "0.11.1", - "@vtj/web": "^0.11.1", + "@vtj/pro": "^0.11.2", + "@vtj/renderer": "^0.11.2", + "@vtj/ui": "^0.11.2", + "@vtj/utils": "0.11.2", + "@vtj/web": "^0.11.2", "axios": "^1.8.1", "element-plus": "^2.9.4", "licia-es": "^1.46.0", diff --git a/apps/docs/.vitepress/config/index.mts.timestamp-1742364269832-560ff792936a4.mjs b/apps/docs/.vitepress/config/index.mts.timestamp-1742364269832-560ff792936a4.mjs new file mode 100644 index 0000000..18b08d5 --- /dev/null +++ b/apps/docs/.vitepress/config/index.mts.timestamp-1742364269832-560ff792936a4.mjs @@ -0,0 +1,577 @@ +// .vitepress/config/index.mts +import { withPwa } from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/@vite-pwa+vitepress@0.5.3_v_5acacc929a052f71508e46348a695010/node_modules/@vite-pwa/vitepress/dist/index.mjs"; +import { defineConfigWithTheme } from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_58ef46270d058512a4b08ef86c3fa101/node_modules/vitepress/dist/node/index.js"; + +// .vitepress/config/shared.mts +import { resolve } from "node:path"; +import { + viteArchiverPlugin, + viteVxeTableImportsPlugin +} from "file:///D:/Administrator/Documents/y-code/internal/vite-config/dist/index.mjs"; +import { + GitChangelog, + GitChangelogMarkdownSection +} from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/@nolebase+vitepress-plugin-_421d7943276d8958ff1d13e9c6a26037/node_modules/@nolebase/vitepress-plugin-git-changelog/dist/vite/index.mjs"; +import tailwind from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/tailwindcss@3.4.17/node_modules/tailwindcss/lib/index.js"; +import { defineConfig as defineConfig2, postcssIsolateStyles } from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_58ef46270d058512a4b08ef86c3fa101/node_modules/vitepress/dist/node/index.js"; +import { + groupIconMdPlugin, + groupIconVitePlugin +} from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/vitepress-plugin-group-icons@1.3.8/node_modules/vitepress-plugin-group-icons/dist/index.mjs"; + +// .vitepress/config/plugins/demo-preview.ts +import crypto from "node:crypto"; +import { readdirSync } from "node:fs"; +import { join } from "node:path"; +var rawPathRegexp = ( + // eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/strict + /^(.+?(?:\.([\da-z]+))?)(#[\w-]+)?(?: ?{(\d+(?:[,-]\d+)*)? ?(\S+)?})? ?(?:\[(.+)])?$/ +); +function rawPathToToken(rawPath) { + const [ + filepath = "", + extension = "", + region = "", + lines = "", + lang = "", + rawTitle = "" + ] = (rawPathRegexp.exec(rawPath) || []).slice(1); + const title = rawTitle || filepath.split("/").pop() || ""; + return { extension, filepath, lang, lines, region, title }; +} +var demoPreviewPlugin = (md) => { + md.core.ruler.after("inline", "demo-preview", (state) => { + const insertComponentImport = (importString) => { + const index = state.tokens.findIndex( + (i) => i.type === "html_block" && i.content.match(/ +`; + state.tokens.splice(0, 0, importComponent); + } else { + if (state.tokens[index]) { + const content = state.tokens[index].content; + state.tokens[index].content = content.replace( + "", + `${importString} +` + ); + } + } + }; + const regex = /]*\sdir="([^"]*)"/g; + state.src = state.src.replaceAll(regex, (_match, dir) => { + const componentDir = join(process.cwd(), "src", dir).replaceAll( + "\\", + "/" + ); + let childFiles = []; + let dirExists = true; + try { + childFiles = readdirSync(componentDir, { + encoding: "utf8", + recursive: false, + withFileTypes: false + }) || []; + } catch { + dirExists = false; + } + if (!dirExists) { + return ""; + } + const uniqueWord = generateContentHash(componentDir); + const ComponentName = `DemoComponent_${uniqueWord}`; + insertComponentImport( + `import ${ComponentName} from '${componentDir}/index.vue'` + ); + const { path: _path } = state.env; + const index = state.tokens.findIndex((i) => i.content.match(regex)); + if (!state.tokens[index]) { + return ""; + } + const firstString = "index.vue"; + childFiles = childFiles.sort((a, b) => { + if (a === firstString) return -1; + if (b === firstString) return 1; + return a.localeCompare(b, "en", { sensitivity: "base" }); + }); + state.tokens[index].content = `<${ComponentName}/> + `; + const _dummyToken = new state.Token("", "", 0); + const tokenArray = []; + childFiles.forEach((filename) => { + const templateStart = new state.Token("html_inline", "", 0); + templateStart.content = `"; + tokenArray.push(templateEnd); + }); + const endTag = new state.Token("html_inline", "", 0); + endTag.content = ""; + tokenArray.push(endTag); + state.tokens.splice(index + 1, 0, ...tokenArray); + return ""; + }); + }); +}; +function generateContentHash(input, length = 10) { + const hash = crypto.createHash("sha256").update(input).digest("hex"); + return Number.parseInt(hash, 16).toString(36).slice(0, length); +} + +// .vitepress/config/zh.mts +import { defineConfig } from "file:///D:/Administrator/Documents/y-code/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_58ef46270d058512a4b08ef86c3fa101/node_modules/vitepress/dist/node/index.js"; + +// ../../package.json +var version = "1.0.0-alpha.1"; + +// .vitepress/config/zh.mts +var zh = defineConfig({ + description: "\u60A6\u7801 & \u4F4E\u4EE3\u7801\u7BA1\u7406\u7CFB\u7EDF", + lang: "zh-Hans", + themeConfig: { + darkModeSwitchLabel: "\u4E3B\u9898", + darkModeSwitchTitle: "\u5207\u6362\u5230\u6DF1\u8272\u6A21\u5F0F", + docFooter: { + next: "\u4E0B\u4E00\u9875", + prev: "\u4E0A\u4E00\u9875" + }, + // editLink: { + // pattern: + // 'https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path', + // text: '在 GitHub 上编辑此页面', + // }, + // footer: { + // copyright: `Copyright © 2020-${new Date().getFullYear()} Vben`, + // message: '基于 MIT 许可发布.', + // }, + // langMenuLabel: '多语言', + lastUpdated: { + formatOptions: { + dateStyle: "short", + timeStyle: "medium" + }, + text: "\u6700\u540E\u66F4\u65B0\u4E8E" + }, + lightModeSwitchTitle: "\u5207\u6362\u5230\u6D45\u8272\u6A21\u5F0F", + nav: nav(), + outline: { + label: "\u9875\u9762\u5BFC\u822A" + }, + returnToTopLabel: "\u56DE\u5230\u9876\u90E8", + sidebar: { + "/commercial/": { base: "/commercial/", items: sidebarCommercial() }, + "/components/": { base: "/components/", items: sidebarComponents() }, + "/guide/": { base: "/guide/", items: sidebarGuide() } + }, + sidebarMenuLabel: "\u83DC\u5355" + } +}); +function sidebarGuide() { + return [ + { + collapsed: false, + text: "\u7B80\u4ECB", + items: [ + { + link: "introduction/platform", + text: "\u5173\u4E8E\u60A6\u7801" + }, + { link: "introduction/quick-start", text: "\u5FEB\u901F\u5F00\u59CB" }, + { + base: "/", + link: "components/index", + text: "\u7EC4\u4EF6\u6587\u6863" + } + ] + }, + { + text: "\u57FA\u7840", + items: [ + { link: "essentials/concept", text: "\u57FA\u7840\u6982\u5FF5" }, + { link: "essentials/icons", text: "\u56FE\u6807" }, + { link: "essentials/styles", text: "\u6837\u5F0F" } + ] + }, + { + text: "\u6DF1\u5165", + items: [{ link: "in-depth/features", text: "\u5E38\u7528\u529F\u80FD" }] + }, + { + text: "\u5176\u4ED6", + items: [ + // { link: 'other/project-update', text: '项目更新' }, + // { link: 'other/remove-code', text: '移除代码' }, + // { link: 'other/faq', text: '常见问题' }, + ] + } + ]; +} +function sidebarCommercial() { + return [ + { + link: "community", + text: "\u4EA4\u6D41\u7FA4" + }, + { + link: "technical-support", + text: "\u6280\u672F\u652F\u6301" + } + ]; +} +function sidebarComponents() { + return [ + { + text: "\u7EC4\u4EF6", + items: [ + { + link: "introduction", + text: "\u4ECB\u7ECD" + } + ] + }, + { + collapsed: false, + text: "\u5E03\u5C40\u7EC4\u4EF6", + items: [ + { + link: "layout-ui/page", + text: "Page \u9875\u9762" + } + ] + }, + { + collapsed: false, + text: "\u901A\u7528\u7EC4\u4EF6", + items: [ + { + link: "common-ui/vben-api-component", + text: "ApiComponent Api\u7EC4\u4EF6\u5305\u88C5\u5668" + }, + { + link: "common-ui/vben-modal", + text: "Modal \u6A21\u6001\u6846" + }, + { + link: "common-ui/vben-drawer", + text: "Drawer \u62BD\u5C49" + }, + { + link: "common-ui/vben-form", + text: "Form \u8868\u5355" + }, + { + link: "common-ui/vben-vxe-table", + text: "Vxe Table \u8868\u683C" + }, + { + link: "common-ui/vben-count-to-animator", + text: "CountToAnimator \u6570\u5B57\u52A8\u753B" + }, + { + link: "common-ui/vben-ellipsis-text", + text: "EllipsisText \u7701\u7565\u6587\u672C" + } + ] + } + ]; +} +function nav() { + return [ + { + activeMatch: "^/(guide|components)/", + text: "\u6587\u6863", + items: [ + { + activeMatch: "^/guide/", + link: "/guide/introduction/platform", + text: "\u4F4E\u4EE3\u7801\u7BA1\u7406\u5E73\u53F0" + }, + { + activeMatch: "^/renderer/", + link: "/renderer/index", + text: "\u6E32\u67D3\u5668" + }, + { + activeMatch: "^/designer/", + link: "/designer/index", + text: "\u8BBE\u8BA1\u5668" + }, + { + activeMatch: "^/materials/", + link: "/materials/index", + text: "\u7269\u6599" + } + ] + }, + { + text: "\u4F4E\u4EE3\u7801\u7BA1\u7406\u5E73\u53F0", + items: [ + { + text: "\u60A6\u7801 2.0", + items: [ + { + link: "https://y-code.shiyue.com", + text: "\u751F\u4EA7\u7248\u672C" + }, + { + link: "https://y-code-pre.shiyue.com", + text: "\u9884\u53D1\u5E03\u7248\u672C" + }, + { + link: "https://y-code.shiyue.com", + text: "\u6F14\u793A\u7248\u672C" + } + ] + }, + { + text: "\u5176\u4ED6", + items: [ + { + link: "https://custom-chart.shiyuegame.com/", + text: "\u60A6\u7801 1.0\uFF08\u5DF2\u5E9F\u5F03\uFF0C\u4E0D\u518D\u66F4\u65B0\u529F\u80FD\uFF09" + } + ] + } + ] + }, + { + text: version, + items: [ + { + link: "./changelog", + text: "\u66F4\u65B0\u65E5\u5FD7" + }, + { + link: "https://doc.weixin.qq.com/smartsheet/s3_Aa0ASwZ0AOEr2TbPuaMRoCvs1yzjA?scode=AOwAYgeoAAkoT6VFa0Aa0ASwZ0AOE&tab=q979lj&viewId=vpDUFs", + text: "\u66F4\u65B0\u8DEF\u7EBF\u56FE" + } + ] + }, + { + text: "\u{1F468}\u200D\u{1F466}\u200D\u{1F466} \u95EE\u9898\u53CD\u9988", + items: [ + { + link: "https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=22ySzj7pKiw&businessType=9&from=246610&biz=ka&mainSourceId=share&subSourceId=others&jumpsource=shorturl#/pc", + text: "\u70ED\u5FC3\u5927\u59D0" + } + ] + } + ]; +} +var search = { + root: { + placeholder: "\u641C\u7D22\u6587\u6863", + translations: { + button: { + buttonAriaLabel: "\u641C\u7D22\u6587\u6863", + buttonText: "\u641C\u7D22\u6587\u6863" + }, + modal: { + errorScreen: { + helpText: "\u4F60\u53EF\u80FD\u9700\u8981\u68C0\u67E5\u4F60\u7684\u7F51\u7EDC\u8FDE\u63A5", + titleText: "\u65E0\u6CD5\u83B7\u53D6\u7ED3\u679C" + }, + footer: { + closeText: "\u5173\u95ED", + navigateText: "\u5207\u6362", + searchByText: "\u641C\u7D22\u63D0\u4F9B\u8005", + selectText: "\u9009\u62E9" + }, + noResultsScreen: { + noResultsText: "\u65E0\u6CD5\u627E\u5230\u76F8\u5173\u7ED3\u679C", + reportMissingResultsLinkText: "\u70B9\u51FB\u53CD\u9988", + reportMissingResultsText: "\u4F60\u8BA4\u4E3A\u8BE5\u67E5\u8BE2\u5E94\u8BE5\u6709\u7ED3\u679C\uFF1F", + suggestedQueryText: "\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u67E5\u8BE2" + }, + searchBox: { + cancelButtonAriaLabel: "\u53D6\u6D88", + cancelButtonText: "\u53D6\u6D88", + resetButtonAriaLabel: "\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6", + resetButtonTitle: "\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6" + }, + startScreen: { + favoriteSearchesTitle: "\u6536\u85CF", + noRecentSearchesText: "\u6CA1\u6709\u641C\u7D22\u5386\u53F2", + recentSearchesTitle: "\u641C\u7D22\u5386\u53F2", + removeFavoriteSearchButtonTitle: "\u4ECE\u6536\u85CF\u4E2D\u79FB\u9664", + removeRecentSearchButtonTitle: "\u4ECE\u641C\u7D22\u5386\u53F2\u4E2D\u79FB\u9664", + saveRecentSearchButtonTitle: "\u4FDD\u5B58\u81F3\u641C\u7D22\u5386\u53F2" + } + } + } + } +}; + +// .vitepress/config/shared.mts +var shared = defineConfig2({ + appearance: "dark", + head: head(), + markdown: { + preConfig(md) { + md.use(demoPreviewPlugin); + md.use(groupIconMdPlugin); + } + }, + pwa: pwa(), + srcDir: "src", + themeConfig: { + i18nRouting: true, + logo: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp", + search: { + options: { + locales: { + ...search + } + }, + provider: "local" + }, + siteTitle: "\u60A6\u7801", + socialLinks: [ + { icon: "github", link: "https://ptdata-gitlab.shiyue.com/sy3570" } + ] + }, + title: "\u60A6\u7801", + vite: { + build: { + chunkSizeWarningLimit: Infinity, + minify: "terser" + }, + css: { + postcss: { + plugins: [ + tailwind(), + postcssIsolateStyles({ includeFiles: [/vp-doc\.css/] }) + ] + }, + preprocessorOptions: { + scss: { + api: "modern" + } + } + }, + json: { + stringify: true + }, + plugins: [ + GitChangelog({ + mapAuthors: [ + { + mapByNameAliases: ["\u738B\u96EA\u5CF0"], + name: "wangxuefeng", + username: "wangxuefeng" + } + ], + repoURL: () => "https://ptdata-gitlab.shiyue.com/workbench/y-code" + }), + GitChangelogMarkdownSection(), + viteArchiverPlugin({ outputDir: ".vitepress" }), + groupIconVitePlugin(), + await viteVxeTableImportsPlugin() + ], + server: { + fs: { + allow: ["../.."] + }, + host: true, + port: 6173 + }, + ssr: { + external: ["@vue/repl"] + } + } +}); +function head() { + return [ + ["meta", { content: "wangxuefeng", name: "author" }], + [ + "meta", + { + content: "vben, vitejs, vite, shacdn-ui, vue", + name: "keywords" + } + ], + ["link", { href: "/favicon.ico", rel: "icon", type: "image/svg+xml" }], + [ + "meta", + { + content: "width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no", + name: "viewport" + } + ], + ["meta", { content: "vben admin docs", name: "keywords" }], + ["link", { href: "/favicon.ico", rel: "icon" }] + // [ + // 'script', + // { + // src: 'https://cdn.tailwindcss.com', + // }, + // ], + ]; +} +function pwa() { + return { + includeManifestIcons: false, + manifest: { + description: "y-code-platform is a low-code management platform based on Vue 3 & vtj.pro ", + icons: [ + { + sizes: "192x192", + src: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-192.png", + type: "image/png" + }, + { + sizes: "512x512", + src: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-512.png", + type: "image/png" + } + ], + id: "/", + name: "y-code-platform Doc", + short_name: "y-code-platform_doc", + theme_color: "#ffffff" + }, + outDir: resolve(process.cwd(), ".vitepress/dist"), + registerType: "autoUpdate", + workbox: { + globPatterns: ["**/*.{css,js,html,svg,png,ico,txt,woff2}"], + maximumFileSizeToCacheInBytes: 5 * 1024 * 1024 + } + }; +} + +// .vitepress/config/index.mts +var config_default = withPwa( + defineConfigWithTheme({ + ...shared, + locales: { + // en: { + // label: 'English', + // lang: 'en', + // link: '/en/', + // ...en, + // }, + root: { + label: "\u7B80\u4F53\u4E2D\u6587", + lang: "zh-CN", + ...zh + } + } + }) +); +export { + config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLnZpdGVwcmVzcy9jb25maWcvaW5kZXgubXRzIiwgIi52aXRlcHJlc3MvY29uZmlnL3NoYXJlZC5tdHMiLCAiLnZpdGVwcmVzcy9jb25maWcvcGx1Z2lucy9kZW1vLXByZXZpZXcudHMiLCAiLnZpdGVwcmVzcy9jb25maWcvemgubXRzIiwgIi4uLy4uL3BhY2thZ2UuanNvbiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHktY29kZVxcXFxhcHBzXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHktY29kZVxcXFxhcHBzXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcXFxcaW5kZXgubXRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy95LWNvZGUvYXBwcy9kb2NzLy52aXRlcHJlc3MvY29uZmlnL2luZGV4Lm10c1wiO2ltcG9ydCB7IHdpdGhQd2EgfSBmcm9tICdAdml0ZS1wd2Evdml0ZXByZXNzJztcbmltcG9ydCB7IGRlZmluZUNvbmZpZ1dpdGhUaGVtZSB9IGZyb20gJ3ZpdGVwcmVzcyc7XG5cbmltcG9ydCB7IHNoYXJlZCB9IGZyb20gJy4vc2hhcmVkLm10cyc7XG5pbXBvcnQgeyB6aCB9IGZyb20gJy4vemgubXRzJztcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFB3YShcbiAgZGVmaW5lQ29uZmlnV2l0aFRoZW1lKHtcbiAgICAuLi5zaGFyZWQsXG4gICAgbG9jYWxlczoge1xuICAgICAgLy8gZW46IHtcbiAgICAgIC8vICAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgIC8vICAgbGFuZzogJ2VuJyxcbiAgICAgIC8vICAgbGluazogJy9lbi8nLFxuICAgICAgLy8gICAuLi5lbixcbiAgICAgIC8vIH0sXG4gICAgICByb290OiB7XG4gICAgICAgIGxhYmVsOiAnXHU3QjgwXHU0RjUzXHU0RTJEXHU2NTg3JyxcbiAgICAgICAgbGFuZzogJ3poLUNOJyxcbiAgICAgICAgLi4uemgsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuKTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxceS1jb2RlXFxcXGFwcHNcXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxceS1jb2RlXFxcXGFwcHNcXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFxzaGFyZWQubXRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy95LWNvZGUvYXBwcy9kb2NzLy52aXRlcHJlc3MvY29uZmlnL3NoYXJlZC5tdHNcIjtpbXBvcnQgdHlwZSB7IFB3YU9wdGlvbnMgfSBmcm9tICdAdml0ZS1wd2Evdml0ZXByZXNzJztcbmltcG9ydCB0eXBlIHsgSGVhZENvbmZpZyB9IGZyb20gJ3ZpdGVwcmVzcyc7XG5cbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQge1xuICB2aXRlQXJjaGl2ZXJQbHVnaW4sXG4gIHZpdGVWeGVUYWJsZUltcG9ydHNQbHVnaW4sXG59IGZyb20gJ0B2YmVuL3ZpdGUtY29uZmlnJztcblxuaW1wb3J0IHtcbiAgR2l0Q2hhbmdlbG9nLFxuICBHaXRDaGFuZ2Vsb2dNYXJrZG93blNlY3Rpb24sXG59IGZyb20gJ0Bub2xlYmFzZS92aXRlcHJlc3MtcGx1Z2luLWdpdC1jaGFuZ2Vsb2cvdml0ZSc7XG5pbXBvcnQgdGFpbHdpbmQgZnJvbSAndGFpbHdpbmRjc3MnO1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBwb3N0Y3NzSXNvbGF0ZVN0eWxlcyB9IGZyb20gJ3ZpdGVwcmVzcyc7XG5pbXBvcnQge1xuICBncm91cEljb25NZFBsdWdpbixcbiAgZ3JvdXBJY29uVml0ZVBsdWdpbixcbn0gZnJvbSAndml0ZXByZXNzLXBsdWdpbi1ncm91cC1pY29ucyc7XG5cbmltcG9ydCB7IGRlbW9QcmV2aWV3UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2RlbW8tcHJldmlldyc7XG5pbXBvcnQgeyBzZWFyY2ggYXMgemhTZWFyY2ggfSBmcm9tICcuL3poLm10cyc7XG5cbmV4cG9ydCBjb25zdCBzaGFyZWQgPSBkZWZpbmVDb25maWcoe1xuICBhcHBlYXJhbmNlOiAnZGFyaycsXG4gIGhlYWQ6IGhlYWQoKSxcbiAgbWFya2Rvd246IHtcbiAgICBwcmVDb25maWcobWQpIHtcbiAgICAgIG1kLnVzZShkZW1vUHJldmlld1BsdWdpbik7XG4gICAgICBtZC51c2UoZ3JvdXBJY29uTWRQbHVnaW4pO1xuICAgIH0sXG4gIH0sXG4gIHB3YTogcHdhKCksXG4gIHNyY0RpcjogJ3NyYycsXG4gIHRoZW1lQ29uZmlnOiB7XG4gICAgaTE4blJvdXRpbmc6IHRydWUsXG4gICAgbG9nbzogJ2h0dHBzOi8vdW5wa2cuY29tL0B2YmVuanMvc3RhdGljLXNvdXJjZUAwLjEuNy9zb3VyY2UvbG9nby12MS53ZWJwJyxcbiAgICBzZWFyY2g6IHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbG9jYWxlczoge1xuICAgICAgICAgIC4uLnpoU2VhcmNoLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb3ZpZGVyOiAnbG9jYWwnLFxuICAgIH0sXG4gICAgc2l0ZVRpdGxlOiAnXHU2MEE2XHU3ODAxJyxcbiAgICBzb2NpYWxMaW5rczogW1xuICAgICAgeyBpY29uOiAnZ2l0aHViJywgbGluazogJ2h0dHBzOi8vcHRkYXRhLWdpdGxhYi5zaGl5dWUuY29tL3N5MzU3MCcgfSxcbiAgICBdLFxuICB9LFxuICB0aXRsZTogJ1x1NjBBNlx1NzgwMScsXG4gIHZpdGU6IHtcbiAgICBidWlsZDoge1xuICAgICAgY2h1bmtTaXplV2FybmluZ0xpbWl0OiBJbmZpbml0eSxcbiAgICAgIG1pbmlmeTogJ3RlcnNlcicsXG4gICAgfSxcbiAgICBjc3M6IHtcbiAgICAgIHBvc3Rjc3M6IHtcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIHRhaWx3aW5kKCksXG4gICAgICAgICAgcG9zdGNzc0lzb2xhdGVTdHlsZXMoeyBpbmNsdWRlRmlsZXM6IFsvdnAtZG9jXFwuY3NzL10gfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgYXBpOiAnbW9kZXJuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBqc29uOiB7XG4gICAgICBzdHJpbmdpZnk6IHRydWUsXG4gICAgfSxcbiAgICBwbHVnaW5zOiBbXG4gICAgICBHaXRDaGFuZ2Vsb2coe1xuICAgICAgICBtYXBBdXRob3JzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWFwQnlOYW1lQWxpYXNlczogWydcdTczOEJcdTk2RUFcdTVDRjAnXSxcbiAgICAgICAgICAgIG5hbWU6ICd3YW5neHVlZmVuZycsXG4gICAgICAgICAgICB1c2VybmFtZTogJ3dhbmd4dWVmZW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICByZXBvVVJMOiAoKSA9PiAnaHR0cHM6Ly9wdGRhdGEtZ2l0bGFiLnNoaXl1ZS5jb20vd29ya2JlbmNoL3ktY29kZScsXG4gICAgICB9KSxcbiAgICAgIEdpdENoYW5nZWxvZ01hcmtkb3duU2VjdGlvbigpLFxuICAgICAgdml0ZUFyY2hpdmVyUGx1Z2luKHsgb3V0cHV0RGlyOiAnLnZpdGVwcmVzcycgfSksXG4gICAgICBncm91cEljb25WaXRlUGx1Z2luKCksXG4gICAgICBhd2FpdCB2aXRlVnhlVGFibGVJbXBvcnRzUGx1Z2luKCksXG4gICAgXSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGZzOiB7XG4gICAgICAgIGFsbG93OiBbJy4uLy4uJ10sXG4gICAgICB9LFxuICAgICAgaG9zdDogdHJ1ZSxcbiAgICAgIHBvcnQ6IDYxNzMsXG4gICAgfSxcblxuICAgIHNzcjoge1xuICAgICAgZXh0ZXJuYWw6IFsnQHZ1ZS9yZXBsJ10sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBoZWFkKCk6IEhlYWRDb25maWdbXSB7XG4gIHJldHVybiBbXG4gICAgWydtZXRhJywgeyBjb250ZW50OiAnd2FuZ3h1ZWZlbmcnLCBuYW1lOiAnYXV0aG9yJyB9XSxcbiAgICBbXG4gICAgICAnbWV0YScsXG4gICAgICB7XG4gICAgICAgIGNvbnRlbnQ6ICd2YmVuLCB2aXRlanMsIHZpdGUsIHNoYWNkbi11aSwgdnVlJyxcbiAgICAgICAgbmFtZTogJ2tleXdvcmRzJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbJ2xpbmsnLCB7IGhyZWY6ICcvZmF2aWNvbi5pY28nLCByZWw6ICdpY29uJywgdHlwZTogJ2ltYWdlL3N2Zyt4bWwnIH1dLFxuICAgIFtcbiAgICAgICdtZXRhJyxcbiAgICAgIHtcbiAgICAgICAgY29udGVudDpcbiAgICAgICAgICAnd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSxtaW5pbXVtLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vJyxcbiAgICAgICAgbmFtZTogJ3ZpZXdwb3J0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbJ21ldGEnLCB7IGNvbnRlbnQ6ICd2YmVuIGFkbWluIGRvY3MnLCBuYW1lOiAna2V5d29yZHMnIH1dLFxuICAgIFsnbGluaycsIHsgaHJlZjogJy9mYXZpY29uLmljbycsIHJlbDogJ2ljb24nIH1dLFxuICAgIC8vIFtcbiAgICAvLyAgICdzY3JpcHQnLFxuICAgIC8vICAge1xuICAgIC8vICAgICBzcmM6ICdodHRwczovL2Nkbi50YWlsd2luZGNzcy5jb20nLFxuICAgIC8vICAgfSxcbiAgICAvLyBdLFxuICBdO1xufVxuXG5mdW5jdGlvbiBwd2EoKTogUHdhT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgaW5jbHVkZU1hbmlmZXN0SWNvbnM6IGZhbHNlLFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ3ktY29kZS1wbGF0Zm9ybSBpcyBhIGxvdy1jb2RlIG1hbmFnZW1lbnQgcGxhdGZvcm0gYmFzZWQgb24gVnVlIDMgJiB2dGoucHJvICcsXG4gICAgICBpY29uczogW1xuICAgICAgICB7XG4gICAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgICAgICBzcmM6ICdodHRwczovL3VucGtnLmNvbS9AdmJlbmpzL3N0YXRpYy1zb3VyY2VAMC4xLjcvc291cmNlL3B3YS1pY29uLTE5Mi5wbmcnLFxuICAgICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2l6ZXM6ICc1MTJ4NTEyJyxcbiAgICAgICAgICBzcmM6ICdodHRwczovL3VucGtnLmNvbS9AdmJlbmpzL3N0YXRpYy1zb3VyY2VAMC4xLjcvc291cmNlL3B3YS1pY29uLTUxMi5wbmcnLFxuICAgICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGlkOiAnLycsXG4gICAgICBuYW1lOiAneS1jb2RlLXBsYXRmb3JtIERvYycsXG4gICAgICBzaG9ydF9uYW1lOiAneS1jb2RlLXBsYXRmb3JtX2RvYycsXG4gICAgICB0aGVtZV9jb2xvcjogJyNmZmZmZmYnLFxuICAgIH0sXG4gICAgb3V0RGlyOiByZXNvbHZlKHByb2Nlc3MuY3dkKCksICcudml0ZXByZXNzL2Rpc3QnKSxcbiAgICByZWdpc3RlclR5cGU6ICdhdXRvVXBkYXRlJyxcbiAgICB3b3JrYm94OiB7XG4gICAgICBnbG9iUGF0dGVybnM6IFsnKiovKi57Y3NzLGpzLGh0bWwsc3ZnLHBuZyxpY28sdHh0LHdvZmYyfSddLFxuICAgICAgbWF4aW11bUZpbGVTaXplVG9DYWNoZUluQnl0ZXM6IDUgKiAxMDI0ICogMTAyNCxcbiAgICB9LFxuICB9O1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx5LWNvZGVcXFxcYXBwc1xcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXHBsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHktY29kZVxcXFxhcHBzXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcXFxccGx1Z2luc1xcXFxkZW1vLXByZXZpZXcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3ktY29kZS9hcHBzL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvcGx1Z2lucy9kZW1vLXByZXZpZXcudHNcIjtpbXBvcnQgdHlwZSB7IE1hcmtkb3duRW52LCBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IGNyeXB0byBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQgeyByZWFkZGlyU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmV4cG9ydCBjb25zdCByYXdQYXRoUmVnZXhwID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9uby1zdXBlci1saW5lYXItYmFja3RyYWNraW5nLCByZWdleHAvc3RyaWN0XG4gIC9eKC4rPyg/OlxcLihbXFxkYS16XSspKT8pKCNbXFx3LV0rKT8oPzogP3soXFxkKyg/OlssLV1cXGQrKSopPyA/KFxcUyspP30pPyA/KD86XFxbKC4rKV0pPyQvO1xuXG5mdW5jdGlvbiByYXdQYXRoVG9Ub2tlbihyYXdQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgW1xuICAgIGZpbGVwYXRoID0gJycsXG4gICAgZXh0ZW5zaW9uID0gJycsXG4gICAgcmVnaW9uID0gJycsXG4gICAgbGluZXMgPSAnJyxcbiAgICBsYW5nID0gJycsXG4gICAgcmF3VGl0bGUgPSAnJyxcbiAgXSA9IChyYXdQYXRoUmVnZXhwLmV4ZWMocmF3UGF0aCkgfHwgW10pLnNsaWNlKDEpO1xuXG4gIGNvbnN0IHRpdGxlID0gcmF3VGl0bGUgfHwgZmlsZXBhdGguc3BsaXQoJy8nKS5wb3AoKSB8fCAnJztcblxuICByZXR1cm4geyBleHRlbnNpb24sIGZpbGVwYXRoLCBsYW5nLCBsaW5lcywgcmVnaW9uLCB0aXRsZSB9O1xufVxuXG5leHBvcnQgY29uc3QgZGVtb1ByZXZpZXdQbHVnaW4gPSAobWQ6IE1hcmtkb3duUmVuZGVyZXIpID0+IHtcbiAgbWQuY29yZS5ydWxlci5hZnRlcignaW5saW5lJywgJ2RlbW8tcHJldmlldycsIChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGluc2VydENvbXBvbmVudEltcG9ydCA9IChpbXBvcnRTdHJpbmc6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBzdGF0ZS50b2tlbnMuZmluZEluZGV4KFxuICAgICAgICAoaSkgPT4gaS50eXBlID09PSAnaHRtbF9ibG9jaycgJiYgaS5jb250ZW50Lm1hdGNoKC88c2NyaXB0IHNldHVwPi9nKSxcbiAgICAgICk7XG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydENvbXBvbmVudCA9IG5ldyBzdGF0ZS5Ub2tlbignaHRtbF9ibG9jaycsICcnLCAwKTtcbiAgICAgICAgaW1wb3J0Q29tcG9uZW50LmNvbnRlbnQgPSBgPHNjcmlwdCBzZXR1cD5cXG4ke2ltcG9ydFN0cmluZ31cXG48L3NjcmlwdD5cXG5gO1xuICAgICAgICBzdGF0ZS50b2tlbnMuc3BsaWNlKDAsIDAsIGltcG9ydENvbXBvbmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdGUudG9rZW5zW2luZGV4XSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS50b2tlbnNbaW5kZXhdLmNvbnRlbnQ7XG4gICAgICAgICAgc3RhdGUudG9rZW5zW2luZGV4XS5jb250ZW50ID0gY29udGVudC5yZXBsYWNlKFxuICAgICAgICAgICAgJzwvc2NyaXB0PicsXG4gICAgICAgICAgICBgJHtpbXBvcnRTdHJpbmd9XFxuPC9zY3JpcHQ+YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXRjaCB0aGUgZGVzaXJlZCBwYXR0ZXJuXG4gICAgY29uc3QgcmVnZXggPSAvPERlbW9QcmV2aWV3W14+XSpcXHNkaXI9XCIoW15cIl0qKVwiL2c7XG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBNYXJrZG93biBjb250ZW50IGFuZCByZXBsYWNlIHRoZSBwYXR0ZXJuXG4gICAgc3RhdGUuc3JjID0gc3RhdGUuc3JjLnJlcGxhY2VBbGwocmVnZXgsIChfbWF0Y2gsIGRpcikgPT4ge1xuICAgICAgY29uc3QgY29tcG9uZW50RGlyID0gam9pbihwcm9jZXNzLmN3ZCgpLCAnc3JjJywgZGlyKS5yZXBsYWNlQWxsKFxuICAgICAgICAnXFxcXCcsXG4gICAgICAgICcvJyxcbiAgICAgICk7XG5cbiAgICAgIGxldCBjaGlsZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgbGV0IGRpckV4aXN0cyA9IHRydWU7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNoaWxkRmlsZXMgPVxuICAgICAgICAgIHJlYWRkaXJTeW5jKGNvbXBvbmVudERpciwge1xuICAgICAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgICAgIHJlY3Vyc2l2ZTogZmFsc2UsXG4gICAgICAgICAgICB3aXRoRmlsZVR5cGVzOiBmYWxzZSxcbiAgICAgICAgICB9KSB8fCBbXTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBkaXJFeGlzdHMgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXJFeGlzdHMpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB1bmlxdWVXb3JkID0gZ2VuZXJhdGVDb250ZW50SGFzaChjb21wb25lbnREaXIpO1xuXG4gICAgICBjb25zdCBDb21wb25lbnROYW1lID0gYERlbW9Db21wb25lbnRfJHt1bmlxdWVXb3JkfWA7XG4gICAgICBpbnNlcnRDb21wb25lbnRJbXBvcnQoXG4gICAgICAgIGBpbXBvcnQgJHtDb21wb25lbnROYW1lfSBmcm9tICcke2NvbXBvbmVudERpcn0vaW5kZXgudnVlJ2AsXG4gICAgICApO1xuICAgICAgY29uc3QgeyBwYXRoOiBfcGF0aCB9ID0gc3RhdGUuZW52IGFzIE1hcmtkb3duRW52O1xuXG4gICAgICBjb25zdCBpbmRleCA9IHN0YXRlLnRva2Vucy5maW5kSW5kZXgoKGkpID0+IGkuY29udGVudC5tYXRjaChyZWdleCkpO1xuXG4gICAgICBpZiAoIXN0YXRlLnRva2Vuc1tpbmRleF0pIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlyc3RTdHJpbmcgPSAnaW5kZXgudnVlJztcbiAgICAgIGNoaWxkRmlsZXMgPSBjaGlsZEZpbGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEgPT09IGZpcnN0U3RyaW5nKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChiID09PSBmaXJzdFN0cmluZykgcmV0dXJuIDE7XG4gICAgICAgIHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYiwgJ2VuJywgeyBzZW5zaXRpdml0eTogJ2Jhc2UnIH0pO1xuICAgICAgfSk7XG4gICAgICBzdGF0ZS50b2tlbnNbaW5kZXhdLmNvbnRlbnQgPVxuICAgICAgICBgPERlbW9QcmV2aWV3IGZpbGVzPVwiJHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY2hpbGRGaWxlcykpfVwiID48JHtDb21wb25lbnROYW1lfS8+XG4gICAgICAgIGA7XG5cbiAgICAgIGNvbnN0IF9kdW1teVRva2VuID0gbmV3IHN0YXRlLlRva2VuKCcnLCAnJywgMCk7XG4gICAgICBjb25zdCB0b2tlbkFycmF5OiBBcnJheTx0eXBlb2YgX2R1bW15VG9rZW4+ID0gW107XG4gICAgICBjaGlsZEZpbGVzLmZvckVhY2goKGZpbGVuYW1lKSA9PiB7XG4gICAgICAgIC8vIGNvbnN0IHNsb3ROYW1lID0gZmlsZW5hbWUucmVwbGFjZShleHRuYW1lKGZpbGVuYW1lKSwgJycpO1xuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlU3RhcnQgPSBuZXcgc3RhdGUuVG9rZW4oJ2h0bWxfaW5saW5lJywgJycsIDApO1xuICAgICAgICB0ZW1wbGF0ZVN0YXJ0LmNvbnRlbnQgPSBgPHRlbXBsYXRlICMke2ZpbGVuYW1lfT5gO1xuICAgICAgICB0b2tlbkFycmF5LnB1c2godGVtcGxhdGVTdGFydCk7XG5cbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gam9pbihjb21wb25lbnREaXIsIGZpbGVuYW1lKTtcblxuICAgICAgICBjb25zdCB7IGV4dGVuc2lvbiwgZmlsZXBhdGgsIGxhbmcsIGxpbmVzLCB0aXRsZSB9ID1cbiAgICAgICAgICByYXdQYXRoVG9Ub2tlbihyZXNvbHZlZFBhdGgpO1xuICAgICAgICAvLyBBZGQgY29kZSB0b2tlbnMgZm9yIGVhY2ggbGluZVxuICAgICAgICBjb25zdCB0b2tlbiA9IG5ldyBzdGF0ZS5Ub2tlbignZmVuY2UnLCAnY29kZScsIDApO1xuICAgICAgICB0b2tlbi5pbmZvID0gYCR7bGFuZyB8fCBleHRlbnNpb259JHtsaW5lcyA/IGB7JHtsaW5lc319YCA6ICcnfSR7XG4gICAgICAgICAgdGl0bGUgPyBgWyR7dGl0bGV9XWAgOiAnJ1xuICAgICAgICB9YDtcblxuICAgICAgICB0b2tlbi5jb250ZW50ID0gYDw8PCAke2ZpbGVwYXRofWA7XG4gICAgICAgICh0b2tlbiBhcyBhbnkpLnNyYyA9IFtyZXNvbHZlZFBhdGhdO1xuICAgICAgICB0b2tlbkFycmF5LnB1c2godG9rZW4pO1xuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlRW5kID0gbmV3IHN0YXRlLlRva2VuKCdodG1sX2lubGluZScsICcnLCAwKTtcbiAgICAgICAgdGVtcGxhdGVFbmQuY29udGVudCA9ICc8L3RlbXBsYXRlPic7XG4gICAgICAgIHRva2VuQXJyYXkucHVzaCh0ZW1wbGF0ZUVuZCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVuZFRhZyA9IG5ldyBzdGF0ZS5Ub2tlbignaHRtbF9pbmxpbmUnLCAnJywgMCk7XG4gICAgICBlbmRUYWcuY29udGVudCA9ICc8L0RlbW9QcmV2aWV3Pic7XG4gICAgICB0b2tlbkFycmF5LnB1c2goZW5kVGFnKTtcblxuICAgICAgc3RhdGUudG9rZW5zLnNwbGljZShpbmRleCArIDEsIDAsIC4uLnRva2VuQXJyYXkpO1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAgIC8vICAgc3RhdGUubWQucmVuZGVyZXIucmVuZGVyKHN0YXRlLnRva2Vucywgc3RhdGU/Lm9wdGlvbnMgPz8gW10sIHN0YXRlLmVudiksXG4gICAgICAvLyApO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29udGVudEhhc2goaW5wdXQ6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIgPSAxMCk6IHN0cmluZyB7XG4gIC8vIFx1NEY3Rlx1NzUyOCBTSEEtMjU2IFx1NzUxRlx1NjIxMFx1NTRDOFx1NUUwQ1x1NTAzQ1xuICBjb25zdCBoYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShpbnB1dCkuZGlnZXN0KCdoZXgnKTtcblxuICAvLyBcdTVDMDZcdTU0QzhcdTVFMENcdTUwM0NcdThGNkNcdTYzNjJcdTRFM0EgQmFzZTM2IFx1N0YxNlx1NzgwMVx1RkYwQ1x1NUU3Nlx1NTNENlx1NjMwN1x1NUI5QVx1OTU3Rlx1NUVBNlx1NzY4NFx1NUI1N1x1N0IyNlx1NEY1Q1x1NEUzQVx1N0VEM1x1Njc5Q1xuICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KGhhc2gsIDE2KS50b1N0cmluZygzNikuc2xpY2UoMCwgbGVuZ3RoKTtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxceS1jb2RlXFxcXGFwcHNcXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxceS1jb2RlXFxcXGFwcHNcXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFx6aC5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3ktY29kZS9hcHBzL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvemgubXRzXCI7aW1wb3J0IHR5cGUgeyBEZWZhdWx0VGhlbWUgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGFja2FnZS5qc29uJztcblxuZXhwb3J0IGNvbnN0IHpoID0gZGVmaW5lQ29uZmlnKHtcbiAgZGVzY3JpcHRpb246ICdcdTYwQTZcdTc4MDEgJiBcdTRGNEVcdTRFRTNcdTc4MDFcdTdCQTFcdTc0MDZcdTdDRkJcdTdFREYnLFxuICBsYW5nOiAnemgtSGFucycsXG4gIHRoZW1lQ29uZmlnOiB7XG4gICAgZGFya01vZGVTd2l0Y2hMYWJlbDogJ1x1NEUzQlx1OTg5OCcsXG4gICAgZGFya01vZGVTd2l0Y2hUaXRsZTogJ1x1NTIwN1x1NjM2Mlx1NTIzMFx1NkRGMVx1ODI3Mlx1NkEyMVx1NUYwRicsXG4gICAgZG9jRm9vdGVyOiB7XG4gICAgICBuZXh0OiAnXHU0RTBCXHU0RTAwXHU5ODc1JyxcbiAgICAgIHByZXY6ICdcdTRFMEFcdTRFMDBcdTk4NzUnLFxuICAgIH0sXG4gICAgLy8gZWRpdExpbms6IHtcbiAgICAvLyAgIHBhdHRlcm46XG4gICAgLy8gICAgICdodHRwczovL2dpdGh1Yi5jb20vdmJlbmpzL3Z1ZS12YmVuLWFkbWluL2VkaXQvbWFpbi9kb2NzL3NyYy86cGF0aCcsXG4gICAgLy8gICB0ZXh0OiAnXHU1NzI4IEdpdEh1YiBcdTRFMEFcdTdGMTZcdThGOTFcdTZCNjRcdTk4NzVcdTk3NjInLFxuICAgIC8vIH0sXG4gICAgLy8gZm9vdGVyOiB7XG4gICAgLy8gICBjb3B5cmlnaHQ6IGBDb3B5cmlnaHQgXHUwMEE5IDIwMjAtJHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9IFZiZW5gLFxuICAgIC8vICAgbWVzc2FnZTogJ1x1NTdGQVx1NEU4RSBNSVQgXHU4QkI4XHU1M0VGXHU1M0QxXHU1RTAzLicsXG4gICAgLy8gfSxcbiAgICAvLyBsYW5nTWVudUxhYmVsOiAnXHU1OTFBXHU4QkVEXHU4QTAwJyxcbiAgICBsYXN0VXBkYXRlZDoge1xuICAgICAgZm9ybWF0T3B0aW9uczoge1xuICAgICAgICBkYXRlU3R5bGU6ICdzaG9ydCcsXG4gICAgICAgIHRpbWVTdHlsZTogJ21lZGl1bScsXG4gICAgICB9LFxuICAgICAgdGV4dDogJ1x1NjcwMFx1NTQwRVx1NjZGNFx1NjVCMFx1NEU4RScsXG4gICAgfSxcbiAgICBsaWdodE1vZGVTd2l0Y2hUaXRsZTogJ1x1NTIwN1x1NjM2Mlx1NTIzMFx1NkQ0NVx1ODI3Mlx1NkEyMVx1NUYwRicsXG4gICAgbmF2OiBuYXYoKSxcblxuICAgIG91dGxpbmU6IHtcbiAgICAgIGxhYmVsOiAnXHU5ODc1XHU5NzYyXHU1QkZDXHU4MjJBJyxcbiAgICB9LFxuICAgIHJldHVyblRvVG9wTGFiZWw6ICdcdTU2REVcdTUyMzBcdTk4NzZcdTkwRTgnLFxuXG4gICAgc2lkZWJhcjoge1xuICAgICAgJy9jb21tZXJjaWFsLyc6IHsgYmFzZTogJy9jb21tZXJjaWFsLycsIGl0ZW1zOiBzaWRlYmFyQ29tbWVyY2lhbCgpIH0sXG4gICAgICAnL2NvbXBvbmVudHMvJzogeyBiYXNlOiAnL2NvbXBvbmVudHMvJywgaXRlbXM6IHNpZGViYXJDb21wb25lbnRzKCkgfSxcbiAgICAgICcvZ3VpZGUvJzogeyBiYXNlOiAnL2d1aWRlLycsIGl0ZW1zOiBzaWRlYmFyR3VpZGUoKSB9LFxuICAgIH0sXG4gICAgc2lkZWJhck1lbnVMYWJlbDogJ1x1ODNEQ1x1NTM1NScsXG4gIH0sXG59KTtcblxuZnVuY3Rpb24gc2lkZWJhckd1aWRlKCk6IERlZmF1bHRUaGVtZS5TaWRlYmFySXRlbVtdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgdGV4dDogJ1x1N0I4MFx1NEVDQicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2ludHJvZHVjdGlvbi9wbGF0Zm9ybScsXG4gICAgICAgICAgdGV4dDogJ1x1NTE3M1x1NEU4RVx1NjBBNlx1NzgwMScsXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGluazogJ2ludHJvZHVjdGlvbi9xdWljay1zdGFydCcsIHRleHQ6ICdcdTVGRUJcdTkwMUZcdTVGMDBcdTU5Q0InIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYXNlOiAnLycsXG4gICAgICAgICAgbGluazogJ2NvbXBvbmVudHMvaW5kZXgnLFxuICAgICAgICAgIHRleHQ6ICdcdTdFQzRcdTRFRjZcdTY1ODdcdTY4NjMnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTU3RkFcdTc4NDAnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9jb25jZXB0JywgdGV4dDogJ1x1NTdGQVx1Nzg0MFx1Njk4Mlx1NUZGNScgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9pY29ucycsIHRleHQ6ICdcdTU2RkVcdTY4MDcnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvc3R5bGVzJywgdGV4dDogJ1x1NjgzN1x1NUYwRicgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnXHU2REYxXHU1MTY1JyxcbiAgICAgIGl0ZW1zOiBbeyBsaW5rOiAnaW4tZGVwdGgvZmVhdHVyZXMnLCB0ZXh0OiAnXHU1RTM4XHU3NTI4XHU1MjlGXHU4MEZEJyB9XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTUxNzZcdTRFRDYnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgLy8geyBsaW5rOiAnb3RoZXIvcHJvamVjdC11cGRhdGUnLCB0ZXh0OiAnXHU5ODc5XHU3NkVFXHU2NkY0XHU2NUIwJyB9LFxuICAgICAgICAvLyB7IGxpbms6ICdvdGhlci9yZW1vdmUtY29kZScsIHRleHQ6ICdcdTc5RkJcdTk2NjRcdTRFRTNcdTc4MDEnIH0sXG4gICAgICAgIC8vIHsgbGluazogJ290aGVyL2ZhcScsIHRleHQ6ICdcdTVFMzhcdTg5QzFcdTk1RUVcdTk4OTgnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIHNpZGViYXJDb21tZXJjaWFsKCk6IERlZmF1bHRUaGVtZS5TaWRlYmFySXRlbVtdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBsaW5rOiAnY29tbXVuaXR5JyxcbiAgICAgIHRleHQ6ICdcdTRFQTRcdTZENDFcdTdGQTQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGluazogJ3RlY2huaWNhbC1zdXBwb3J0JyxcbiAgICAgIHRleHQ6ICdcdTYyODBcdTY3MkZcdTY1MkZcdTYzMDEnLFxuICAgIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIHNpZGViYXJDb21wb25lbnRzKCk6IERlZmF1bHRUaGVtZS5TaWRlYmFySXRlbVtdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0ZXh0OiAnXHU3RUM0XHU0RUY2JyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uJyxcbiAgICAgICAgICB0ZXh0OiAnXHU0RUNCXHU3RUNEJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgdGV4dDogJ1x1NUUwM1x1NUM0MFx1N0VDNFx1NEVGNicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2xheW91dC11aS9wYWdlJyxcbiAgICAgICAgICB0ZXh0OiAnUGFnZSBcdTk4NzVcdTk3NjInLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB0ZXh0OiAnXHU5MDFBXHU3NTI4XHU3RUM0XHU0RUY2JyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tYXBpLWNvbXBvbmVudCcsXG4gICAgICAgICAgdGV4dDogJ0FwaUNvbXBvbmVudCBBcGlcdTdFQzRcdTRFRjZcdTUzMDVcdTg4QzVcdTU2NjgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLW1vZGFsJyxcbiAgICAgICAgICB0ZXh0OiAnTW9kYWwgXHU2QTIxXHU2MDAxXHU2ODQ2JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1kcmF3ZXInLFxuICAgICAgICAgIHRleHQ6ICdEcmF3ZXIgXHU2MkJEXHU1QzQ5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1mb3JtJyxcbiAgICAgICAgICB0ZXh0OiAnRm9ybSBcdTg4NjhcdTUzNTUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLXZ4ZS10YWJsZScsXG4gICAgICAgICAgdGV4dDogJ1Z4ZSBUYWJsZSBcdTg4NjhcdTY4M0MnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLWNvdW50LXRvLWFuaW1hdG9yJyxcbiAgICAgICAgICB0ZXh0OiAnQ291bnRUb0FuaW1hdG9yIFx1NjU3MFx1NUI1N1x1NTJBOFx1NzUzQicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tZWxsaXBzaXMtdGV4dCcsXG4gICAgICAgICAgdGV4dDogJ0VsbGlwc2lzVGV4dCBcdTc3MDFcdTc1NjVcdTY1ODdcdTY3MkMnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBuYXYoKTogRGVmYXVsdFRoZW1lLk5hdkl0ZW1bXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgYWN0aXZlTWF0Y2g6ICdeLyhndWlkZXxjb21wb25lbnRzKS8nLFxuICAgICAgdGV4dDogJ1x1NjU4N1x1Njg2MycsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZlTWF0Y2g6ICdeL2d1aWRlLycsXG4gICAgICAgICAgbGluazogJy9ndWlkZS9pbnRyb2R1Y3Rpb24vcGxhdGZvcm0nLFxuICAgICAgICAgIHRleHQ6ICdcdTRGNEVcdTRFRTNcdTc4MDFcdTdCQTFcdTc0MDZcdTVFNzNcdTUzRjAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZlTWF0Y2g6ICdeL3JlbmRlcmVyLycsXG4gICAgICAgICAgbGluazogJy9yZW5kZXJlci9pbmRleCcsXG4gICAgICAgICAgdGV4dDogJ1x1NkUzMlx1NjdEM1x1NTY2OCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBhY3RpdmVNYXRjaDogJ14vZGVzaWduZXIvJyxcbiAgICAgICAgICBsaW5rOiAnL2Rlc2lnbmVyL2luZGV4JyxcbiAgICAgICAgICB0ZXh0OiAnXHU4QkJFXHU4QkExXHU1NjY4JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2ZU1hdGNoOiAnXi9tYXRlcmlhbHMvJyxcbiAgICAgICAgICBsaW5rOiAnL21hdGVyaWFscy9pbmRleCcsXG4gICAgICAgICAgdGV4dDogJ1x1NzI2OVx1NjU5OScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ1x1NEY0RVx1NEVFM1x1NzgwMVx1N0JBMVx1NzQwNlx1NUU3M1x1NTNGMCcsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ1x1NjBBNlx1NzgwMSAyLjAnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL3ktY29kZS5zaGl5dWUuY29tJyxcbiAgICAgICAgICAgICAgdGV4dDogJ1x1NzUxRlx1NEVBN1x1NzI0OFx1NjcyQycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly95LWNvZGUtcHJlLnNoaXl1ZS5jb20nLFxuICAgICAgICAgICAgICB0ZXh0OiAnXHU5ODg0XHU1M0QxXHU1RTAzXHU3MjQ4XHU2NzJDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL3ktY29kZS5zaGl5dWUuY29tJyxcbiAgICAgICAgICAgICAgdGV4dDogJ1x1NkYxNFx1NzkzQVx1NzI0OFx1NjcyQycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnXHU1MTc2XHU0RUQ2JyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9jdXN0b20tY2hhcnQuc2hpeXVlZ2FtZS5jb20vJyxcbiAgICAgICAgICAgICAgdGV4dDogJ1x1NjBBNlx1NzgwMSAxLjBcdUZGMDhcdTVERjJcdTVFOUZcdTVGMDNcdUZGMENcdTRFMERcdTUxOERcdTY2RjRcdTY1QjBcdTUyOUZcdTgwRkRcdUZGMDknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6IHZlcnNpb24sXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJy4vY2hhbmdlbG9nJyxcbiAgICAgICAgICB0ZXh0OiAnXHU2NkY0XHU2NUIwXHU2NUU1XHU1RkQ3JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdodHRwczovL2RvYy53ZWl4aW4ucXEuY29tL3NtYXJ0c2hlZXQvczNfQWEwQVN3WjBBT0VyMlRiUHVhTVJvQ3ZzMXl6akE/c2NvZGU9QU93QVlnZW9BQWtvVDZWRmEwQWEwQVN3WjBBT0UmdGFiPXE5NzlsaiZ2aWV3SWQ9dnBEVUZzJyxcbiAgICAgICAgICB0ZXh0OiAnXHU2NkY0XHU2NUIwXHU4REVGXHU3RUJGXHU1NkZFJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY2XHUyMDBEXHVEODNEXHVEQzY2IFx1OTVFRVx1OTg5OFx1NTNDRFx1OTk4OCcsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vcXVuLnFxLmNvbS9xcXdlYi9xdW5wcm8vc2hhcmU/X3d2PTMmX3d3dj0xMjgmYXBwQ2hhbm5lbD1zaGFyZSZpbnZpdGVDb2RlPTIyeVN6ajdwS2l3JmJ1c2luZXNzVHlwZT05JmZyb209MjQ2NjEwJmJpej1rYSZtYWluU291cmNlSWQ9c2hhcmUmc3ViU291cmNlSWQ9b3RoZXJzJmp1bXBzb3VyY2U9c2hvcnR1cmwjL3BjJyxcbiAgICAgICAgICB0ZXh0OiAnXHU3MEVEXHU1RkMzXHU1OTI3XHU1OUQwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlYXJjaDogRGVmYXVsdFRoZW1lLkFsZ29saWFTZWFyY2hPcHRpb25zWydsb2NhbGVzJ10gPSB7XG4gIHJvb3Q6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1x1NjQxQ1x1N0QyMlx1NjU4N1x1Njg2MycsXG4gICAgdHJhbnNsYXRpb25zOiB7XG4gICAgICBidXR0b246IHtcbiAgICAgICAgYnV0dG9uQXJpYUxhYmVsOiAnXHU2NDFDXHU3RDIyXHU2NTg3XHU2ODYzJyxcbiAgICAgICAgYnV0dG9uVGV4dDogJ1x1NjQxQ1x1N0QyMlx1NjU4N1x1Njg2MycsXG4gICAgICB9LFxuICAgICAgbW9kYWw6IHtcbiAgICAgICAgZXJyb3JTY3JlZW46IHtcbiAgICAgICAgICBoZWxwVGV4dDogJ1x1NEY2MFx1NTNFRlx1ODBGRFx1OTcwMFx1ODk4MVx1NjhDMFx1NjdFNVx1NEY2MFx1NzY4NFx1N0Y1MVx1N0VEQ1x1OEZERVx1NjNBNScsXG4gICAgICAgICAgdGl0bGVUZXh0OiAnXHU2NUUwXHU2Q0Q1XHU4M0I3XHU1M0Q2XHU3RUQzXHU2NzlDJyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9vdGVyOiB7XG4gICAgICAgICAgY2xvc2VUZXh0OiAnXHU1MTczXHU5NUVEJyxcbiAgICAgICAgICBuYXZpZ2F0ZVRleHQ6ICdcdTUyMDdcdTYzNjInLFxuICAgICAgICAgIHNlYXJjaEJ5VGV4dDogJ1x1NjQxQ1x1N0QyMlx1NjNEMFx1NEY5Qlx1ODAwNScsXG4gICAgICAgICAgc2VsZWN0VGV4dDogJ1x1OTAwOVx1NjJFOScsXG4gICAgICAgIH0sXG4gICAgICAgIG5vUmVzdWx0c1NjcmVlbjoge1xuICAgICAgICAgIG5vUmVzdWx0c1RleHQ6ICdcdTY1RTBcdTZDRDVcdTYyN0VcdTUyMzBcdTc2RjhcdTUxNzNcdTdFRDNcdTY3OUMnLFxuICAgICAgICAgIHJlcG9ydE1pc3NpbmdSZXN1bHRzTGlua1RleHQ6ICdcdTcwQjlcdTUxRkJcdTUzQ0RcdTk5ODgnLFxuICAgICAgICAgIHJlcG9ydE1pc3NpbmdSZXN1bHRzVGV4dDogJ1x1NEY2MFx1OEJBNFx1NEUzQVx1OEJFNVx1NjdFNVx1OEJFMlx1NUU5NFx1OEJFNVx1NjcwOVx1N0VEM1x1Njc5Q1x1RkYxRicsXG4gICAgICAgICAgc3VnZ2VzdGVkUXVlcnlUZXh0OiAnXHU0RjYwXHU1M0VGXHU0RUU1XHU1QzFEXHU4QkQ1XHU2N0U1XHU4QkUyJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoQm94OiB7XG4gICAgICAgICAgY2FuY2VsQnV0dG9uQXJpYUxhYmVsOiAnXHU1M0Q2XHU2RDg4JyxcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAnXHU1M0Q2XHU2RDg4JyxcbiAgICAgICAgICByZXNldEJ1dHRvbkFyaWFMYWJlbDogJ1x1NkUwNVx1OTY2NFx1NjdFNVx1OEJFMlx1Njc2MVx1NEVGNicsXG4gICAgICAgICAgcmVzZXRCdXR0b25UaXRsZTogJ1x1NkUwNVx1OTY2NFx1NjdFNVx1OEJFMlx1Njc2MVx1NEVGNicsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXJ0U2NyZWVuOiB7XG4gICAgICAgICAgZmF2b3JpdGVTZWFyY2hlc1RpdGxlOiAnXHU2NTM2XHU4NUNGJyxcbiAgICAgICAgICBub1JlY2VudFNlYXJjaGVzVGV4dDogJ1x1NkNBMVx1NjcwOVx1NjQxQ1x1N0QyMlx1NTM4Nlx1NTNGMicsXG4gICAgICAgICAgcmVjZW50U2VhcmNoZXNUaXRsZTogJ1x1NjQxQ1x1N0QyMlx1NTM4Nlx1NTNGMicsXG4gICAgICAgICAgcmVtb3ZlRmF2b3JpdGVTZWFyY2hCdXR0b25UaXRsZTogJ1x1NEVDRVx1NjUzNlx1ODVDRlx1NEUyRFx1NzlGQlx1OTY2NCcsXG4gICAgICAgICAgcmVtb3ZlUmVjZW50U2VhcmNoQnV0dG9uVGl0bGU6ICdcdTRFQ0VcdTY0MUNcdTdEMjJcdTUzODZcdTUzRjJcdTRFMkRcdTc5RkJcdTk2NjQnLFxuICAgICAgICAgIHNhdmVSZWNlbnRTZWFyY2hCdXR0b25UaXRsZTogJ1x1NEZERFx1NUI1OFx1ODFGM1x1NjQxQ1x1N0QyMlx1NTM4Nlx1NTNGMicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwieS1jb2RlLW1hdHJpeFwiLFxuICBcInZlcnNpb25cIjogXCIxLjAuMC1hbHBoYS4xXCIsXG4gIFwicHJpdmF0ZVwiOiB0cnVlLFxuICBcImtleXdvcmRzXCI6IFtcbiAgICBcIm1vbm9yZXBvXCIsXG4gICAgXCJ0dXJib3JlcG9cIixcbiAgICBcInktY29kZVwiLFxuICAgIFwibG93LWNvZGVcIixcbiAgICBcIm5vZGUtY29kZVwiXG4gIF0sXG4gIFwiYXV0aG9yXCI6IHtcbiAgICBcIm5hbWVcIjogXCJ3YW5neHVlZmVuZ1wiLFxuICAgIFwiZW1haWxcIjogXCJ3YW5neHVlZmVuZ0BzaGl5dWUuY29tXCJcbiAgfSxcbiAgXCJ0eXBlXCI6IFwibW9kdWxlXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNyb3NzLWVudiBOT0RFX09QVElPTlM9LS1tYXgtb2xkLXNwYWNlLXNpemU9ODE5MiB0dXJibyBidWlsZFwiLFxuICAgIFwiYnVpbGQ6c3RhZ2luZ1wiOiBcImNyb3NzLWVudiBOT0RFX09QVElPTlM9LS1tYXgtb2xkLXNwYWNlLXNpemU9ODE5MiB0dXJibyBidWlsZDpzdGFnaW5nXCIsXG4gICAgXCJidWlsZDpwcm9kXCI6IFwiY3Jvc3MtZW52IE5PREVfT1BUSU9OUz0tLW1heC1vbGQtc3BhY2Utc2l6ZT04MTkyIHR1cmJvIGJ1aWxkOnByb2RcIixcbiAgICBcImJ1aWxkOmFuYWx5emVcIjogXCJ0dXJibyBidWlsZDphbmFseXplXCIsXG4gICAgXCJidWlsZDpkb2NrZXJcIjogXCIuL3NjcmlwdHMvZGVwbG95L2J1aWxkLWxvY2FsLWRvY2tlci1pbWFnZS5zaFwiLFxuICAgIFwiYnVpbGQ6ZG9jc1wiOiBcInBucG0gcnVuIGJ1aWxkIC0tZmlsdGVyPUB2YmVuL2RvY3NcIixcbiAgICBcImJ1aWxkOnJlbmRlcmVyXCI6IFwicG5wbSBydW4gYnVpbGQgLS1maWx0ZXI9QHN5L3ktY29kZS1yZW5kZXJlclwiLFxuICAgIFwiYnVpbGQ6cGxhdGZvcm1cIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1Ac3kveS1jb2RlLXBsYXRmb3JtXCIsXG4gICAgXCJidWlsZDpkZXNpZ25lclwiOiBcInBucG0gcnVuIGJ1aWxkIC0tZmlsdGVyPUBzeS95LWNvZGUtZGVzaWduZXJcIixcbiAgICBcImJ1aWxkOnBsYXlcIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1AdmJlbi9wbGF5Z3JvdW5kXCIsXG4gICAgXCJjaGFuZ2VzZXRcIjogXCJwbnBtIGV4ZWMgY2hhbmdlc2V0XCIsXG4gICAgXCJjaGVja1wiOiBcInBucG0gcnVuIGNoZWNrOmNpcmN1bGFyICYmIHBucG0gcnVuIGNoZWNrOmRlcCAmJiBwbnBtIHJ1biBjaGVjazp0eXBlICYmIHBucG0gY2hlY2s6Y3NwZWxsXCIsXG4gICAgXCJjaGVjazpjaXJjdWxhclwiOiBcInZzaCBjaGVjay1jaXJjdWxhclwiLFxuICAgIFwiY2hlY2s6Y3NwZWxsXCI6IFwiY3NwZWxsIGxpbnQgKiovKi50cyAqKi9SRUFETUUubWQgLmNoYW5nZXNldC8qLm1kIC0tbm8tcHJvZ3Jlc3NcIixcbiAgICBcImNoZWNrOmRlcFwiOiBcInZzaCBjaGVjay1kZXBcIixcbiAgICBcImNoZWNrOnR5cGVcIjogXCJ0dXJibyBydW4gdHlwZWNoZWNrXCIsXG4gICAgXCJjbGVhblwiOiBcIm5vZGUgLi9zY3JpcHRzL2NsZWFuLm1qc1wiLFxuICAgIFwiY2xlYW46ZGlzdFwiOiBcIm5vZGUgLi9zY3JpcHRzL2NsZWFuLWRpc3QubWpzICYmIHBucG0gaVwiLFxuICAgIFwiY29tbWl0XCI6IFwiY3pnXCIsXG4gICAgXCJkZXZcIjogXCJ0dXJiby1ydW4gZGV2XCIsXG4gICAgXCJkZXY6ZG9jc1wiOiBcInBucG0gLUYgQHZiZW4vZG9jcyBydW4gZGV2XCIsXG4gICAgXCJkZXY6cmVuZGVyZXJcIjogXCJwbnBtIC1GIEBzeS95LWNvZGUtcmVuZGVyZXIgcnVuIGRldlwiLFxuICAgIFwiZGV2OnBsYXlcIjogXCJwbnBtIC1GIEB2YmVuL3BsYXlncm91bmQgcnVuIGRldlwiLFxuICAgIFwiZm9ybWF0XCI6IFwidnNoIGxpbnQgLS1mb3JtYXRcIixcbiAgICBcImxpbnRcIjogXCJ2c2ggbGludFwiLFxuICAgIFwicG9zdGluc3RhbGxcIjogXCJwbnBtIC1yIHJ1biBzdHViIC0taWYtcHJlc2VudFwiLFxuICAgIFwicHJlaW5zdGFsbFwiOiBcIm5weCBvbmx5LWFsbG93IHBucG1cIixcbiAgICBcInByZXBhcmVcIjogXCJpcy1jaSB8fCBodXNreVwiLFxuICAgIFwicHJldmlld1wiOiBcInR1cmJvLXJ1biBwcmV2aWV3XCIsXG4gICAgXCJwdWJsaW50XCI6IFwidnNoIHB1YmxpbnRcIixcbiAgICBcInJlaW5zdGFsbFwiOiBcInBucG0gY2xlYW4gLS1kZWwtbG9jayAmJiBwbnBtIGluc3RhbGwgJiYgcG5wbSBzdG9yZSBwcnVuZVwiLFxuICAgIFwidGVzdDp1bml0XCI6IFwidml0ZXN0IHJ1biAtLWRvbVwiLFxuICAgIFwidGVzdDplMmVcIjogXCJ0dXJibyBydW4gdGVzdDplMmVcIixcbiAgICBcInVwZGF0ZTpkZXBzXCI6IFwibnB4IHRhemUgLXIgLXdcIixcbiAgICBcInZlcnNpb25cIjogXCJwbnBtIGV4ZWMgY2hhbmdlc2V0IHZlcnNpb24gJiYgcG5wbSBpbnN0YWxsIC0tbm8tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgXCJyZXNldFwiOiBcInBucG0gY2xlYW4gJiYgcG5wbSBpbnN0YWxsXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGNoYW5nZXNldHMvY2hhbmdlbG9nLWdpdGh1YlwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAY2hhbmdlc2V0cy9jbGlcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHBsYXl3cmlnaHQvdGVzdFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAdmJlbi9jb21taXRsaW50LWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi9lc2xpbnQtY29uZmlnXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3ByZXR0aWVyLWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi9zdHlsZWxpbnQtY29uZmlnXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3RhaWx3aW5kLWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi90c2NvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi90dXJiby1ydW5cIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdml0ZS1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdnNoXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2aXRlanMvcGx1Z2luLXZ1ZVwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAdml0ZWpzL3BsdWdpbi12dWUtanN4XCI6IFwiY2F0YWxvZzpcIixcbiAgICBcIkB2dWUvdGVzdC11dGlsc1wiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJhdXRvcHJlZml4ZXJcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiY3Jvc3MtZW52XCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImNzcGVsbFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJoYXBweS1kb21cIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiaHVza3lcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiaXMtY2lcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwibGludC1zdGFnZWRcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwicGxheXdyaWdodFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJyaW1yYWZcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidGFpbHdpbmRjc3NcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidHVyYm9cIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ1bmJ1aWxkXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInZpdGVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidml0ZXN0XCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInZ1ZVwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ2dWUtdHNjXCI6IFwiY2F0YWxvZzpcIlxuICB9LFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49MjAuMTAuMFwiLFxuICAgIFwicG5wbVwiOiBcIj49MTAuNi4yXCJcbiAgfSxcbiAgXCJwYWNrYWdlTWFuYWdlclwiOiBcInBucG1AMTAuNi4yXCIsXG4gIFwicG5wbVwiOiB7XG4gICAgXCJwZWVyRGVwZW5kZW5jeVJ1bGVzXCI6IHtcbiAgICAgIFwiYWxsb3dlZFZlcnNpb25zXCI6IHtcbiAgICAgICAgXCJlc2xpbnRcIjogXCIqXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwib3ZlcnJpZGVzXCI6IHtcbiAgICAgIFwiQGFzdC1ncmVwL25hcGlcIjogXCJjYXRhbG9nOlwiLFxuICAgICAgXCJAY3RybC90aW55Y29sb3JcIjogXCJjYXRhbG9nOlwiLFxuICAgICAgXCJjbHN4XCI6IFwiY2F0YWxvZzpcIixcbiAgICAgIFwiZXNidWlsZFwiOiBcIjAuMjQuMFwiLFxuICAgICAgXCJwaW5pYVwiOiBcImNhdGFsb2c6XCIsXG4gICAgICBcInZ1ZVwiOiBcImNhdGFsb2c6XCJcbiAgICB9LFxuICAgIFwibmV2ZXJCdWlsdERlcGVuZGVuY2llc1wiOiBbXG4gICAgICBcImNhbnZhc1wiLFxuICAgICAgXCJub2RlLWd5cFwiXG4gICAgXVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQStXLFNBQVMsZUFBZTtBQUN2WSxTQUFTLDZCQUE2Qjs7O0FDRXRDLFNBQVMsZUFBZTtBQUV4QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsT0FBTyxjQUFjO0FBQ3JCLFNBQVMsZ0JBQUFBLGVBQWMsNEJBQTRCO0FBQ25EO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLOzs7QUNqQlAsT0FBTyxZQUFZO0FBQ25CLFNBQVMsbUJBQW1CO0FBQzVCLFNBQVMsWUFBWTtBQUVkLElBQU07QUFBQTtBQUFBLEVBRVg7QUFBQTtBQUVGLFNBQVMsZUFBZSxTQUFpQjtBQUN2QyxRQUFNO0FBQUEsSUFDSixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsRUFDYixLQUFLLGNBQWMsS0FBSyxPQUFPLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUUvQyxRQUFNLFFBQVEsWUFBWSxTQUFTLE1BQU0sR0FBRyxFQUFFLElBQUksS0FBSztBQUV2RCxTQUFPLEVBQUUsV0FBVyxVQUFVLE1BQU0sT0FBTyxRQUFRLE1BQU07QUFDM0Q7QUFFTyxJQUFNLG9CQUFvQixDQUFDLE9BQXlCO0FBQ3pELEtBQUcsS0FBSyxNQUFNLE1B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TztBQUFBLFFBQ0w7QUFBQSxVQUNFLGFBQWE7QUFBQSxVQUNiLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsUUFDQTtBQUFBLFVBQ0UsYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxhQUFhO0FBQUEsVUFDYixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLGFBQWE7QUFBQSxVQUNiLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sTUFB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QUNBLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFFQSxLQUFLO0FBQUEsTUFDSCxVQUFVLENBQUMsV0FBVztBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFFRCxTQUFTLE9BQXFCO0FBQzVCLFNBQU87QUFBQSxJQUNMLENBQUMsUUFBUSxFQUFFLFNBQVMsZUFBZSxNQUFNLFNBQVMsQ0FBQztBQUFBLElBQ25EO0FBQUEsTUFDRTtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsSUFDRjtBQUFBLElBQ0EsQ0FBQyxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsS0FBSyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFBQSxJQUNyRTtBQUFBLE1BQ0U7QUFBQSxNQUNBO0FBQUEsUUFDRSxTQUNFO0FBQUEsUUFDRixNQUFNO0FBQUEsTUFDUjtBQUFBLElBQ0Y7QUFBQSxJQUNBLENBQUMsUUFBUSxFQUFFLFNBQVMsbUJBQW1CLE1BQU0sV0FBVyxDQUFDO0FBQUEsSUFDekQsQ0FBQyxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsS0FBSyxPQUFPLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9oRDtBQUNGO0FBRUEsU0FBUyxNQUFrQjtBQUN6QixTQUFPO0FBQUEsSUFDTCxzQkFBc0I7QUFBQSxJQUN0QixVQUFVO0FBQUEsTUFDUixhQUNFO0FBQUEsTUFDRixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsUUFDUjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLElBQUk7QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLFlBQVk7QUFBQSxNQUNaLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxRQUFRLFFBQVEsUUFBUSxJQUFJLEdBQUcsaUJBQWlCO0FBQUEsSUFDaEQsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLE1BQ1AsY0FBYyxDQUFDLDBDQUEwQztBQUFBLE1BQ3pELCtCQUErQixJQUFJLE9BQU87QUFBQSxJQUM1QztBQUFBLEVBQ0Y7QUFDRjs7O0FEN0pBLElBQU8saUJBQVE7QUFBQSxFQUNiLHNCQUFzQjtBQUFBLElBQ3BCLEdBQUc7QUFBQSxJQUNILFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU9QLE1BQU07QUFBQSxRQUNKLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQSxRQUNOLEdBQUc7QUFBQSxNQUNMO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJkZWZpbmVDb25maWciLCAiZGVmaW5lQ29uZmlnIl0KfQo= diff --git a/apps/platform/src/router/access.ts b/apps/platform/src/router/access.ts index 59df48b..040b534 100644 --- a/apps/platform/src/router/access.ts +++ b/apps/platform/src/router/access.ts @@ -16,8 +16,6 @@ const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue'); async function generateAccess(options: GenerateMenuAndRoutesOptions) { const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue'); - console.log('pageMap', pageMap); - const layoutMap: ComponentRecordType = { BasicLayout, IFrameView, diff --git a/apps/platform/src/router/guard.ts b/apps/platform/src/router/guard.ts index 78b3601..41391ed 100644 --- a/apps/platform/src/router/guard.ts +++ b/apps/platform/src/router/guard.ts @@ -95,7 +95,6 @@ function setupAccessGuard(router: Router) { // 当前登录用户拥有的角色标识列表 // const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); const userInfo = userStore.userInfo; - console.log('userInfo', userInfo); const userRoles = userInfo?.roles ?? []; // 生成菜单和路由 const { accessibleMenus, accessibleRoutes } = await generateAccess({ diff --git a/apps/platform/src/router/routes/modules/acl.ts b/apps/platform/src/router/routes/modules/acl.ts index ec3add5..60ee0dc 100644 --- a/apps/platform/src/router/routes/modules/acl.ts +++ b/apps/platform/src/router/routes/modules/acl.ts @@ -20,6 +20,7 @@ const routes: Array = [ path: 'list', name: `${moduleName}-list`, meta: { + hideInMenu: true, title: '权限列表', keepAlive: true, icon: 'ant-design:list', @@ -30,6 +31,7 @@ const routes: Array = [ accessToken: localStorage.getItem('y-code-access-token'), fileId: '1hsd0407hf', projectId: '4', + degrade: false, }, }, { @@ -37,7 +39,7 @@ const routes: Array = [ name: `${moduleName}-user`, meta: { title: '用户列表', - keepAlive: false, + keepAlive: true, icon: 'ant-design:list', }, component: WujieVueRendererAdapter, @@ -46,6 +48,7 @@ const routes: Array = [ accessToken: localStorage.getItem('y-code-access-token'), fileId: '7pfu5radx', projectId: '4', + degrade: false, }, }, ], diff --git a/apps/platform/src/router/routes/modules/application.ts b/apps/platform/src/router/routes/modules/application.ts index 9a5c901..6e51722 100644 --- a/apps/platform/src/router/routes/modules/application.ts +++ b/apps/platform/src/router/routes/modules/application.ts @@ -34,8 +34,8 @@ const routes: Array = [ projectId: '4', getRouter: () => router, route, + degrade: false, height: '100%', - // degrade: true, }; }, }, diff --git a/apps/platform/src/router/routes/modules/micro.ts b/apps/platform/src/router/routes/modules/micro.ts index 15d1ece..3980c99 100644 --- a/apps/platform/src/router/routes/modules/micro.ts +++ b/apps/platform/src/router/routes/modules/micro.ts @@ -1,8 +1,9 @@ import type { RouteRecordRaw } from 'vue-router'; import RendererAdapter from '@sy/vue3-renderer-adapter'; +import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter'; -import { VITE_DESIGNER_URL, VITE_V1_URL } from '#/constants'; +import { VITE_DESIGNER_URL, VITE_RENDERER_URL, VITE_V1_URL } from '#/constants'; const moduleName = 'micro'; @@ -55,6 +56,23 @@ const routes: RouteRecordRaw[] = [ accessToken: localStorage.getItem('y-code-access-token'), }, }, + { + path: 'test', + name: `Test`, + meta: { + keepAlive: false, + title: '测试', + icon: 'ant-design:delete-outlined', + }, + component: WujieVueRendererAdapter, + props: { + url: `${VITE_RENDERER_URL}`, + fileId: '45ud9h6n3', + projectId: 4, + degrade: false, + name: '45ud9h6n3', + }, + }, ], }, ]; diff --git a/apps/platform/src/router/routes/modules/project.ts b/apps/platform/src/router/routes/modules/project.ts index d28fde9..87ad538 100644 --- a/apps/platform/src/router/routes/modules/project.ts +++ b/apps/platform/src/router/routes/modules/project.ts @@ -43,14 +43,13 @@ const routes: Array = [ path: 'DSLFileList', name: `${moduleName}-DSL-file-list`, meta: { + hideInMenu: true, title: 'dsl 文件列表', keepAlive: false, icon: 'ant-design:file', }, component: WujieVueRendererAdapter, props: (route) => { - console.log('route', route); - console.log('route.query', route.query); return { url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), diff --git a/apps/platform/src/router/routes/modules/static-file.ts b/apps/platform/src/router/routes/modules/static-file.ts index a9e8d13..348f776 100644 --- a/apps/platform/src/router/routes/modules/static-file.ts +++ b/apps/platform/src/router/routes/modules/static-file.ts @@ -28,7 +28,7 @@ const routes: RouteRecordRaw[] = [ fileId: '7pfr394d6', projectId: 4, name: '7pfr394d6', - degrade: true, + degrade: false, getRouter: () => router, }, }, diff --git a/apps/renderer/package.json b/apps/renderer/package.json index 241f51d..b849c71 100644 --- a/apps/renderer/package.json +++ b/apps/renderer/package.json @@ -17,14 +17,15 @@ "@sentry/vue": "^9.5.0", "@sy/web-vitals": "workspace:*", "@tanstack/vue-query": "^5.66.9", - "@vtj/core": "^0.11.1", - "@vtj/icons": "0.11.1", - "@vtj/materials": "^0.11.1", - "@vtj/pro": "^0.11.1", - "@vtj/renderer": "^0.11.1", - "@vtj/ui": "^0.11.1", - "@vtj/utils": "^0.11.1", - "@vtj/web": "^0.11.1", + "@vtj/charts": "^0.11.2", + "@vtj/core": "^0.11.2", + "@vtj/icons": "0.11.2", + "@vtj/materials": "^0.11.2", + "@vtj/pro": "^0.11.2", + "@vtj/renderer": "^0.11.2", + "@vtj/ui": "^0.11.2", + "@vtj/utils": "^0.11.2", + "@vtj/web": "^0.11.2", "axios": "catalog:", "core-js": "^3.40.0", "element-plus": "catalog:", diff --git a/apps/renderer/src/index.ts b/apps/renderer/src/index.ts index 7f90dd2..47c2c8f 100644 --- a/apps/renderer/src/index.ts +++ b/apps/renderer/src/index.ts @@ -2,6 +2,7 @@ import { createApp } from 'vue'; import * as Sentry from '@sentry/vue'; import { VueQueryPlugin } from '@tanstack/vue-query'; +import * as VtjCharts from '@vtj/charts'; import { IconsPlugin } from '@vtj/icons'; import * as VtjUI from '@vtj/ui'; import ElementPlus from 'element-plus'; @@ -22,6 +23,9 @@ Sentry.init({ Object.entries(VtjUI).forEach(([name, component]) => { app.component(name, component); }); +Object.entries(VtjCharts).forEach(([name, component]) => { + app.component(name, component); +}); app .use(ElementPlus) .use(IconsPlugin) diff --git a/apps/renderer/src/service/index.ts b/apps/renderer/src/service/index.ts index 5fd242d..01662eb 100644 --- a/apps/renderer/src/service/index.ts +++ b/apps/renderer/src/service/index.ts @@ -16,7 +16,6 @@ export class LowCodeService extends BaseService { public async init(project: ProjectSchema) { // @ts-ignore 忽略错误 const remoteProject = await getProject(project.id); - console.log('remoteProject', remoteProject); const model = new ProjectModel(remoteProject); const dsl = model.toDsl(); return dsl; diff --git a/packages/@core/ui-kit/layout-ui/src/vben-layout.vue b/packages/@core/ui-kit/layout-ui/src/vben-layout.vue index 0d3ae55..4a8d62c 100644 --- a/packages/@core/ui-kit/layout-ui/src/vben-layout.vue +++ b/packages/@core/ui-kit/layout-ui/src/vben-layout.vue @@ -581,7 +581,7 @@ const idMainContent = ELEMENT_ID_MAIN_CONTENT; :padding-right="contentPaddingRight" :padding-top="contentPaddingTop" :style="contentStyle" - class="transition-[margin-top] duration-200" + class="h-[calc(100vh-7rem)] overflow-auto transition-[margin-top] duration-200" > diff --git a/packages/effects/layouts/src/basic/content/content.vue b/packages/effects/layouts/src/basic/content/content.vue index 438154f..9387398 100644 --- a/packages/effects/layouts/src/basic/content/content.vue +++ b/packages/effects/layouts/src/basic/content/content.vue @@ -10,8 +10,6 @@ import { RouterView } from 'vue-router'; import { preferences, usePreferences } from '@vben/preferences'; import { storeToRefs, useTabbarStore } from '@vben/stores'; -import { IFrameRouterView } from '../../iframe'; - defineOptions({ name: 'LayoutContent' }); const tabbarStore = useTabbarStore(); @@ -97,6 +95,7 @@ function transformComponent( :include="getCachedTabs" > import type { Router, RouteRecordRaw } from 'vue-router'; -import { onBeforeUnmount, onMounted } from 'vue'; +import { computed, onBeforeUnmount, onMounted } from 'vue'; import WujieVue from 'wujie-vue3'; import { version } from '/package.json'; -const props = defineProps<{ - [key: string]: any; - accessToken?: string; - applicationId: number; - degrade?: boolean; - fileId: number | string; - getRouter: () => Router; - name: string; - // 传递给子应用的参数 payload - payload?: Record; - projectId: number; - route: RouteRecordRaw; - sync: boolean; - url: string; -}>(); - -console.log('props', props); +const props = withDefaults( + defineProps<{ + [key: string]: any; + accessToken?: string; + applicationId: number; + degrade?: boolean; + fileId: number | string; + getRouter: () => Router; + name: string; + // 传递给子应用的参数 payload + payload?: Record; + projectId: number; + route: RouteRecordRaw; + sync: boolean; + url: string; + }>(), + { + // 默认 wujie 降级 + degrade: true, + }, +); const { bus } = WujieVue; +const isDegrade = computed(() => props.degrade ?? true); // 生命周期钩子 const beforeLoad = (appWindow: Window) => { console.log(`${props.name} 开始加载`, appWindow); @@ -38,7 +43,7 @@ const afterMount = (appWindow: Window) => { // 事件处理 const handleMessage = (data: any) => { - console.log('收到子应用消息:', data); + console.log(`${props.name} 收到子应用消息:`, data); }; // 准备传递给子应用的数据 @@ -51,17 +56,17 @@ const subAppProps = { // 监听子应用的事件 const handleReady = (data: any) => { - console.log('子应用就绪:', data); + console.log(`${props.name} 子应用就绪:`, data); // 可以在这里执行一些操作 }; const handleRenderSuccess = () => { - console.log('子应用渲染成功'); + console.log(`${props.name} 子应用渲染成功`); // 通知父应用 }; const handleRenderFail = (error: any) => { - console.error('子应用渲染失败:', error); + console.error(`${props.name} 子应用渲染失败:`, error); // 处理错误情况 }; @@ -90,7 +95,7 @@ onBeforeUnmount(() => { :sync="sync" width="100%" height="100%" - :degrade="degrade" + :degrade="isDegrade" :props="subAppProps" :before-load="beforeLoad" :after-mount="afterMount" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdb7df3..cb4ecfa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -626,38 +626,38 @@ importers: apps/designer: dependencies: '@vtj/core': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/designer': - specifier: 0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: 0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': - specifier: 0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: 0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/local': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/materials': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/node': specifier: 0.11.1 version: 0.11.1 '@vtj/pro': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/renderer': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/ui': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/utils': - specifier: 0.11.1 - version: 0.11.1 + specifier: 0.11.2 + version: 0.11.2 '@vtj/web': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) axios: specifier: ^1.8.1 version: 1.8.3(debug@4.4.0) @@ -859,30 +859,33 @@ importers: '@tanstack/vue-query': specifier: ^5.66.9 version: 5.69.0(vue@3.5.13(typescript@5.8.2)) + '@vtj/charts': + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/core': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/icons': - specifier: 0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: 0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/materials': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/pro': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/renderer': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/ui': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) '@vtj/utils': - specifier: ^0.11.1 - version: 0.11.1 + specifier: ^0.11.2 + version: 0.11.2 '@vtj/web': - specifier: ^0.11.1 - version: 0.11.1(vue@3.5.13(typescript@5.8.2)) + specifier: ^0.11.2 + version: 0.11.2(vue@3.5.13(typescript@5.8.2)) axios: specifier: 'catalog:' version: 1.8.3(debug@4.4.0) @@ -1953,6 +1956,9 @@ importers: packages/renderer-adapter/wujie-vue3: dependencies: + licia-es: + specifier: 'catalog:' + version: 1.47.0 postmate: specifier: 'catalog:' version: 1.5.2 @@ -5540,8 +5546,8 @@ packages: '@vtj/base@0.11.1': resolution: {integrity: sha512-OrRUicY5gcturuY/MXNEU6QWPkglrqj/2Eth93n+zJh1szdHlFkFYMFbP9d/PAj3G4pGWcnRX3Kc4kZmGn2W+Q==} - '@vtj/charts@0.11.1': - resolution: {integrity: sha512-RfByHVbangTKCVcIDgWvVPPy4SNEHCAJUmozkcE6ZSSv9wNZAHQhRm0UkTxVOOGARW+uxNwUV+CcJUqF9i/CsA==} + '@vtj/charts@0.11.2': + resolution: {integrity: sha512-SrZ4sIrhq5oX7Zv5CCZDRp7tuQ3Ho6SEYD4QoLwQaZ0EZy/s5+M4N3VfzndgZHYApRAg0zw5+6v6D3DdM4216g==} engines: {node: '>=16.0.0'} '@vtj/cli@0.11.1': @@ -5549,48 +5555,48 @@ packages: engines: {node: '>=20.0.0'} hasBin: true - '@vtj/coder@0.11.1': - resolution: {integrity: sha512-PYcBNAhU2vSlbUox/JghT9HMMwugvPxF1rzdB5yZc7WcpSO76KSg2nh2VyTyaGwsTiT/9PjSt9rhK4BXIvP9DA==} + '@vtj/coder@0.11.2': + resolution: {integrity: sha512-VKUIBuZF2+UnJLbur55nQMRlagb/SCtN+HUaWOlf6gZFc8V4hijABwhlAgRK05CfyncfMHYT2ynJkVJf6f6xRw==} - '@vtj/core@0.11.1': - resolution: {integrity: sha512-Y572NlT/EpM+6SlEo1q5vSu8sNI3wR1zeAAtuLf+LWd9cHZXs7KAGp34XsnEVY1dHb5gReL5F2GxCzM25avZhw==} + '@vtj/core@0.11.2': + resolution: {integrity: sha512-B7DW37aCTKLxI41+OnBu8ukoHnbiKoiNwG+Nqsl7o4Wm0WLaC7e2sh4GEQN6/gG6jZpm2xt6CZpPreWwQLZODg==} - '@vtj/designer@0.11.1': - resolution: {integrity: sha512-rjhma9WAZvbBhvHjlFV6nr6dAKf8W5nu+wh2dcUtYXRKIntELa6ez/Brw/PQzfSjb7t+yAunHJU8wpSr5jkJrA==} + '@vtj/designer@0.11.2': + resolution: {integrity: sha512-N2E29bvHw1N9ldqv9I0RbmnlvZ6QERWhxKuc5rAwBNGV8D4u+6lEZRi+lR5eA+0SzYCMkIkXSiaSQtyKu+NMzQ==} - '@vtj/icons@0.11.1': - resolution: {integrity: sha512-gX0UCEdDDICMGN+b1AEVoQcQcoU41R3Zr/2atNage1x//QmNVMLdEX8M1iSrvnOEIJuvJJw+H8bRG1jK1srcyg==} + '@vtj/icons@0.11.2': + resolution: {integrity: sha512-pZcNLcc+1GfEtV9NbSJf8nJKy2kq8Ry5bZ0lTAGMKXukbvHPpuAUD2xYDqsDn2uspAMlhOpaiA/2yEeZq22tcQ==} - '@vtj/local@0.11.1': - resolution: {integrity: sha512-4kbQ119uXW6mp8Zt6qmgZ2SEHCkFyVFWecbZIWm9C71W8zChRvCnGK1O70cc1FKtr+Jc0lwtsIQQp+w09wVWCQ==} + '@vtj/local@0.11.2': + resolution: {integrity: sha512-r9+eOpWBPmb/hIcN5N6grdq46qzMbfcujApnYDEYVhKVWOr6Rx1aJFn7po99wzJ9QdqMhJo0hJj25qkt2yuXLw==} - '@vtj/materials@0.11.1': - resolution: {integrity: sha512-9u1VM1H4NwAzvuD/mAx7jTQxT/tk7/Nh+BQQ98N8BJZIbfhH49RrTT2s8RxuM1AQm+ToNaxjoqSs9uOiyB7nUw==} + '@vtj/materials@0.11.2': + resolution: {integrity: sha512-EZzLQY+8E8JBqiK1qHhT3sc4nye77KaojuvLZhlrLz7ViQB2xy75+w/b93mOAZgj0kDV7E/v2AcIsQhlmD2tuA==} '@vtj/node@0.11.1': resolution: {integrity: sha512-PfIs7Bja6o2o/2R+15RuGSnpNLLiKZC+fJH1sJuVOXVjjkpakpwsUc0tDjzT5VoLZk52hQ7QQyzJFToPWT6NLg==} - '@vtj/parser@0.11.1': - resolution: {integrity: sha512-d/5izIH5/9V1dC0+WrpUg8Tyg1sla9Ej2veCCDyXpM2Gt6ONON+OBlIh8wRsTUkqRVSiic8WXOoyP3ldNcsZpw==} + '@vtj/parser@0.11.2': + resolution: {integrity: sha512-/jdSA//o93Nx1Of+Wgz0F73gFYNmVzV4JF6rYFpVk4aHDLxRGNPJGd2WNCuDmkYAmUEJuwAEB7xq7zTkXRE9ow==} - '@vtj/pro@0.11.1': - resolution: {integrity: sha512-DKkdBj/QzSoLldzwXvdIjZCk2ugMGv7VEtz4qfcrBBVgc2luqXi8tSNNxaFVbv5UZJVQjEC2kAICmBw6oE4AYQ==} + '@vtj/pro@0.11.2': + resolution: {integrity: sha512-axQmWtRh57HJDcymFyd+JDOnjFxZzGba2sBhJ9t0YII660c8f0fFeyrD4OEj/FJcwKeVEjSHkLQ/775QEJ1rhA==} - '@vtj/renderer@0.11.1': - resolution: {integrity: sha512-weKzc4E7OqiU+MuTzJQJC/+7yNvbUwYJ5Ew/TshuP9OxzPo59gMQTdau3aez2qQNUj/6qDl+Ps4xIC7hKyCDkw==} + '@vtj/renderer@0.11.2': + resolution: {integrity: sha512-ReBRw1p8svILr1C/VupSP2TQBx8dJD4sObFzT4f0Y9IDsqfBVJ5TdOKckpIzEHCwapDEXIZQvlILO3/Si5zMMQ==} - '@vtj/ui@0.11.1': - resolution: {integrity: sha512-HZ1GC5LzykWtLJ3vkz4dsO7bUWe3JnEoI5FhrLAlpKKWaM1IhIO6VI78R9a7WdVs42CMhbwV5DLpntP+1aG1vg==} + '@vtj/ui@0.11.2': + resolution: {integrity: sha512-MPnKfsiKOxrhn89ECrxjIvRKfYIHTbLzyD2/XAG4F3VIwaXsy5slGDZjkn8rZcyiJZb7gAMQ1d3wsulrbTxp1g==} engines: {node: '>=16.0.0'} - '@vtj/uni@0.11.1': - resolution: {integrity: sha512-BS+iuR3B1lg6RBpOGBJmN4Mlb4Afym0VILwxgxaBmfco4QM9tVI9s3CV/Z5EDH78iIoG6XU7pZ7/1FPnyxm2FQ==} + '@vtj/uni@0.11.2': + resolution: {integrity: sha512-e5lDUoLsMF1NTZpcrTX4EUQmgyJrk/hpCRdSR2Lzls+V1T2VLrEuZl7YAWbuHE1pgOdxnd+KnpHUZynpVvPviQ==} - '@vtj/utils@0.11.1': - resolution: {integrity: sha512-wAXBp/UF6atLk5wll0A4UVQpSM1qt8Raqk04wDP5DKRG+Lbok1wkmOGvdfHsHh7oIr1QqufQx/lrfRRN46e8qQ==} + '@vtj/utils@0.11.2': + resolution: {integrity: sha512-4+0X4d/c9tv0H4EHVXWCw2pM26N9zufheHJz/Z+b4nT0B0fpqNtrnMK/RpjSakhu2OKXjh/++pJUgSwLGEdqdw==} - '@vtj/web@0.11.1': - resolution: {integrity: sha512-ioC69Oc+ChBinpDpaDB3no/qQXcbM9vCaJ5l2/lq/utVkyLjboEa6gw2U6L7L/dDNClt9mh9nVUw5I+GSF+C5g==} + '@vtj/web@0.11.2': + resolution: {integrity: sha512-twgZiYQ5iQ+c/qTQy0byinxW4ESYlxGHFABFLRUVkHdgvv4cn6A0QlskEajnO8+JGGlDE0u0ZxPTuYVTci8tGQ==} '@vue/babel-helper-vue-transform-on@1.4.0': resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} @@ -15521,7 +15527,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.13 - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@grpc/proto-loader@0.7.13': dependencies: @@ -16820,15 +16826,15 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/css-font-loading-module@0.0.7': {} @@ -16848,7 +16854,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/hast@3.0.4': dependencies: @@ -16860,13 +16866,13 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/linkify-it@5.0.0': {} @@ -16944,12 +16950,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.24 + '@types/node': 22.13.10 '@types/send': 0.17.4 '@types/sortablejs@1.15.8': {} @@ -17413,10 +17419,10 @@ snapshots: '@types/numeral': 2.0.5 reflect-metadata: 0.2.2 - '@vtj/charts@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/charts@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/utils': 0.11.1 + '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/utils': 0.11.2 '@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2)) echarts: 5.6.0 transitivePeerDependencies: @@ -17544,24 +17550,24 @@ snapshots: - vue - yaml - '@vtj/coder@0.11.1': + '@vtj/coder@0.11.2': dependencies: '@vtj/base': 0.11.1 - '@vtj/core': 0.11.1 + '@vtj/core': 0.11.2 prettier: 3.5.3 - '@vtj/core@0.11.1': + '@vtj/core@0.11.2': dependencies: '@vtj/base': 0.11.1 - '@vtj/designer@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/designer@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/core': 0.11.1 - '@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/renderer': 0.11.1 - '@vtj/ui': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/uni': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/utils': 0.11.1 + '@vtj/core': 0.11.2 + '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/renderer': 0.11.2 + '@vtj/ui': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/uni': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/utils': 0.11.2 html2canvas: 1.4.1 mockjs: 1.1.0 monaco-editor: 0.52.2 @@ -17569,24 +17575,24 @@ snapshots: - '@vue/composition-api' - vue - '@vtj/icons@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/icons@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: '@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.8.2)) transitivePeerDependencies: - vue - '@vtj/local@0.11.1': + '@vtj/local@0.11.2': dependencies: - '@vtj/coder': 0.11.1 - '@vtj/core': 0.11.1 + '@vtj/coder': 0.11.2 + '@vtj/core': 0.11.2 '@vtj/node': 0.11.1 - '@vtj/parser': 0.11.1 + '@vtj/parser': 0.11.2 formidable: 3.5.2 transitivePeerDependencies: - debug - supports-color - '@vtj/materials@0.11.1': {} + '@vtj/materials@0.11.2': {} '@vtj/node@0.11.1': dependencies: @@ -17597,42 +17603,42 @@ snapshots: transitivePeerDependencies: - debug - '@vtj/parser@0.11.1': + '@vtj/parser@0.11.2': dependencies: '@babel/generator': 7.26.10 '@babel/parser': 7.26.10 '@babel/traverse': 7.26.10 '@vtj/base': 0.11.1 - '@vtj/coder': 0.11.1 - '@vtj/core': 0.11.1 + '@vtj/coder': 0.11.2 + '@vtj/core': 0.11.2 '@vue/compiler-dom': 3.5.13 '@vue/compiler-sfc': 3.5.13 transitivePeerDependencies: - supports-color - '@vtj/pro@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/pro@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/core': 0.11.1 - '@vtj/designer': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/local': 0.11.1 - '@vtj/materials': 0.11.1 - '@vtj/renderer': 0.11.1 - '@vtj/uni': 0.11.1(vue@3.5.13(typescript@5.8.2)) + '@vtj/core': 0.11.2 + '@vtj/designer': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/local': 0.11.2 + '@vtj/materials': 0.11.2 + '@vtj/renderer': 0.11.2 + '@vtj/uni': 0.11.2(vue@3.5.13(typescript@5.8.2)) transitivePeerDependencies: - '@vue/composition-api' - debug - supports-color - vue - '@vtj/renderer@0.11.1': + '@vtj/renderer@0.11.2': dependencies: - '@vtj/core': 0.11.1 - '@vtj/utils': 0.11.1 + '@vtj/core': 0.11.2 + '@vtj/utils': 0.11.2 - '@vtj/ui@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/ui@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/utils': 0.11.1 + '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/utils': 0.11.2 '@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2)) element-plus: 2.9.6(vue@3.5.13(typescript@5.8.2)) sortablejs: 1.15.6 @@ -17642,27 +17648,27 @@ snapshots: - '@vue/composition-api' - vue - '@vtj/uni@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/uni@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/core': 0.11.1 - '@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/renderer': 0.11.1 - '@vtj/utils': 0.11.1 + '@vtj/core': 0.11.2 + '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/renderer': 0.11.2 + '@vtj/utils': 0.11.2 transitivePeerDependencies: - vue - '@vtj/utils@0.11.1': + '@vtj/utils@0.11.2': dependencies: '@vtj/base': 0.11.1 - '@vtj/web@0.11.1(vue@3.5.13(typescript@5.8.2))': + '@vtj/web@0.11.2(vue@3.5.13(typescript@5.8.2))': dependencies: - '@vtj/charts': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/core': 0.11.1 - '@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/renderer': 0.11.1 - '@vtj/ui': 0.11.1(vue@3.5.13(typescript@5.8.2)) - '@vtj/utils': 0.11.1 + '@vtj/charts': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/core': 0.11.2 + '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/renderer': 0.11.2 + '@vtj/ui': 0.11.2(vue@3.5.13(typescript@5.8.2)) + '@vtj/utils': 0.11.2 core-js: 3.41.0 regenerator-runtime: 0.14.1 transitivePeerDependencies: @@ -23415,7 +23421,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.24 + '@types/node': 22.13.10 long: 5.3.1 proxy-from-env@1.1.0: {}