import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/views/Login/index.vue");/* unplugin-vue-components disabled */import { ElForm as __unplugin_components_5 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_form_style_css.js?v=f9805ad8"; import { ElButton as __unplugin_components_4 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_button_style_css.js?v=f9805ad8"; import { ElCheckbox as __unplugin_components_3 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_checkbox_style_css.js?v=f9805ad8"; import { ElFormItem as __unplugin_components_2 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_form-item_style_css.js?v=f9805ad8"; import { ElInput as __unplugin_components_1 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_input_style_css.js?v=f9805ad8"; import { ElIcon as __unplugin_components_0 } from "/node_modules/.vite/deps/element-plus_es.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_base_style_css.js?v=f9805ad8";import "/node_modules/.vite/deps/element-plus_es_components_icon_style_css.js?v=f9805ad8"; import { defineComponent as _defineComponent } from "/node_modules/.vite/deps/vue.js?v=f9805ad8"; import { reactive, ref } from "/node_modules/.vite/deps/vue.js?v=f9805ad8"; import { useRouter } from "/node_modules/.vite/deps/vue-router.js?v=f9805ad8"; import { Lock, User, VideoPlay } from "/node_modules/.vite/deps/@element-plus_icons-vue.js?v=f9805ad8"; import { ElMessage } from "/node_modules/.vite/deps/element-plus.js?v=f9805ad8"; import AuthPageLayout from "/src/components/AuthPageLayout.vue?t=1776940473650"; import { useAuthStore } from "/src/stores/auth.ts?t=1776940473650"; import { useServerStore } from "/src/stores/server.ts"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const router = useRouter(); const authStore = useAuthStore(); const serverStore = useServerStore(); const formRef = ref(); const loading = ref(false); const form = reactive({ username: "", password: "", rememberMe: true }); const rules = { username: [{ required: true, message: "请输入用户名", trigger: "blur" }], password: [{ required: true, message: "请输入密码", trigger: "blur" }] }; async function handleLogin() { if (!formRef.value) return; const valid = await formRef.value.validate().catch(() => false); if (!valid) return; loading.value = true; try { await authStore.login({ username: form.username, password: form.password, rememberMe: form.rememberMe }); ElMessage.success("登录成功"); router.push("/"); } finally { loading.value = false; } } const __returned__ = { router, authStore, serverStore, formRef, loading, form, rules, handleLogin, get Lock() { return Lock; }, get User() { return User; }, get VideoPlay() { return VideoPlay; }, AuthPageLayout }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { createElementVNode as _createElementVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode, withModifiers as _withModifiers, toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock } from "/node_modules/.vite/deps/vue.js?v=f9805ad8"; const _hoisted_1 = { class: "login-card" }; const _hoisted_2 = { class: "login-header" }; const _hoisted_3 = { class: "logo-mark" }; const _hoisted_4 = { class: "form-meta" }; const _hoisted_5 = { class: "server-panel" }; const _hoisted_6 = { class: "server-row" }; const _hoisted_7 = { class: "server-row compact" }; const _hoisted_8 = { class: "login-footer" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_el_icon = __unplugin_components_0; const _component_el_input = __unplugin_components_1; const _component_el_form_item = __unplugin_components_2; const _component_el_checkbox = __unplugin_components_3; const _component_el_button = __unplugin_components_4; const _component_el_form = __unplugin_components_5; return _openBlock(), _createBlock($setup["AuthPageLayout"], null, { default: _withCtx(() => [ _createElementVNode("div", _hoisted_1, [ _createElementVNode("div", _hoisted_2, [ _cache[4] || (_cache[4] = _createElementVNode( "span", { class: "badge" }, "Workspace Access", -1 /* CACHED */ )), _createElementVNode("div", _hoisted_3, [ _createVNode(_component_el_icon, null, { default: _withCtx(() => [ _createVNode($setup["VideoPlay"]) ]), _: 1 /* STABLE */ }) ]), _cache[5] || (_cache[5] = _createElementVNode( "h2", null, "登录智媒通", -1 /* CACHED */ )), _cache[6] || (_cache[6] = _createElementVNode( "p", null, "进入本地 Node 工作台,继续账号运营、自动发布与数据分析。", -1 /* CACHED */ )) ]), _createVNode(_component_el_form, { ref: "formRef", model: $setup.form, rules: $setup.rules, class: "login-form", onSubmit: _withModifiers($setup.handleLogin, ["prevent"]) }, { default: _withCtx(() => [ _createVNode(_component_el_form_item, { prop: "username" }, { default: _withCtx(() => [ _createVNode(_component_el_input, { modelValue: $setup.form.username, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.form.username = $event), placeholder: "用户名或邮箱", size: "large", "prefix-icon": $setup.User }, null, 8, ["modelValue", "prefix-icon"]) ]), _: 1 /* STABLE */ }), _createVNode(_component_el_form_item, { prop: "password" }, { default: _withCtx(() => [ _createVNode(_component_el_input, { modelValue: $setup.form.password, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.form.password = $event), type: "password", placeholder: "密码", size: "large", "prefix-icon": $setup.Lock, "show-password": "" }, null, 8, ["modelValue", "prefix-icon"]) ]), _: 1 /* STABLE */ }), _createElementVNode("div", _hoisted_4, [ _createVNode(_component_el_checkbox, { modelValue: $setup.form.rememberMe, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.form.rememberMe = $event) }, { default: _withCtx(() => [..._cache[7] || (_cache[7] = [ _createTextVNode( "保持登录", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ }, 8, ["modelValue"]), _cache[8] || (_cache[8] = _createElementVNode( "span", { class: "meta-hint" }, "服务地址自动跟随本地服务", -1 /* CACHED */ )) ]), _createVNode(_component_el_button, { type: "primary", size: "large", loading: $setup.loading, class: "login-btn", "native-type": "submit" }, { default: _withCtx(() => [..._cache[9] || (_cache[9] = [ _createTextVNode( " 进入工作台 ", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ }, 8, ["loading"]) ]), _: 1 /* STABLE */ }, 8, ["model"]), _createElementVNode("div", _hoisted_5, [ _createElementVNode("div", _hoisted_6, [ _cache[10] || (_cache[10] = _createElementVNode( "span", { class: "server-label" }, "当前服务", -1 /* CACHED */ )), _createElementVNode( "strong", null, _toDisplayString($setup.serverStore.currentServer?.name || "未配置"), 1 /* TEXT */ ) ]), _createElementVNode("div", _hoisted_7, [ _createElementVNode( "span", null, _toDisplayString($setup.serverStore.currentServer?.url || "未读取到地址"), 1 /* TEXT */ ) ]) ]), _createElementVNode("div", _hoisted_8, [ _cache[12] || (_cache[12] = _createElementVNode( "span", null, "还没有账号?", -1 /* CACHED */ )), _createVNode(_component_el_button, { type: "primary", link: "", onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$router.push("/register")) }, { default: _withCtx(() => [..._cache[11] || (_cache[11] = [ _createTextVNode( "立即注册", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ }) ]) ]) ]), _: 1 /* STABLE */ }); } import "/src/views/Login/index.vue?vue&type=style&index=0&scoped=374a0b31&lang.scss"; _sfc_main.__hmrId = "374a0b31"; typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main); import.meta.hot.on("file-changed", ({ file }) => { __VUE_HMR_RUNTIME__.CHANGED_FILE = file; }); import.meta.hot.accept((mod) => { if (!mod) return; const { default: updated, _rerender_only } = mod; if (_rerender_only) { __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render); } else { __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated); } }); import _export_sfc from "/@id/__x00__plugin-vue:export-helper"; export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-374a0b31"], ["__file", "C:/workspace/multi-platform-media-manage/client/src/views/Login/index.vue"]]); //# sourceMappingURL=data:application/json;base64,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Imlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbImluZGV4LnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyLvu788dGVtcGxhdGU+XHJcbiAgPEF1dGhQYWdlTGF5b3V0PlxyXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luLWNhcmRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj5Xb3Jrc3BhY2UgQWNjZXNzPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dvLW1hcmtcIj5cclxuICAgICAgICAgIDxlbC1pY29uPjxWaWRlb1BsYXkgLz48L2VsLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGgyPueZu+W9leaZuuWqkumAmjwvaDI+XG4gICAgICAgIDxwPui/m+WFpeacrOWcsCBOb2RlIOW3peS9nOWPsO+8jOe7p+e7rei0puWPt+i/kOiQpeOAgeiHquWKqOWPkeW4g+S4juaVsOaNruWIhuaekOOAgjwvcD5cbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGVsLWZvcm1cclxuICAgICAgICByZWY9XCJmb3JtUmVmXCJcclxuICAgICAgICA6bW9kZWw9XCJmb3JtXCJcclxuICAgICAgICA6cnVsZXM9XCJydWxlc1wiXHJcbiAgICAgICAgY2xhc3M9XCJsb2dpbi1mb3JtXCJcclxuICAgICAgICBAc3VibWl0LnByZXZlbnQ9XCJoYW5kbGVMb2dpblwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIHByb3A9XCJ1c2VybmFtZVwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnVzZXJuYW1lXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLnlKjmiLflkI3miJbpgq7nrrFcIlxuICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcclxuICAgICAgICAgICAgOnByZWZpeC1pY29uPVwiVXNlclwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIHByb3A9XCJwYXNzd29yZFwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnBhc3N3b3JkXCJcclxuICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLlr4bnoIFcIlxuICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcclxuICAgICAgICAgICAgOnByZWZpeC1pY29uPVwiTG9ja1wiXHJcbiAgICAgICAgICAgIHNob3ctcGFzc3dvcmRcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLW1ldGFcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveCB2LW1vZGVsPVwiZm9ybS5yZW1lbWJlck1lXCI+5L+d5oyB55m75b2VPC9lbC1jaGVja2JveD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtaGludFwiPuacjeWKoeWcsOWdgOiHquWKqOi3n+maj+acrOWcsOacjeWKoTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIHNpemU9XCJsYXJnZVwiXHJcbiAgICAgICAgICA6bG9hZGluZz1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJsb2dpbi1idG5cIlxyXG4gICAgICAgICAgbmF0aXZlLXR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIOi/m+WFpeW3peS9nOWPsFxuICAgICAgICA8L2VsLWJ1dHRvbj5cbiAgICAgIDwvZWwtZm9ybT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2ZXItcGFuZWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmVyLXJvd1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXJ2ZXItbGFiZWxcIj7lvZPliY3mnI3liqE8L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBzZXJ2ZXJTdG9yZS5jdXJyZW50U2VydmVyPy5uYW1lIHx8ICfmnKrphY3nva4nIH19PC9zdHJvbmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZlci1yb3cgY29tcGFjdFwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgc2VydmVyU3RvcmUuY3VycmVudFNlcnZlcj8udXJsIHx8ICfmnKror7vlj5bliLDlnLDlnYAnIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb290ZXJcIj5cclxuICAgICAgICA8c3Bhbj7ov5jmsqHmnInotKblj7fvvJ88L3NwYW4+XG4gICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBsaW5rIEBjbGljaz1cIiRyb3V0ZXIucHVzaCgnL3JlZ2lzdGVyJylcIj7nq4vljbPms6jlhow8L2VsLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9BdXRoUGFnZUxheW91dD5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IHJlYWN0aXZlLCByZWYgfSBmcm9tICd2dWUnO1xyXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICd2dWUtcm91dGVyJztcclxuaW1wb3J0IHsgTG9jaywgVXNlciwgVmlkZW9QbGF5IH0gZnJvbSAnQGVsZW1lbnQtcGx1cy9pY29ucy12dWUnO1xyXG5pbXBvcnQgeyBFbE1lc3NhZ2UsIHR5cGUgRm9ybUluc3RhbmNlLCB0eXBlIEZvcm1SdWxlcyB9IGZyb20gJ2VsZW1lbnQtcGx1cyc7XHJcbmltcG9ydCBBdXRoUGFnZUxheW91dCBmcm9tICdAL2NvbXBvbmVudHMvQXV0aFBhZ2VMYXlvdXQudnVlJztcclxuaW1wb3J0IHsgdXNlQXV0aFN0b3JlIH0gZnJvbSAnQC9zdG9yZXMvYXV0aCc7XHJcbmltcG9ydCB7IHVzZVNlcnZlclN0b3JlIH0gZnJvbSAnQC9zdG9yZXMvc2VydmVyJztcclxuXHJcbmNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpO1xyXG5jb25zdCBhdXRoU3RvcmUgPSB1c2VBdXRoU3RvcmUoKTtcclxuY29uc3Qgc2VydmVyU3RvcmUgPSB1c2VTZXJ2ZXJTdG9yZSgpO1xyXG5cclxuY29uc3QgZm9ybVJlZiA9IHJlZjxGb3JtSW5zdGFuY2U+KCk7XHJcbmNvbnN0IGxvYWRpbmcgPSByZWYoZmFsc2UpO1xyXG5cclxuY29uc3QgZm9ybSA9IHJlYWN0aXZlKHtcclxuICB1c2VybmFtZTogJycsXHJcbiAgcGFzc3dvcmQ6ICcnLFxyXG4gIHJlbWVtYmVyTWU6IHRydWUsXHJcbn0pO1xyXG5cclxuY29uc3QgcnVsZXM6IEZvcm1SdWxlcyA9IHtcclxuICB1c2VybmFtZTogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fovpPlhaXnlKjmiLflkI0nLCB0cmlnZ2VyOiAnYmx1cicgfV0sXHJcbiAgcGFzc3dvcmQ6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl5a+G56CBJywgdHJpZ2dlcjogJ2JsdXInIH1dLFxyXG59O1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlTG9naW4oKSB7XHJcbiAgaWYgKCFmb3JtUmVmLnZhbHVlKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHZhbGlkID0gYXdhaXQgZm9ybVJlZi52YWx1ZS52YWxpZGF0ZSgpLmNhdGNoKCgpID0+IGZhbHNlKTtcclxuICBpZiAoIXZhbGlkKSByZXR1cm47XHJcblxyXG4gIGxvYWRpbmcudmFsdWUgPSB0cnVlO1xyXG4gIHRyeSB7XHJcbiAgICBhd2FpdCBhdXRoU3RvcmUubG9naW4oe1xyXG4gICAgICB1c2VybmFtZTogZm9ybS51c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQ6IGZvcm0ucGFzc3dvcmQsXHJcbiAgICAgIHJlbWVtYmVyTWU6IGZvcm0ucmVtZW1iZXJNZSxcclxuICAgIH0pO1xyXG4gICAgRWxNZXNzYWdlLnN1Y2Nlc3MoJ+eZu+W9leaIkOWKnycpO1xuICAgIHJvdXRlci5wdXNoKCcvJyk7XHJcbiAgfSBmaW5hbGx5IHtcclxuICAgIGxvYWRpbmcudmFsdWUgPSBmYWxzZTtcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcbkB1c2UgJ0Avc3R5bGVzL3ZhcmlhYmxlcy5zY3NzJyBhcyAqO1xyXG5cclxuLmxvZ2luLWNhcmQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMzgwcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4ubG9naW4taGVhZGVyIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICBoMiB7XHJcbiAgICBtYXJnaW46IDE4cHggMCAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6ICdOZXdzcmVhZGVyJywgJ05vdG8gU2VyaWYgU0MnLCBzZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMzhweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwLjk4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XHJcbiAgICBjb2xvcjogJHRleHQtcHJpbWFyeTtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICR0ZXh0LXNlY29uZGFyeTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XHJcbiAgfVxyXG59XHJcblxyXG4uYmFkZ2Uge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIG1pbi1oZWlnaHQ6IDMwcHg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIDEycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDkyLCAwLCAwLjA4KTtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4ubG9nby1tYXJrIHtcclxuICB3aWR0aDogNjJweDtcclxuICBoZWlnaHQ6IDYycHg7XHJcbiAgbWFyZ2luLXRvcDogMThweDtcclxuICBib3JkZXItcmFkaXVzOiAyMnB4O1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiAkZ3JhZGllbnQtcHJpbWFyeTtcclxuICBib3gtc2hhZG93OiAwIDE2cHggMzZweCByZ2JhKDI1NSwgOTIsIDAsIDAuMjQpO1xyXG5cclxuICAuZWwtaWNvbiB7XHJcbiAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG4ubG9naW4tZm9ybSB7XHJcbiAgbWFyZ2luLXRvcDogMjZweDtcclxuXHJcbiAgOmRlZXAoLmVsLWZvcm0taXRlbSkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcclxuICB9XHJcblxyXG4gIDpkZWVwKC5lbC1pbnB1dF9fd3JhcHBlcikge1xyXG4gICAgbWluLWhlaWdodDogNTJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNiwgMjYsIDI2LCAwLjA4KSBpbnNldDtcclxuXHJcbiAgICAmLmlzLWZvY3VzIHtcclxuICAgICAgYm94LXNoYWRvdzpcclxuICAgICAgICAwIDAgMCAxcHggcmdiYSgyNTUsIDkyLCAwLCAwLjQ4KSBpbnNldCxcclxuICAgICAgICAwIDAgMCA0cHggcmdiYSgyNTUsIDkyLCAwLCAwLjEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tbWV0YSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBnYXA6IDEycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBjb2xvcjogJHRleHQtc2Vjb25kYXJ5O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxuLm1ldGEtaGludCB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi5sb2dpbi1idG4ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNTJweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBiYWNrZ3JvdW5kOiAkZ3JhZGllbnQtcHJpbWFyeTtcclxuICBib3gtc2hhZG93OiAwIDE4cHggMzRweCByZ2JhKDI1NSwgOTIsIDAsIDAuMjIpO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4uc2VydmVyLXBhbmVsIHtcclxuICBtYXJnaW4tdG9wOiAyNHB4O1xyXG4gIHBhZGRpbmc6IDE4cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgOTIsIDAsIDAuMDQpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCA5MiwgMCwgMC4xKTtcclxufVxyXG5cclxuLnNlcnZlci1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZ2FwOiAxNHB4O1xyXG4gIGNvbG9yOiAkdGV4dC1wcmltYXJ5O1xyXG5cclxuICAmLmNvbXBhY3Qge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgY29sb3I6ICR0ZXh0LXNlY29uZGFyeTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2VydmVyLWxhYmVsIHtcclxuICBjb2xvcjogJHRleHQtc2Vjb25kYXJ5O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5sb2dpbi1mb290ZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZ2FwOiA0cHg7XHJcbiAgbWFyZ2luLXRvcDogMThweDtcclxuICBjb2xvcjogJHRleHQtc2Vjb25kYXJ5O1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG48L3N0eWxlPlxyXG5cclxuXHJcblxyXG4iXSwiZmlsZSI6IkM6L3dvcmtzcGFjZS9tdWx0aS1wbGF0Zm9ybS1tZWRpYS1tYW5hZ2UvY2xpZW50L3NyYy92aWV3cy9Mb2dpbi9pbmRleC52dWUifQ==