// vite.config.mjs import { defineConfig } from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/vite/dist/node/index.js"; import vue from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/@vitejs/plugin-vue/dist/index.mjs"; import { visualizer } from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/rollup-plugin-visualizer/dist/plugin/index.js"; import viteCompression from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/vite-plugin-compression/dist/index.mjs"; import viteImagemin from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/vite-plugin-imagemin/dist/index.mjs"; import AutoImport from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/unplugin-auto-import/dist/vite.js"; import Components from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/unplugin-vue-components/dist/vite.js"; import { ArcoResolver } from "file:///D:/hyWorkSpace/pro/%E5%A4%A7%E6%A8%A1%E5%9E%8B/smartai2dian0/node_modules/unplugin-vue-components/dist/resolvers.js"; // scripts/vite-conf.js var config_compression = { verbose: true, // 是否在控制台中输出压缩结果 disable: false, threshold: 10240, // 如果体积大于阈值,将被压缩,单位为b,体积过小时请不要压缩,以免适得其反 algorithm: "gzip", // 压缩算法,可选['gzip',' brotliccompress ','deflate ','deflateRaw'] ext: ".gz", deleteOriginFile: false // 源文件压缩后是否删除 }; var config_imagemin = { gifsicle: { optimizationLevel: 7, interlaced: false }, optipng: { optimizationLevel: 7 }, mozjpeg: { quality: 20 }, pngquant: { quality: [0.8, 0.9], speed: 4 }, svgo: { plugins: [ { name: "removeViewBox" }, { name: "removeEmptyAttrs", active: false } ] } }; // vite.config.mjs var vite_config_default = defineConfig(({ mode }) => { return { /** * 项目根目录 * @see https://cn.vite.dev/config/shared-options.html#root */ root: "./src", /** * 静态资源目录,相对于 src/index.html 文件 * @see https://cn.vite.dev/config/shared-options.html#publicdir */ publicDir: "../public", server: { port: 5173, host: "0.0.0.0", // IP配置,支持从IP启动 proxy: { "/api/": { // target: 'http://smartai.com:8401', // target: 'http://192.168.20.119:9301', target: "http://192.168.20.116:28004", // target: 'http://smartai.com:8164', changeOrigin: true, secure: false, ws: true, cors: true, rewrite: (path) => path.replace(/^\/proxy_url/, "") }, "/dify": { // target: 'http://192.168.20.119:28003/', target: "http://47.96.40.148:8163", changeOrigin: true, secure: false, ws: true, rewrite: (path) => path.replace(/^\/dify/, "") }, "/rgflow": { // target: 'http://192.168.20.119:11080', // target: 'http://smartai.com:8294/', //119 rag // target: 'http://192.168.20.116:28002/', target: "http://47.96.40.148:8162/", changeOrigin: true, secure: false, ws: true, rewrite: (path) => path.replace(/^\/rgflow/, "") } } }, build: { /** * 构建输出目录,相对于 src/index.html 文件 * @see https://cn.vite.dev/config/build-options.html#build-outdir */ outDir: "../dist", emptyOutDir: true, rollupOptions: { output: { manualChunks: { "vue-vendor": ["vue", "vue-router", "pinia"] } } }, terserOptions: { output: { // 去掉注释内容 comments: true } } }, plugins: [ vue(), // /** // * @see https://devtools.vuejs.org/guide/vite-plugin // */ // vueDevTools({ // launchEditor: 'code' // }), visualizer({ open: false }), viteCompression(config_compression), viteImagemin(config_imagemin), /** * 按需加载 * @see https://arco.design/vue/docs/start#%E6%8C%89%E9%9C%80%E5%8A%A0%E8%BD%BD%EF%BC%88%E6%A8%A1%E6%9D%BF%EF%BC%89 */ AutoImport({ resolvers: [ArcoResolver()] }), Components({ resolvers: [ ArcoResolver({ sideEffect: true }) ] }) ] }; }); export { vite_config_default as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcubWpzIiwgInNjcmlwdHMvdml0ZS1jb25mLmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcaHlXb3JrU3BhY2VcXFxccHJvXFxcXFx1NTkyN1x1NkEyMVx1NTc4QlxcXFxzbWFydGFpMmRpYW4wXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxoeVdvcmtTcGFjZVxcXFxwcm9cXFxcXHU1OTI3XHU2QTIxXHU1NzhCXFxcXHNtYXJ0YWkyZGlhbjBcXFxcdml0ZS5jb25maWcubWpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9oeVdvcmtTcGFjZS9wcm8vJUU1JUE0JUE3JUU2JUE4JUExJUU1JTlFJThCL3NtYXJ0YWkyZGlhbjAvdml0ZS5jb25maWcubWpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSc7XG5cbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcbi8vIGltcG9ydCB2dWVEZXZUb29scyBmcm9tICd2aXRlLXBsdWdpbi12dWUtZGV2dG9vbHMnO1xuaW1wb3J0IHsgdmlzdWFsaXplciB9IGZyb20gJ3JvbGx1cC1wbHVnaW4tdmlzdWFsaXplcic7XG5pbXBvcnQgdml0ZUNvbXByZXNzaW9uIGZyb20gJ3ZpdGUtcGx1Z2luLWNvbXByZXNzaW9uJztcbmltcG9ydCB2aXRlSW1hZ2VtaW4gZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuXG4vKipcbiAqIFx1NjMwOVx1OTcwMFx1NTJBMFx1OEY3RFxuICogQHNlZSBodHRwczovL2FyY28uZGVzaWduL3Z1ZS9kb2NzL3N0YXJ0IyVFNiU4QyU4OSVFOSU5QyU4MCVFNSU4QSVBMCVFOCVCRCVCRCVFRiVCQyU4OCVFNiVBOCVBMSVFNiU5RCVCRiVFRiVCQyU4OVxuICovXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJztcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnO1xuaW1wb3J0IHsgQXJjb1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJztcblxuaW1wb3J0IHsgY29uZmlnX2NvbXByZXNzaW9uLCBjb25maWdfaW1hZ2VtaW4gfSBmcm9tICcuL3NjcmlwdHMvdml0ZS1jb25mJztcblxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBtb2RlIH0pID0+IHtcbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBcdTk4NzlcdTc2RUVcdTY4MzlcdTc2RUVcdTVGNTVcbiAgICAgKiBAc2VlIGh0dHBzOi8vY24udml0ZS5kZXYvY29uZmlnL3NoYXJlZC1vcHRpb25zLmh0bWwjcm9vdFxuICAgICAqL1xuICAgIHJvb3Q6ICcuL3NyYycsXG4gICAgLyoqXG4gICAgICogXHU5NzU5XHU2MDAxXHU4RDQ0XHU2RTkwXHU3NkVFXHU1RjU1XHVGRjBDXHU3NkY4XHU1QkY5XHU0RThFIHNyYy9pbmRleC5odG1sIFx1NjU4N1x1NEVGNlxuICAgICAqIEBzZWUgaHR0cHM6Ly9jbi52aXRlLmRldi9jb25maWcvc2hhcmVkLW9wdGlvbnMuaHRtbCNwdWJsaWNkaXJcbiAgICAgKi9cbiAgICBwdWJsaWNEaXI6ICcuLi9wdWJsaWMnLFxuICAgIHNlcnZlcjoge1xuICAgICAgcG9ydDogNTE3MyxcbiAgICAgIGhvc3Q6ICcwLjAuMC4wJywgLy8gSVBcdTkxNERcdTdGNkVcdUZGMENcdTY1MkZcdTYzMDFcdTRFQ0VJUFx1NTQyRlx1NTJBOFxuICAgICAgcHJveHk6IHtcbiAgICAgICAgJy9hcGkvJzoge1xuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly9zbWFydGFpLmNvbTo4NDAxJyxcblxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly8xOTIuMTY4LjIwLjExOTo5MzAxJyxcbiAgICAgICAgICB0YXJnZXQ6ICdodHRwOi8vMTkyLjE2OC4yMC4xMTY6MjgwMDQnLFxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly9zbWFydGFpLmNvbTo4MTY0JyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgc2VjdXJlOiBmYWxzZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICBjb3JzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UoL15cXC9wcm94eV91cmwvLCAnJylcbiAgICAgICAgfSxcblxuICAgICAgICAnL2RpZnknOiB7XG4gICAgICAgICAgLy8gdGFyZ2V0OiAnaHR0cDovLzE5Mi4xNjguMjAuMTE5OjI4MDAzLycsXG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovLzQ3Ljk2LjQwLjE0ODo4MTYzJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgc2VjdXJlOiBmYWxzZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiAocGF0aCkgPT4gcGF0aC5yZXBsYWNlKC9eXFwvZGlmeS8sICcnKVxuICAgICAgICB9LFxuICAgICAgICAnL3JnZmxvdyc6IHtcbiAgICAgICAgICAvLyB0YXJnZXQ6ICdodHRwOi8vMTkyLjE2OC4yMC4xMTk6MTEwODAnLFxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly9zbWFydGFpLmNvbTo4Mjk0LycsIC8vMTE5IHJhZ1xuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly8xOTIuMTY4LjIwLjExNjoyODAwMi8nLFxuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly80Ny45Ni40MC4xNDg6ODE2Mi8nLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICBzZWN1cmU6IGZhbHNlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UoL15cXC9yZ2Zsb3cvLCAnJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIC8qKlxuICAgICAgICogXHU2Nzg0XHU1RUZBXHU4RjkzXHU1MUZBXHU3NkVFXHU1RjU1XHVGRjBDXHU3NkY4XHU1QkY5XHU0RThFIHNyYy9pbmRleC5odG1sIFx1NjU4N1x1NEVGNlxuICAgICAgICogQHNlZSBodHRwczovL2NuLnZpdGUuZGV2L2NvbmZpZy9idWlsZC1vcHRpb25zLmh0bWwjYnVpbGQtb3V0ZGlyXG4gICAgICAgKi9cbiAgICAgIG91dERpcjogJy4uL2Rpc3QnLFxuXG4gICAgICBlbXB0eU91dERpcjogdHJ1ZSxcbiAgICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgbWFudWFsQ2h1bmtzOiB7XG4gICAgICAgICAgICAndnVlLXZlbmRvcic6IFsndnVlJywgJ3Z1ZS1yb3V0ZXInLCAncGluaWEnXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRlcnNlck9wdGlvbnM6IHtcbiAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgLy8gXHU1M0JCXHU2Mzg5XHU2Q0U4XHU5MUNBXHU1MTg1XHU1QkI5XG4gICAgICAgICAgY29tbWVudHM6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgcGx1Z2luczogW1xuICAgICAgdnVlKCksXG4gICAgICAvLyAvKipcbiAgICAgIC8vICAqIEBzZWUgaHR0cHM6Ly9kZXZ0b29scy52dWVqcy5vcmcvZ3VpZGUvdml0ZS1wbHVnaW5cbiAgICAgIC8vICAqL1xuICAgICAgLy8gdnVlRGV2VG9vbHMoe1xuICAgICAgLy8gICBsYXVuY2hFZGl0b3I6ICdjb2RlJ1xuICAgICAgLy8gfSksXG4gICAgICB2aXN1YWxpemVyKHsgb3BlbjogZmFsc2UgfSksXG4gICAgICB2aXRlQ29tcHJlc3Npb24oY29uZmlnX2NvbXByZXNzaW9uKSxcbiAgICAgIHZpdGVJbWFnZW1pbihjb25maWdfaW1hZ2VtaW4pLFxuXG4gICAgICAvKipcbiAgICAgICAqIFx1NjMwOVx1OTcwMFx1NTJBMFx1OEY3RFxuICAgICAgICogQHNlZSBodHRwczovL2FyY28uZGVzaWduL3Z1ZS9kb2NzL3N0YXJ0IyVFNiU4QyU4OSVFOSU5QyU4MCVFNSU4QSVBMCVFOCVCRCVCRCVFRiVCQyU4OCVFNiVBOCVBMSVFNiU5RCVCRiVFRiVCQyU4OVxuICAgICAgICovXG4gICAgICBBdXRvSW1wb3J0KHtcbiAgICAgICAgcmVzb2x2ZXJzOiBbQXJjb1Jlc29sdmVyKCldXG4gICAgICB9KSxcbiAgICAgIENvbXBvbmVudHMoe1xuICAgICAgICByZXNvbHZlcnM6IFtcbiAgICAgICAgICBBcmNvUmVzb2x2ZXIoe1xuICAgICAgICAgICAgc2lkZUVmZmVjdDogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgXVxuICB9O1xufSk7XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXGh5V29ya1NwYWNlXFxcXHByb1xcXFxcdTU5MjdcdTZBMjFcdTU3OEJcXFxcc21hcnRhaTJkaWFuMFxcXFxzY3JpcHRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxoeVdvcmtTcGFjZVxcXFxwcm9cXFxcXHU1OTI3XHU2QTIxXHU1NzhCXFxcXHNtYXJ0YWkyZGlhbjBcXFxcc2NyaXB0c1xcXFx2aXRlLWNvbmYuanNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L2h5V29ya1NwYWNlL3Byby8lRTUlQTQlQTclRTYlQTglQTElRTUlOUUlOEIvc21hcnRhaTJkaWFuMC9zY3JpcHRzL3ZpdGUtY29uZi5qc1wiOy8qKlxyXG4gKiBcdThENDRcdTZFOTBcdTUzOEJcdTdGMjlcdTkxNERcdTdGNkVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjb25maWdfY29tcHJlc3Npb24gPSB7XHJcbiAgdmVyYm9zZTogdHJ1ZSwgLy8gXHU2NjJGXHU1NDI2XHU1NzI4XHU2M0E3XHU1MjM2XHU1M0YwXHU0RTJEXHU4RjkzXHU1MUZBXHU1MzhCXHU3RjI5XHU3RUQzXHU2NzlDXHJcbiAgZGlzYWJsZTogZmFsc2UsXHJcbiAgdGhyZXNob2xkOiAxMDI0MCwgLy8gXHU1OTgyXHU2NzlDXHU0RjUzXHU3OUVGXHU1OTI3XHU0RThFXHU5NjA4XHU1MDNDXHVGRjBDXHU1QzA2XHU4OEFCXHU1MzhCXHU3RjI5XHVGRjBDXHU1MzU1XHU0RjREXHU0RTNBYlx1RkYwQ1x1NEY1M1x1NzlFRlx1OEZDN1x1NUMwRlx1NjVGNlx1OEJGN1x1NEUwRFx1ODk4MVx1NTM4Qlx1N0YyOVx1RkYwQ1x1NEVFNVx1NTE0RFx1OTAwMlx1NUY5N1x1NTE3Nlx1NTNDRFxyXG4gIGFsZ29yaXRobTogJ2d6aXAnLCAvLyBcdTUzOEJcdTdGMjlcdTdCOTdcdTZDRDVcdUZGMENcdTUzRUZcdTkwMDlbJ2d6aXAnXHVGRjBDJyBicm90bGljY29tcHJlc3MgJ1x1RkYwQydkZWZsYXRlICdcdUZGMEMnZGVmbGF0ZVJhdyddXHJcbiAgZXh0OiAnLmd6JyxcclxuICBkZWxldGVPcmlnaW5GaWxlOiBmYWxzZSAvLyBcdTZFOTBcdTY1ODdcdTRFRjZcdTUzOEJcdTdGMjlcdTU0MEVcdTY2MkZcdTU0MjZcdTUyMjBcdTk2NjRcclxufTtcclxuXHJcbi8qKlxyXG4gKiBcdTU2RkVcdTcyNDdcdTUzOEJcdTdGMjlcdTkxNERcdTdGNkVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjb25maWdfaW1hZ2VtaW4gPSB7XHJcbiAgZ2lmc2ljbGU6IHtcclxuICAgIG9wdGltaXphdGlvbkxldmVsOiA3LFxyXG4gICAgaW50ZXJsYWNlZDogZmFsc2VcclxuICB9LFxyXG4gIG9wdGlwbmc6IHtcclxuICAgIG9wdGltaXphdGlvbkxldmVsOiA3XHJcbiAgfSxcclxuICBtb3pqcGVnOiB7XHJcbiAgICBxdWFsaXR5OiAyMFxyXG4gIH0sXHJcbiAgcG5ncXVhbnQ6IHtcclxuICAgIHF1YWxpdHk6IFswLjgsIDAuOV0sXHJcbiAgICBzcGVlZDogNFxyXG4gIH0sXHJcbiAgc3Znbzoge1xyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3JlbW92ZVZpZXdCb3gnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAncmVtb3ZlRW1wdHlBdHRycycsXHJcbiAgICAgICAgYWN0aXZlOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG59O1xyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQWtVLFNBQVMsb0JBQW9CO0FBRS9WLE9BQU8sU0FBUztBQUVoQixTQUFTLGtCQUFrQjtBQUMzQixPQUFPLHFCQUFxQjtBQUM1QixPQUFPLGtCQUFrQjtBQU16QixPQUFPLGdCQUFnQjtBQUN2QixPQUFPLGdCQUFnQjtBQUN2QixTQUFTLG9CQUFvQjs7O0FDWHRCLElBQU0scUJBQXFCO0FBQUEsRUFDaEMsU0FBUztBQUFBO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQUE7QUFBQSxFQUNYLFdBQVc7QUFBQTtBQUFBLEVBQ1gsS0FBSztBQUFBLEVBQ0wsa0JBQWtCO0FBQUE7QUFDcEI7QUFLTyxJQUFNLGtCQUFrQjtBQUFBLEVBQzdCLFVBQVU7QUFBQSxJQUNSLG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxtQkFBbUI7QUFBQSxFQUNyQjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsU0FBUztBQUFBLEVBQ1g7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNSLFNBQVMsQ0FBQyxLQUFLLEdBQUc7QUFBQSxJQUNsQixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osU0FBUztBQUFBLE1BQ1A7QUFBQSxRQUNFLE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sUUFBUTtBQUFBLE1BQ1Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUR0QkEsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBRSxLQUFLLE1BQU07QUFDeEMsU0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFLTCxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUtOLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0wsU0FBUztBQUFBO0FBQUE7QUFBQSxVQUlQLFFBQVE7QUFBQTtBQUFBLFVBRVIsY0FBYztBQUFBLFVBQ2QsUUFBUTtBQUFBLFVBQ1IsSUFBSTtBQUFBLFVBQ0osTUFBTTtBQUFBLFVBQ04sU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLGdCQUFnQixFQUFFO0FBQUEsUUFDcEQ7QUFBQSxRQUVBLFNBQVM7QUFBQTtBQUFBLFVBRVAsUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsUUFBUTtBQUFBLFVBQ1IsSUFBSTtBQUFBLFVBQ0osU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLFdBQVcsRUFBRTtBQUFBLFFBQy9DO0FBQUEsUUFDQSxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJVCxRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxRQUFRO0FBQUEsVUFDUixJQUFJO0FBQUEsVUFDSixTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsYUFBYSxFQUFFO0FBQUEsUUFDakQ7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLTCxRQUFRO0FBQUEsTUFFUixhQUFhO0FBQUEsTUFDYixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsVUFDTixjQUFjO0FBQUEsWUFDWixjQUFjLENBQUMsT0FBTyxjQUFjLE9BQU87QUFBQSxVQUM3QztBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUE7QUFBQSxVQUVOLFVBQVU7QUFBQSxRQUNaO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU9KLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUFBLE1BQzFCLGdCQUFnQixrQkFBa0I7QUFBQSxNQUNsQyxhQUFhLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTTVCLFdBQVc7QUFBQSxRQUNULFdBQVcsQ0FBQyxhQUFhLENBQUM7QUFBQSxNQUM1QixDQUFDO0FBQUEsTUFDRCxXQUFXO0FBQUEsUUFDVCxXQUFXO0FBQUEsVUFDVCxhQUFhO0FBQUEsWUFDWCxZQUFZO0FBQUEsVUFDZCxDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K