"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ self["webpackHotUpdate_N_E"]("app/page",{ /***/ "(app-pages-browser)/./app/constant.ts": /*!*************************!*\ !*** ./app/constant.ts ***! \*************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESS_CODE_PREFIX: function() { return /* binding */ ACCESS_CODE_PREFIX; },\n/* harmony export */ ALIBABA_BASE_URL: function() { return /* binding */ ALIBABA_BASE_URL; },\n/* harmony export */ ANTHROPIC_BASE_URL: function() { return /* binding */ ANTHROPIC_BASE_URL; },\n/* harmony export */ Alibaba: function() { return /* binding */ Alibaba; },\n/* harmony export */ Anthropic: function() { return /* binding */ Anthropic; },\n/* harmony export */ ApiPath: function() { return /* binding */ ApiPath; },\n/* harmony export */ Azure: function() { return /* binding */ Azure; },\n/* harmony export */ BAIDU_BASE_URL: function() { return /* binding */ BAIDU_BASE_URL; },\n/* harmony export */ BAIDU_OATUH_URL: function() { return /* binding */ BAIDU_OATUH_URL; },\n/* harmony export */ BYTEDANCE_BASE_URL: function() { return /* binding */ BYTEDANCE_BASE_URL; },\n/* harmony export */ Baidu: function() { return /* binding */ Baidu; },\n/* harmony export */ ByteDance: function() { return /* binding */ ByteDance; },\n/* harmony export */ CACHE_URL_PREFIX: function() { return /* binding */ CACHE_URL_PREFIX; },\n/* harmony export */ CHATGLM_BASE_URL: function() { return /* binding */ CHATGLM_BASE_URL; },\n/* harmony export */ CHAT_PAGE_SIZE: function() { return /* binding */ CHAT_PAGE_SIZE; },\n/* harmony export */ ChatGLM: function() { return /* binding */ ChatGLM; },\n/* harmony export */ DEEPSEEK_BASE_URL: function() { return /* binding */ DEEPSEEK_BASE_URL; },\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: function() { return /* binding */ DEEPSEEK_SUMMARIZE_MODEL; },\n/* harmony export */ DEFAULT_GA_ID: function() { return /* binding */ DEFAULT_GA_ID; },\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: function() { return /* binding */ DEFAULT_INPUT_TEMPLATE; },\n/* harmony export */ DEFAULT_MODELS: function() { return /* binding */ DEFAULT_MODELS; },\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: function() { return /* binding */ DEFAULT_SIDEBAR_WIDTH; },\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: function() { return /* binding */ DEFAULT_SYSTEM_TEMPLATE; },\n/* harmony export */ DEFAULT_TTS_ENGINE: function() { return /* binding */ DEFAULT_TTS_ENGINE; },\n/* harmony export */ DEFAULT_TTS_ENGINES: function() { return /* binding */ DEFAULT_TTS_ENGINES; },\n/* harmony export */ DEFAULT_TTS_MODEL: function() { return /* binding */ DEFAULT_TTS_MODEL; },\n/* harmony export */ DEFAULT_TTS_MODELS: function() { return /* binding */ DEFAULT_TTS_MODELS; },\n/* harmony export */ DEFAULT_TTS_VOICE: function() { return /* binding */ DEFAULT_TTS_VOICE; },\n/* harmony export */ DEFAULT_TTS_VOICES: function() { return /* binding */ DEFAULT_TTS_VOICES; },\n/* harmony export */ DeepSeek: function() { return /* binding */ DeepSeek; },\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: function() { return /* binding */ EXCLUDE_VISION_MODEL_REGEXES; },\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: function() { return /* binding */ EXPORT_MESSAGE_CLASS_NAME; },\n/* harmony export */ FETCH_COMMIT_URL: function() { return /* binding */ FETCH_COMMIT_URL; },\n/* harmony export */ FETCH_TAG_URL: function() { return /* binding */ FETCH_TAG_URL; },\n/* harmony export */ FileName: function() { return /* binding */ FileName; },\n/* harmony export */ GEMINI_BASE_URL: function() { return /* binding */ GEMINI_BASE_URL; },\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: function() { return /* binding */ GEMINI_SUMMARIZE_MODEL; },\n/* harmony export */ Google: function() { return /* binding */ Google; },\n/* harmony export */ GoogleSafetySettingsThreshold: function() { return /* binding */ GoogleSafetySettingsThreshold; },\n/* harmony export */ IFLYTEK_BASE_URL: function() { return /* binding */ IFLYTEK_BASE_URL; },\n/* harmony export */ ISSUE_URL: function() { return /* binding */ ISSUE_URL; },\n/* harmony export */ Iflytek: function() { return /* binding */ Iflytek; },\n/* harmony export */ KnowledgeCutOffDate: function() { return /* binding */ KnowledgeCutOffDate; },\n/* harmony export */ LAST_INPUT_KEY: function() { return /* binding */ LAST_INPUT_KEY; },\n/* harmony export */ MAX_RENDER_MSG_COUNT: function() { return /* binding */ MAX_RENDER_MSG_COUNT; },\n/* harmony export */ MAX_SIDEBAR_WIDTH: function() { return /* binding */ MAX_SIDEBAR_WIDTH; },\n/* harmony export */ MCP_SYSTEM_TEMPLATE: function() { return /* binding */ MCP_SYSTEM_TEMPLATE; },\n/* harmony export */ MCP_TOOLS_TEMPLATE: function() { return /* binding */ MCP_TOOLS_TEMPLATE; },\n/* harmony export */ MIN_SIDEBAR_WIDTH: function() { return /* binding */ MIN_SIDEBAR_WIDTH; },\n/* harmony export */ MOONSHOT_BASE_URL: function() { return /* binding */ MOONSHOT_BASE_URL; },\n/* harmony export */ ModelProvider: function() { return /* binding */ ModelProvider; },\n/* harmony export */ Moonshot: function() { return /* binding */ Moonshot; },\n/* harmony export */ NARROW_SIDEBAR_WIDTH: function() { return /* binding */ NARROW_SIDEBAR_WIDTH; },\n/* harmony export */ OPENAI_BASE_URL: function() { return /* binding */ OPENAI_BASE_URL; },\n/* harmony export */ OWNER: function() { return /* binding */ OWNER; },\n/* harmony export */ OpenaiPath: function() { return /* binding */ OpenaiPath; },\n/* harmony export */ PLUGINS_REPO_URL: function() { return /* binding */ PLUGINS_REPO_URL; },\n/* harmony export */ Path: function() { return /* binding */ Path; },\n/* harmony export */ RELEASE_URL: function() { return /* binding */ RELEASE_URL; },\n/* harmony export */ REPO: function() { return /* binding */ REPO; },\n/* harmony export */ REPO_URL: function() { return /* binding */ REPO_URL; },\n/* harmony export */ REQUEST_TIMEOUT_MS: function() { return /* binding */ REQUEST_TIMEOUT_MS; },\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: function() { return /* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING; },\n/* harmony export */ RUNTIME_CONFIG_DOM: function() { return /* binding */ RUNTIME_CONFIG_DOM; },\n/* harmony export */ SAAS_CHAT_URL: function() { return /* binding */ SAAS_CHAT_URL; },\n/* harmony export */ SAAS_CHAT_UTM_URL: function() { return /* binding */ SAAS_CHAT_UTM_URL; },\n/* harmony export */ SILICONFLOW_BASE_URL: function() { return /* binding */ SILICONFLOW_BASE_URL; },\n/* harmony export */ STABILITY_BASE_URL: function() { return /* binding */ STABILITY_BASE_URL; },\n/* harmony export */ STORAGE_KEY: function() { return /* binding */ STORAGE_KEY; },\n/* harmony export */ SUMMARIZE_MODEL: function() { return /* binding */ SUMMARIZE_MODEL; },\n/* harmony export */ ServiceProvider: function() { return /* binding */ ServiceProvider; },\n/* harmony export */ SiliconFlow: function() { return /* binding */ SiliconFlow; },\n/* harmony export */ SlotID: function() { return /* binding */ SlotID; },\n/* harmony export */ Stability: function() { return /* binding */ Stability; },\n/* harmony export */ StoreKey: function() { return /* binding */ StoreKey; },\n/* harmony export */ TENCENT_BASE_URL: function() { return /* binding */ TENCENT_BASE_URL; },\n/* harmony export */ Tencent: function() { return /* binding */ Tencent; },\n/* harmony export */ UNFINISHED_INPUT: function() { return /* binding */ UNFINISHED_INPUT; },\n/* harmony export */ UPDATE_URL: function() { return /* binding */ UPDATE_URL; },\n/* harmony export */ UPLOAD_URL: function() { return /* binding */ UPLOAD_URL; },\n/* harmony export */ VISION_MODEL_REGEXES: function() { return /* binding */ VISION_MODEL_REGEXES; },\n/* harmony export */ XAI: function() { return /* binding */ XAI; },\n/* harmony export */ XAI_BASE_URL: function() { return /* binding */ XAI_BASE_URL; },\n/* harmony export */ internalAllowedWebDavEndpoints: function() { return /* binding */ internalAllowedWebDavEndpoints; }\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO);\nconst PLUGINS_REPO_URL = \"https://github.com/\".concat(OWNER, \"/NextChat-Awesome-Plugins\");\nconst ISSUE_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO, \"/issues\");\nconst UPDATE_URL = \"\".concat(REPO_URL, \"#keep-updated\");\nconst RELEASE_URL = \"\".concat(REPO_URL, \"/releases\");\nconst FETCH_COMMIT_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/commits?per_page=1\");\nconst FETCH_TAG_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/tags?per_page=1\");\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = \"\".concat(BAIDU_BASE_URL, \"/oauth/2.0/token\");\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = \"\".concat(CACHE_URL_PREFIX, \"/upload\");\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/chat/completions?api-version=\").concat(apiVersion),\n // https://.openai.azure.com/openai/deployments//images/generations?api-version=\n ImagePath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/images/generations?api-version=\").concat(apiVersion),\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>\"v1beta/models/\".concat(modelName, \":streamGenerateContent\")\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return \"rpc/2.0/ai_custom/v1/wenxinworkshop/chat/\".concat(endpoint);\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = \"{{input}}\"; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = \"\\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\\nKnowledge cutoff: {{cutoff}}\\nCurrent model: {{model}}\\nCurrent time: {{time}}\\nLatex inline: \\\\(x^2\\\\) \\nLatex block: $$e=mc^2$$\\n\";\nconst MCP_TOOLS_TEMPLATE = \"\\n[clientId]\\n{{ clientId }}\\n[tools]\\n{{ tools }}\\n\";\nconst MCP_SYSTEM_TEMPLATE = '\\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\\n\\n1. AVAILABLE TOOLS:\\n{{ MCP_TOOLS }}\\n\\n2. WHEN TO USE TOOLS:\\n - ALWAYS USE TOOLS when they can help answer user questions\\n - DO NOT just describe what you could do - TAKE ACTION immediately\\n - If you\\'re not sure whether to use a tool, USE IT\\n - Common triggers for tool use:\\n * Questions about files or directories\\n * Requests to check, list, or manipulate system resources\\n * Any query that can be answered with available tools\\n\\n3. HOW TO USE TOOLS:\\n A. Tool Call Format:\\n - Use markdown code blocks with format: ```json:mcp:{clientId}```\\n - Always include:\\n * method: \"tools/call\"(Only this method is supported)\\n * params: \\n - name: must match an available primitive name\\n - arguments: required parameters for the primitive\\n\\n B. Response Format:\\n - Tool responses will come as user messages\\n - Format: ```json:mcp-response:{clientId}```\\n - Wait for response before making another tool call\\n\\n C. Important Rules:\\n - Only use tools/call method\\n - Only ONE tool call per message\\n - ALWAYS TAKE ACTION instead of just describing what you could do\\n - Include the correct clientId in code block language tag\\n - Verify arguments match the primitive\\'s requirements\\n\\n4. INTERACTION FLOW:\\n A. When user makes a request:\\n - IMMEDIATELY use appropriate tool if available\\n - DO NOT ask if user wants you to use the tool\\n - DO NOT just describe what you could do\\n B. After receiving tool response:\\n - Explain results clearly\\n - Take next appropriate action if needed\\n C. If tools fail:\\n - Explain the error\\n - Try alternative approach immediately\\n\\n5. EXAMPLE INTERACTION:\\n\\n good example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"list_allowed_directories\",\\n \"arguments\": {}\\n }\\n }\\n ```\"\\n\\n\\n ```json:mcp-response:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"write_file\",\\n \"arguments\": {\\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\\n }\\n }\\n }\\n```\\n\\n follwing is the wrong! mcp json example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"write_file\",\\n \"params\": {\\n \"path\": \"NextChat_Information.txt\",\\n \"content\": \"1\"\\n }\\n }\\n ```\\n\\n This is wrong because the method is not tools/call.\\n \\n ```{\\n \"method\": \"search_repositories\",\\n \"params\": {\\n \"query\": \"2oeee\"\\n }\\n}\\n ```\\n\\n This is wrong because the method is not tools/call.!!!!!!!!!!!\\n\\n the right format is:\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"search_repositories\",\\n \"arguments\": {\\n \"query\": \"2oeee\"\\n }\\n }\\n }\\n ```\\n \\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\\n \\n';\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-V3\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb25zdGFudC50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxRQUFRLGlCQUFpQjtBQUMvQixNQUFNQyxPQUFPLG1CQUFtQjtBQUNoQyxNQUFNQyxXQUFXLHNCQUErQkQsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQU87QUFDdkQsTUFBTUUsbUJBQW1CLHNCQUE0QixPQUFOSCxPQUFNLDZCQUEyQjtBQUNoRixNQUFNSSxZQUFZLHNCQUErQkgsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQUssV0FBUztBQUMvRCxNQUFNSSxhQUFhLEdBQVksT0FBVEgsVUFBUyxpQkFBZTtBQUM5QyxNQUFNSSxjQUFjLEdBQVksT0FBVEosVUFBUyxhQUFXO0FBQzNDLE1BQU1LLG1CQUFtQixnQ0FBeUNOLE9BQVRELE9BQU0sS0FBUSxPQUFMQyxNQUFLLHVCQUFxQjtBQUM1RixNQUFNTyxnQkFBZ0IsZ0NBQXlDUCxPQUFURCxPQUFNLEtBQVEsT0FBTEMsTUFBSyxvQkFBa0I7QUFDdEYsTUFBTVEscUJBQXFCLHdCQUF3QjtBQUVuRCxNQUFNQyxxQkFBcUIsMkJBQTJCO0FBRXRELE1BQU1DLGtCQUFrQix5QkFBeUI7QUFDakQsTUFBTUMscUJBQXFCLDRCQUE0QjtBQUV2RCxNQUFNQyxrQkFBa0IsNkNBQTZDO0FBRXJFLE1BQU1DLGlCQUFpQiwyQkFBMkI7QUFDbEQsTUFBTUMsa0JBQWtCLEdBQWtCLE9BQWZELGdCQUFlLG9CQUFrQjtBQUU1RCxNQUFNRSxxQkFBcUIsb0NBQW9DO0FBRS9ELE1BQU1DLG1CQUFtQixzQ0FBc0M7QUFFL0QsTUFBTUMsbUJBQW1CLHNDQUFzQztBQUUvRCxNQUFNQyxvQkFBb0IsMEJBQTBCO0FBQ3BELE1BQU1DLG1CQUFtQixvQ0FBb0M7QUFFN0QsTUFBTUMs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Y2s6Ly9fTl9FLy4vYXBwL2NvbnN0YW50LnRzP2FmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE9XTkVSID0gXCJDaGF0R1BUTmV4dFdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQTyA9IFwiQ2hhdEdQVC1OZXh0LVdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQT19VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7T1dORVJ9LyR7UkVQT31gO1xyXG5leHBvcnQgY29uc3QgUExVR0lOU19SRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vTmV4dENoYXQtQXdlc29tZS1QbHVnaW5zYDtcclxuZXhwb3J0IGNvbnN0IElTU1VFX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfS9pc3N1ZXNgO1xyXG5leHBvcnQgY29uc3QgVVBEQVRFX1VSTCA9IGAke1JFUE9fVVJMfSNrZWVwLXVwZGF0ZWRgO1xyXG5leHBvcnQgY29uc3QgUkVMRUFTRV9VUkwgPSBgJHtSRVBPX1VSTH0vcmVsZWFzZXNgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfQ09NTUlUX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vY29tbWl0cz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IEZFVENIX1RBR19VUkwgPSBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke09XTkVSfS8ke1JFUE99L3RhZ3M/cGVyX3BhZ2U9MWA7XHJcbmV4cG9ydCBjb25zdCBSVU5USU1FX0NPTkZJR19ET00gPSBcImRhbmdlci1ydW50aW1lLWNvbmZpZ1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUQUJJTElUWV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgT1BFTkFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5vcGVuYWkuY29tXCI7XHJcbmV4cG9ydCBjb25zdCBBTlRIUk9QSUNfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBHRU1JTklfQkFTRV9VUkwgPSBcImh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBSURVX0JBU0VfVVJMID0gXCJodHRwczovL2FpcC5iYWlkdWJjZS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEJBSURVX09BVFVIX1VSTCA9IGAke0JBSURVX0JBU0VfVVJMfS9vYXV0aC8yLjAvdG9rZW5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJZVEVEQU5DRV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQUxJQkFCQV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9kYXNoc2NvcGUuYWxpeXVuY3MuY29tL2FwaS9cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBURU5DRU5UX0JBU0VfVVJMID0gXCJodHRwczovL2h1bnl1YW4udGVuY2VudGNsb3VkYXBpLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PT05TSE9UX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5tb29uc2hvdC5jblwiO1xyXG5leHBvcnQgY29uc3QgSUZMWVRFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9zcGFyay1hcGktb3Blbi54Zi15dW4uY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmRlZXBzZWVrLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkueC5haVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRHTE1fQkFTRV9VUkwgPSBcImh0dHBzOi8vb3Blbi5iaWdtb2RlbC5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJTElDT05GTE9XX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zaWxpY29uZmxvdy5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBQ0hFX1VSTF9QUkVGSVggPSBcIi9hcGkvY2FjaGVcIjtcclxuZXhwb3J0IGNvbnN0IFVQTE9BRF9VUkwgPSBgJHtDQUNIRV9VUkxfUFJFRklYfS91cGxvYWRgO1xyXG5cclxuZXhwb3J0IGVudW0gUGF0aCB7XHJcbiAgSG9tZSA9IFwiL1wiLFxyXG4gIENoYXQgPSBcIi9jaGF0XCIsXHJcbiAgU2V0dGluZ3MgPSBcIi9zZXR0aW5nc1wiLFxyXG4gIE5ld0NoYXQgPSBcIi9uZXctY2hhdFwiLFxyXG4gIE1hc2tzID0gXCIvbWFza3NcIixcclxuICBQbHVnaW5zID0gXCIvcGx1Z2luc1wiLFxyXG4gIEF1dGggPSBcIi9hdXRoXCIsXHJcbiAgU2QgPSBcIi9zZFwiLFxyXG4gIFNkTmV3ID0gXCIvc2QtbmV3XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXJ0aWZhY3RzXCIsXHJcbiAgU2VhcmNoQ2hhdCA9IFwiL3NlYXJjaC1jaGF0XCIsXHJcbiAgTWNwTWFya2V0ID0gXCIvbWNwLW1hcmtldFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBBcGlQYXRoIHtcclxuICBDb3JzID0gXCJcIixcclxuICBBenVyZSA9IFwiL2FwaS9henVyZVwiLFxyXG4gIE9wZW5BSSA9IFwiL2FwaS9vcGVuYWlcIixcclxuICBBbnRocm9waWMgPSBcIi9hcGkvYW50aHJvcGljXCIsXHJcbiAgR29vZ2xlID0gXCIvYXBpL2dvb2dsZVwiLFxyXG4gIEJhaWR1ID0gXCIvYXBpL2JhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCIvYXBpL2J5dGVkYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIi9hcGkvYWxpYmFiYVwiLFxyXG4gIFRlbmNlbnQgPSBcIi9hcGkvdGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCIvYXBpL21vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiL2FwaS9pZmx5dGVrXCIsXHJcbiAgU3RhYmlsaXR5ID0gXCIvYXBpL3N0YWJpbGl0eVwiLFxyXG4gIEFydGlmYWN0cyA9IFwiL2FwaS9hcnRpZmFjdHNcIixcclxuICBYQUkgPSBcIi9hcGkveGFpXCIsXHJcbiAgQ2hhdEdMTSA9IFwiL2FwaS9jaGF0Z2xtXCIsXHJcbiAgRGVlcFNlZWsgPSBcIi9hcGkvZGVlcHNlZWtcIixcclxuICBTaWxpY29uRmxvdyA9IFwiL2FwaS9zaWxpY29uZmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbG90SUQge1xyXG4gIEFwcEJvZHkgPSBcImFwcC1ib2R5XCIsXHJcbiAgQ3VzdG9tTW9kZWwgPSBcImN1c3RvbS1tb2RlbFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTmFtZSB7XHJcbiAgTWFza3MgPSBcIm1hc2tzLmpzb25cIixcclxuICBQcm9tcHRzID0gXCJwcm9tcHRzLmpzb25cIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3RvcmVLZXkge1xyXG4gIENoYXQgPSBcImNoYXQtbmV4dC13ZWItc3RvcmVcIixcclxuICBQbHVnaW4gPSBcImNoYXQtbmV4dC13ZWItcGx1Z2luXCIsXHJcbiAgQWNjZXNzID0gXCJhY2Nlc3MtY29udHJvbFwiLFxyXG4gIENvbmZpZyA9IFwiYXBwLWNvbmZpZ1wiLFxyXG4gIE1hc2sgPSBcIm1hc2stc3RvcmVcIixcclxuICBQcm9tcHQgPSBcInByb21wdC1zdG9yZVwiLFxyXG4gIFVwZGF0ZSA9IFwiY2hhdC11cGRhdGVcIixcclxuICBTeW5jID0gXCJzeW5jXCIsXHJcbiAgU2RMaXN0ID0gXCJzZC1saXN0XCIsXHJcbiAgTWNwID0gXCJtY3Atc3RvcmVcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0lERUJBUl9XSURUSCA9IDMwMDtcclxuZXhwb3J0IGNvbnN0IE1BWF9TSURFQkFSX1dJRFRIID0gNTAwO1xyXG5leHBvcnQgY29uc3QgTUlOX1NJREVCQVJfV0lEVEggPSAyMzA7XHJcbmV4cG9ydCBjb25zdCBOQVJST1dfU0lERUJBUl9XSURUSCA9IDEwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NFU1NfQ09ERV9QUkVGSVggPSBcIm5rLVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IExBU1RfSU5QVVRfS0VZID0gXCJsYXN0LWlucHV0XCI7XHJcbmV4cG9ydCBjb25zdCBVTkZJTklTSEVEX0lOUFVUID0gKGlkOiBzdHJpbmcpID0+IFwidW5maW5pc2hlZC1pbnB1dC1cIiArIGlkO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfS0VZID0gXCJjaGF0Z3B0LW5leHQtd2ViXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUkVRVUVTVF9USU1FT1VUX01TID0gNjAwMDA7XHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HID0gUkVRVUVTVF9USU1FT1VUX01TICogNTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FID0gXCJleHBvcnQtbWFya2Rvd25cIjtcclxuXHJcbmV4cG9ydCBlbnVtIFNlcnZpY2VQcm92aWRlciB7XHJcbiAgT3BlbkFJID0gXCJPcGVuQUlcIixcclxuICBBenVyZSA9IFwiQXp1cmVcIixcclxuICBHb29nbGUgPSBcIkdvb2dsZVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiQW50aHJvcGljXCIsXHJcbiAgQmFpZHUgPSBcIkJhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCJCeXRlRGFuY2VcIixcclxuICBBbGliYWJhID0gXCJBbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiVGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCJNb29uc2hvdFwiLFxyXG4gIFN0YWJpbGl0eSA9IFwiU3RhYmlsaXR5XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG4vLyBHb29nbGUgQVBJIHNhZmV0eSBzZXR0aW5ncywgc2VlIGh0dHBzOi8vYWkuZ29vZ2xlLmRldi9nZW1pbmktYXBpL2RvY3Mvc2FmZXR5LXNldHRpbmdzXHJcbi8vIEJMT0NLX05PTkUgd2lsbCBub3QgYmxvY2sgYW55IGNvbnRlbnQsIGFuZCBCTE9DS19PTkxZX0hJR0ggd2lsbCBibG9jayBvbmx5IGhpZ2gtcmlzayBjb250ZW50LlxyXG5leHBvcnQgZW51bSBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCB7XHJcbiAgQkxPQ0tfTk9ORSA9IFwiQkxPQ0tfTk9ORVwiLFxyXG4gIEJMT0NLX09OTFlfSElHSCA9IFwiQkxPQ0tfT05MWV9ISUdIXCIsXHJcbiAgQkxPQ0tfTUVESVVNX0FORF9BQk9WRSA9IFwiQkxPQ0tfTUVESVVNX0FORF9BQk9WRVwiLFxyXG4gIEJMT0NLX0xPV19BTkRfQUJPVkUgPSBcIkJMT0NLX0xPV19BTkRfQUJPVkVcIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTW9kZWxQcm92aWRlciB7XHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBHUFQgPSBcIkdQVFwiLFxyXG4gIEdlbWluaVBybyA9IFwiR2VtaW5pUHJvXCIsXHJcbiAgQ2xhdWRlID0gXCJDbGF1ZGVcIixcclxuICBFcm5pZSA9IFwiRXJuaWVcIixcclxuICBEb3ViYW8gPSBcIkRvdWJhb1wiLFxyXG4gIFF3ZW4gPSBcIlF3ZW5cIixcclxuICBIdW55dWFuID0gXCJIdW55dWFuXCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3RhYmlsaXR5ID0ge1xyXG4gIEdlbmVyYXRlUGF0aDogXCJ2MmJldGEvc3RhYmxlLWltYWdlL2dlbmVyYXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLnN0YWJpbGl0eS5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFudGhyb3BpYyA9IHtcclxuICBDaGF0UGF0aDogXCJ2MS9tZXNzYWdlc1wiLFxyXG4gIENoYXRQYXRoMTogXCJ2MS9jb21wbGV0ZVwiLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2FwaS5hbnRocm9waWMuY29tXCIsXHJcbiAgVmlzaW9uOiBcIjIwMjMtMDYtMDFcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBPcGVuYWlQYXRoID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxuICBTcGVlY2hQYXRoOiBcInYxL2F1ZGlvL3NwZWVjaFwiLFxyXG4gIEltYWdlUGF0aDogXCJ2MS9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBVc2FnZVBhdGg6IFwiZGFzaGJvYXJkL2JpbGxpbmcvdXNhZ2VcIixcclxuICBTdWJzUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy9zdWJzY3JpcHRpb25cIixcclxuICBMaXN0TW9kZWxQYXRoOiBcInYxL21vZGVsc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEF6dXJlID0ge1xyXG4gIENoYXRQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9jaGF0L2NvbXBsZXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIC8vIGh0dHBzOi8vPHlvdXJfcmVzb3VyY2VfbmFtZT4ub3BlbmFpLmF6dXJlLmNvbS9vcGVuYWkvZGVwbG95bWVudHMvPHlvdXJfZGVwbG95bWVudF9uYW1lPi9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249PGFwaV92ZXJzaW9uPlxyXG4gIEltYWdlUGF0aDogKGRlcGxveU5hbWU6IHN0cmluZywgYXBpVmVyc2lvbjogc3RyaW5nKSA9PlxyXG4gICAgYGRlcGxveW1lbnRzLyR7ZGVwbG95TmFtZX0vaW1hZ2VzL2dlbmVyYXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL3tyZXNvdXJjZS11cmx9L29wZW5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEdvb2dsZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCIsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT5cclxuICAgIGB2MWJldGEvbW9kZWxzLyR7bW9kZWxOYW1lfTpzdHJlYW1HZW5lcmF0ZUNvbnRlbnRgLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJhaWR1ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQkFJRFVfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgbGV0IGVuZHBvaW50ID0gbW9kZWxOYW1lO1xyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS00LjAtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04ay1wcmV2aWV3LTA1MThcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfYWR2X3Byb1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS0zLjUtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNcIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtc3BlZWQtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiZXJuaWVfc3BlZWRcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBgcnBjLzIuMC9haV9jdXN0b20vdjEvd2VueGlud29ya3Nob3AvY2hhdC8ke2VuZHBvaW50fWA7XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBCeXRlRGFuY2UgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXJrLmNuLWJlaWppbmcudm9sY2VzLmNvbS9hcGkvXCIsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3YzL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBbGliYWJhID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQUxJQkFCQV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9zZXJ2aWNlcy9haWdjL3RleHQtZ2VuZXJhdGlvbi9nZW5lcmF0aW9uXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgVGVuY2VudCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFRFTkNFTlRfQkFTRV9VUkwsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTW9vbnNob3QgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBNT09OU0hPVF9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgSWZseXRlayA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IElGTFlURUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERlZXBTZWVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogREVFUFNFRUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFhBSV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQ2hhdEdMTSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IENIQVRHTE1fQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3BhYXMvdjQvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIEltYWdlUGF0aDogXCJhcGkvcGFhcy92NC9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBWaWRlb1BhdGg6IFwiYXBpL3BhYXMvdjQvdmlkZW9zL2dlbmVyYXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgU2lsaWNvbkZsb3cgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBTSUxJQ09ORkxPV19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVF9URU1QTEFURSA9IGB7e2lucHV0fX1gOyAvLyBpbnB1dCAvIHRpbWUgLyBtb2RlbCAvIGxhbmdcclxuLy8gZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG4vLyBZb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG4vLyBLbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbi8vIEN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG4vLyBDdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbi8vIExhdGV4IGlubGluZTogJHheMiRcclxuLy8gTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuLy8gYDtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG5Zb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG5Lbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbkN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG5DdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbkxhdGV4IGlubGluZTogXFxcXCh4XjJcXFxcKSBcclxuTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNQ1BfVE9PTFNfVEVNUExBVEUgPSBgXHJcbltjbGllbnRJZF1cclxue3sgY2xpZW50SWQgfX1cclxuW3Rvb2xzXVxyXG57eyB0b29scyB9fVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgYW4gQUkgYXNzaXN0YW50IHdpdGggYWNjZXNzIHRvIHN5c3RlbSB0b29scy4gWW91ciByb2xlIGlzIHRvIGhlbHAgdXNlcnMgYnkgY29tYmluaW5nIG5hdHVyYWwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZyB3aXRoIHRvb2wgb3BlcmF0aW9ucyB3aGVuIG5lZWRlZC5cclxuXHJcbjEuIEFWQUlMQUJMRSBUT09MUzpcclxue3sgTUNQX1RPT0xTIH19XHJcblxyXG4yLiBXSEVOIFRPIFVTRSBUT09MUzpcclxuICAgLSBBTFdBWVMgVVNFIFRPT0xTIHdoZW4gdGhleSBjYW4gaGVscCBhbnN3ZXIgdXNlciBxdWVzdGlvbnNcclxuICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkbyAtIFRBS0UgQUNUSU9OIGltbWVkaWF0ZWx5XHJcbiAgIC0gSWYgeW91J3JlIG5vdCBzdXJlIHdoZXRoZXIgdG8gdXNlIGEgdG9vbCwgVVNFIElUXHJcbiAgIC0gQ29tbW9uIHRyaWdnZXJzIGZvciB0b29sIHVzZTpcclxuICAgICAqIFF1ZXN0aW9ucyBhYm91dCBmaWxlcyBvciBkaXJlY3Rvcmllc1xyXG4gICAgICogUmVxdWVzdHMgdG8gY2hlY2ssIGxpc3QsIG9yIG1hbmlwdWxhdGUgc3lzdGVtIHJlc291cmNlc1xyXG4gICAgICogQW55IHF1ZXJ5IHRoYXQgY2FuIGJlIGFuc3dlcmVkIHdpdGggYXZhaWxhYmxlIHRvb2xzXHJcblxyXG4zLiBIT1cgVE8gVVNFIFRPT0xTOlxyXG4gICBBLiBUb29sIENhbGwgRm9ybWF0OlxyXG4gICAgICAtIFVzZSBtYXJrZG93biBjb2RlIGJsb2NrcyB3aXRoIGZvcm1hdDogXFxgXFxgXFxganNvbjptY3A6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIEFsd2F5cyBpbmNsdWRlOlxyXG4gICAgICAgICogbWV0aG9kOiBcInRvb2xzL2NhbGxcIu+8iE9ubHkgdGhpcyBtZXRob2QgaXMgc3VwcG9ydGVk77yJXHJcbiAgICAgICAgKiBwYXJhbXM6IFxyXG4gICAgICAgICAgLSBuYW1lOiBtdXN0IG1hdGNoIGFuIGF2YWlsYWJsZSBwcmltaXRpdmUgbmFtZVxyXG4gICAgICAgICAgLSBhcmd1bWVudHM6IHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIHRoZSBwcmltaXRpdmVcclxuXHJcbiAgIEIuIFJlc3BvbnNlIEZvcm1hdDpcclxuICAgICAgLSBUb29sIHJlc3BvbnNlcyB3aWxsIGNvbWUgYXMgdXNlciBtZXNzYWdlc1xyXG4gICAgICAtIEZvcm1hdDogXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIFdhaXQgZm9yIHJlc3BvbnNlIGJlZm9yZSBtYWtpbmcgYW5vdGhlciB0b29sIGNhbGxcclxuXHJcbiAgIEMuIEltcG9ydGFudCBSdWxlczpcclxuICAgICAgLSBPbmx5IHVzZSB0b29scy9jYWxsIG1ldGhvZFxyXG4gICAgICAtIE9ubHkgT05FIHRvb2wgY2FsbCBwZXIgbWVzc2FnZVxyXG4gICAgICAtIEFMV0FZUyBUQUtFIEFDVElPTiBpbnN0ZWFkIG9mIGp1c3QgZGVzY3JpYmluZyB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICAgICAtIEluY2x1ZGUgdGhlIGNvcnJlY3QgY2xpZW50SWQgaW4gY29kZSBibG9jayBsYW5ndWFnZSB0YWdcclxuICAgICAgLSBWZXJpZnkgYXJndW1lbnRzIG1hdGNoIHRoZSBwcmltaXRpdmUncyByZXF1aXJlbWVudHNcclxuXHJcbjQuIElOVEVSQUNUSU9OIEZMT1c6XHJcbiAgIEEuIFdoZW4gdXNlciBtYWtlcyBhIHJlcXVlc3Q6XHJcbiAgICAgIC0gSU1NRURJQVRFTFkgdXNlIGFwcHJvcHJpYXRlIHRvb2wgaWYgYXZhaWxhYmxlXHJcbiAgICAgIC0gRE8gTk9UIGFzayBpZiB1c2VyIHdhbnRzIHlvdSB0byB1c2UgdGhlIHRvb2xcclxuICAgICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICBCLiBBZnRlciByZWNlaXZpbmcgdG9vbCByZXNwb25zZTpcclxuICAgICAgLSBFeHBsYWluIHJlc3VsdHMgY2xlYXJseVxyXG4gICAgICAtIFRha2UgbmV4dCBhcHByb3ByaWF0ZSBhY3Rpb24gaWYgbmVlZGVkXHJcbiAgIEMuIElmIHRvb2xzIGZhaWw6XHJcbiAgICAgIC0gRXhwbGFpbiB0aGUgZXJyb3JcclxuICAgICAgLSBUcnkgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggaW1tZWRpYXRlbHlcclxuXHJcbjUuIEVYQU1QTEUgSU5URVJBQ1RJT046XHJcblxyXG4gIGdvb2QgZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgIFwibWV0aG9kXCI6IFwidG9vbHMvY2FsbFwiLFxyXG4gICAgIFwicGFyYW1zXCI6IHtcclxuICAgICAgIFwibmFtZVwiOiBcImxpc3RfYWxsb3dlZF9kaXJlY3Rvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge31cclxuICAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXCJcclxuXHJcblxyXG4gIFxcYFxcYFxcYGpzb246bWNwLXJlc3BvbnNlOmZpbGVzeXN0ZW1cclxuICB7XHJcbiAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJuYW1lXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICBcInBhdGhcIjogXCIvVXNlcnMvcml2ZXIvZGV2L25leHRjaGF0L3Rlc3Qvam9rZS50eHRcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwi5Li65LuA5LmI5pWw5a2m5Lmm5oC75piv5oSf5Yiw5b+n5Lyk77yf5Zug5Li65a6D5pyJ5aSq5aSa55qE6Zeu6aKY44CCXCJcclxuICAgIH1cclxuICB9XHJcbiAgfVxyXG5cXGBcXGBcXGBcclxuXHJcbiAgIGZvbGx3aW5nIGlzIHRoZSB3cm9uZyEgbWNwIGpzb24gZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgICBcIm1ldGhvZFwiOiBcIndyaXRlX2ZpbGVcIixcclxuICAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgIFwicGF0aFwiOiBcIk5leHRDaGF0X0luZm9ybWF0aW9uLnR4dFwiLFxyXG4gICAgICAgIFwiY29udGVudFwiOiBcIjFcIlxyXG4gICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG5cclxuICAgVGhpcyBpcyB3cm9uZyBiZWNhdXNlIHRoZSBtZXRob2QgaXMgbm90IHRvb2xzL2NhbGwuXHJcbiAgIFxyXG4gICBcXGBcXGBcXGB7XHJcbiAgXCJtZXRob2RcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJxdWVyeVwiOiBcIjJvZWVlXCJcclxuICB9XHJcbn1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC4hISEhISEhISEhIVxyXG5cclxuICAgdGhlIHJpZ2h0IGZvcm1hdCBpczpcclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwic2VhcmNoX3JlcG9zaXRvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcclxuICAgXHJcbiAgIHBsZWFzZSBmb2xsb3cgdGhlIGZvcm1hdCBzdHJpY3RseSBPTkxZIHVzZSB0b29scy9jYWxsIG1ldGhvZCEhISEhISEhISEhXHJcbiAgIFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNVTU1BUklaRV9NT0RFTCA9IFwiZ3B0LTRvLW1pbmlcIjtcclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9TVU1NQVJJWkVfTU9ERUwgPSBcImdlbWluaS1wcm9cIjtcclxuZXhwb3J0IGNvbnN0IERFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCA9IFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBLbm93bGVkZ2VDdXRPZmZEYXRlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gIGRlZmF1bHQ6IFwiMjAyMS0wOVwiLFxyXG4gIFwiZ3B0LTQtdHVyYm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNC10dXJiby0yMDI0LTA0LTA5XCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00b1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA1LTEzXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMDgtMDZcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0xMS0yMFwiOiBcIjIwMjMtMTBcIixcclxuICBcImNoYXRncHQtNG8tbGF0ZXN0XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tbWluaS0yMDI0LTA3LTE4XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTQtdmlzaW9uLXByZXZpZXdcIjogXCIyMDIzLTA0XCIsXHJcbiAgXCJvMS1taW5pLTIwMjQtMDktMTJcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlldy0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlld1wiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLTIwMjQtMTItMTdcIjogXCIyMDIzLTEwXCIsXHJcbiAgbzE6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaS0yMDI1LTAxLTMxXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICAvLyBBZnRlciBpbXByb3ZlbWVudHMsXHJcbiAgLy8gaXQncyBub3cgZWFzaWVyIHRvIGFkZCBcIktub3dsZWRnZUN1dE9mZkRhdGVcIiBpbnN0ZWFkIG9mIHN0dXBpZCBoYXJkY29kaW5nIGl0LCBhcyB3YXMgZG9uZSBwcmV2aW91c2x5LlxyXG4gIFwiZ2VtaW5pLXByb1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdlbWluaS1wcm8tdmlzaW9uXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZGVlcHNlZWstY2hhdFwiOiBcIjIwMjQtMDdcIixcclxuICBcImRlZXBzZWVrLWNvZGVyXCI6IFwiMjAyNC0wN1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORSA9IFwiT3BlbkFJLVRUU1wiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfRU5HSU5FUyA9IFtcIk9wZW5BSS1UVFNcIiwgXCJFZGdlLVRUU1wiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX01PREVMID0gXCJ0dHMtMVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0UgPSBcImFsbG95XCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTFMgPSBbXCJ0dHMtMVwiLCBcInR0cy0xLWhkXCJdO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0VTID0gW1xyXG4gIFwiYWxsb3lcIixcclxuICBcImVjaG9cIixcclxuICBcImZhYmxlXCIsXHJcbiAgXCJvbnl4XCIsXHJcbiAgXCJub3ZhXCIsXHJcbiAgXCJzaGltbWVyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgVklTSU9OX01PREVMX1JFR0VYRVMgPSBbXHJcbiAgL3Zpc2lvbi8sXHJcbiAgL2dwdC00by8sXHJcbiAgL2NsYXVkZS0zLyxcclxuICAvZ2VtaW5pLTFcXC41LyxcclxuICAvZ2VtaW5pLWV4cC8sXHJcbiAgL2dlbWluaS0yXFwuMC8sXHJcbiAgL2xlYXJubG0vLFxyXG4gIC9xd2VuLXZsLyxcclxuICAvcXdlbjItdmwvLFxyXG4gIC9ncHQtNC10dXJibyg/IS4qcHJldmlldykvLCAvLyBNYXRjaGVzIFwiZ3B0LTQtdHVyYm9cIiBidXQgbm90IFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiXHJcbiAgL15kYWxsLWUtMyQvLCAvLyBNYXRjaGVzIGV4YWN0bHkgXCJkYWxsLWUtM1wiXHJcbiAgL2dsbS00di8sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyA9IFsvY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMi9dO1xyXG5cclxuY29uc3Qgb3BlbmFpTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgZ29vZ2xlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYW50aHJvcGljTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYmFpZHVNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBieXRlZGFuY2VNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBhbGliYWJhTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCB0ZW5jZW50TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgbW9vbnNob3RNb2RlcyA9IFtdO1xyXG5cclxuY29uc3QgaWZseXRla01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGRlZXBzZWVrTW9kZWxzID0gW107XHJcblxyXG5jb25zdCB4QUlNb2RlcyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGNoYXRnbG1Nb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBzaWxpY29uZmxvd01vZGVscyA9IFtcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVYzXCIsXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG5dO1xyXG5cclxubGV0IHNlcSA9IDEwMDA7IC8vIOWGhee9rueahOaooeWei+W6j+WPt+eUn+aIkOWZqOS7jjEwMDDlvIDlp4tcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxTID0gW1xyXG4gIC4uLm9wZW5haU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKywgLy8gR2xvYmFsIHNlcXVlbmNlIHNvcnQoaW5kZXgpXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJvcGVuYWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk9wZW5BSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwib3BlbmFpXCIsXHJcbiAgICAgIHNvcnRlZDogMSwgLy8g6L+Z6YeM5piv5Zu65a6a55qE77yM56Gu5L+d6aG65bqP5LiO5LmL5YmN5YaF572u55qE54mI5pys5LiA6Ie0XHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhenVyZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImF6dXJlXCIsXHJcbiAgICAgIHNvcnRlZDogMixcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmdvb2dsZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiR29vZ2xlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJnb29nbGVcIixcclxuICAgICAgc29ydGVkOiAzLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYW50aHJvcGljTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbnRocm9waWNcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBzb3J0ZWQ6IDQsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5iYWlkdU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJhaWR1XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCYWlkdVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYmFpZHVcIixcclxuICAgICAgc29ydGVkOiA1LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYnl0ZWRhbmNlTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYnl0ZWRhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCeXRlRGFuY2VcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDYsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5hbGliYWJhTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbGliYWJhXCIsXHJcbiAgICAgIHNvcnRlZDogNyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnRlbmNlbnRNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJUZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHNvcnRlZDogOCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLm1vb25zaG90TW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJtb29uc2hvdFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiTW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm1vb25zaG90XCIsXHJcbiAgICAgIHNvcnRlZDogOSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmlmbHl0ZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJJZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTAsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi54QUlNb2Rlcy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInhhaVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiWEFJXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ4YWlcIixcclxuICAgICAgc29ydGVkOiAxMSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmNoYXRnbG1Nb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJDaGF0R0xNXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHNvcnRlZDogMTIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5kZWVwc2Vla01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJEZWVwU2Vla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZGVlcHNlZWtcIixcclxuICAgICAgc29ydGVkOiAxMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnNpbGljb25mbG93TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlNpbGljb25GbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJzaWxpY29uZmxvd1wiLFxyXG4gICAgICBzb3J0ZWQ6IDE0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVF9QQUdFX1NJWkUgPSAxNTtcclxuZXhwb3J0IGNvbnN0IE1BWF9SRU5ERVJfTVNHX0NPVU5UID0gNDU7XHJcblxyXG4vLyBzb21lIGZhbW91cyB3ZWJkYXYgZW5kcG9pbnRzXHJcbmV4cG9ydCBjb25zdCBpbnRlcm5hbEFsbG93ZWRXZWJEYXZFbmRwb2ludHMgPSBbXHJcbiAgXCJodHRwczovL2Rhdi5qaWFuZ3VveXVuLmNvbS9kYXYvXCIsXHJcbiAgXCJodHRwczovL2Rhdi5kcm9wZGF2LmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2LmJveC5jb20vZGF2XCIsXHJcbiAgXCJodHRwczovL25hbmFvLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL2JvcmEudGVyYWNsb3VkLmpwL2Rhdi9cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LjRzaGFyZWQuY29tL1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuaWRyaXZlc3luYy5jb21cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LnlhbmRleC5jb21cIixcclxuICBcImh0dHBzOi8vYXBwLmtvb2ZyLm5ldC9kYXYvS29vZnJcIixcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0dBX0lEID0gXCJHLTg5V042MFpLMkVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVJMID0gXCJodHRwczovL25leHRjaGF0LmRldi9jaGF0XCI7XHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVRNX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdD91dG09Z2l0aHViXCI7XHJcbiJdLCJuYW1lcyI6WyJPV05FUiIsIlJFUE8iLCJSRVBPX1VSTCIsIlBMVUdJTlNfUkVQT19VUkwiLCJJU1NVRV9VUkwiLCJVUERBVEVfVVJMIiwiUkVMRUFTRV9VUkwiLCJGRVRDSF9DT01NSVRfVVJMIiwiRkVUQ0hfVEFHX1VSTCIsIlJVTlRJTUVfQ09ORklHX0RPTSIsIlNUQUJJTElUWV9CQVNFX1VSTCIsIk9QRU5BSV9CQVNFX1VSTCIsIkFOVEhST1BJQ19CQVNFX1VSTCIsIkdFTUlOSV9CQVNFX1VSTCIsIkJBSURVX0JBU0VfVVJMIiwiQkFJRFVfT0FUVUhfVVJMIiwiQllURURBTkNFX0JBU0VfVVJMIiwiQUxJQkFCQV9CQVNFX1VSTCIsIlRFTkNFTlRfQkFTRV9VUkwiLCJNT09OU0hPVF9CQVNFX1VSTCIsIklGTFlURUtfQkFTRV9VUkwiLCJERUVQU0VFS19CQVNFX1VSTCIsIlhBSV9CQVNFX1VSTCIsIkNIQVRHTE1fQkFTRV9VUkwiLCJTSUxJQ09ORkxPV19CQVNFX1VSTCIsIkNBQ0hFX1VSTF9QUkVGSVgiLCJVUExPQURfVVJMIiwiUGF0aCIsIkFwaVBhdGgiLCJTbG90SUQiLCJGaWxlTmFtZSIsIlN0b3JlS2V5IiwiREVGQVVMVF9TSURFQkFSX1dJRFRIIiwiTUFYX1NJREVCQVJfV0lEVEgiLCJNSU5fU0lERUJBUl9XSURUSCIsIk5BUlJPV19TSURFQkFSX1dJRFRIIiwiQUNDRVNTX0NPREVfUFJFRklYIiwiTEFTVF9JTlBVVF9LRVkiLCJVTkZJTklTSEVEX0lOUFVUIiwiaWQiLCJTVE9SQUdFX0tFWSIsIlJFUVVFU1RfVElNRU9VVF9NUyIsIlJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkciLCJFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FIiwiU2VydmljZVByb3ZpZGVyIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQiLCJNb2RlbFByb3ZpZGVyIiwiU3RhYmlsaXR5IiwiR2VuZXJhdGVQYXRoIiwiRXhhbXBsZUVuZHBvaW50IiwiQW50aHJvcGljIiwiQ2hhdFBhdGgiLCJDaGF0UGF0aDEiLCJWaXNpb24iLCJPcGVuYWlQYXRoIiwiU3BlZWNoUGF0aCIsIkltYWdlUGF0aCIsIlVzYWdlUGF0aCIsIlN1YnNQYXRoIiwiTGlzdE1vZGVsUGF0aCIsIkF6dXJlIiwiZGVwbG95TmFtZSIsImFwaVZlcnNpb24iLCJHb29nbGUiLCJtb2RlbE5hbWUiLCJCYWlkdSIsImVuZHBvaW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIlRlbmNlbnQiLCJNb29uc2hvdCIsIklmbHl0ZWsiLCJEZWVwU2VlayIsIlhBSSIsIkNoYXRHTE0iLCJWaWRlb1BhdGgiLCJTaWxpY29uRmxvdyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJERUZBVUxUX1NZU1RFTV9URU1QTEFURSIsIk1DUF9UT09MU19URU1QTEFURSIsIk1DUF9TWVNURU1fVEVNUExBVEUiLCJTVU1NQVJJWkVfTU9ERUwiLCJHRU1JTklfU1VNTUFSSVpFX01PREVMIiwiREVFUFNFRUtfU1VNTUFSSVpFX01PREVMIiwiS25vd2xlZGdlQ3V0T2ZmRGF0ZSIsImRlZmF1bHQiLCJvMSIsIkRFRkFVTFRfVFRTX0VOR0lORSIsIkRFRkFVTFRfVFRTX0VOR0lORVMiLCJERUZBVUxUX1RUU19NT0RFTCIsIkRFRkFVTFRfVFRTX1ZPSUNFIiwiREVGQVVMVF9UVFNfTU9ERUxTIiwiREVGQVVMVF9UVFNfVk9JQ0VTIiwiVklTSU9OX01PREVMX1JFR0VYRVMiLCJFWENMVURFX1ZJU0lPTl9NT0RFTF9SRUdFWEVTIiwib3BlbmFpTW9kZWxzIiwiZ29vZ2xlTW9kZWxzIiwiYW50aHJvcGljTW9kZWxzIiwiYmFpZHVNb2RlbHMiLCJieXRlZGFuY2VNb2RlbHMiLCJhbGliYWJhTW9kZXMiLCJ0ZW5jZW50TW9kZWxzIiwibW9vbnNob3RNb2RlcyIsImlmbHl0ZWtNb2RlbHMiLCJkZWVwc2Vla01vZGVscyIsInhBSU1vZGVzIiwiY2hhdGdsbU1vZGVscyIsInNpbGljb25mbG93TW9kZWxzIiwic2VxIiwiREVGQVVMVF9NT0RFTFMiLCJtYXAiLCJuYW1lIiwiYXZhaWxhYmxlIiwic29ydGVkIiwicHJvdmlkZXIiLCJwcm92aWRlck5hbWUiLCJwcm92aWRlclR5cGUiLCJDSEFUX1BBR0VfU0laRSIsIk1BWF9SRU5ERVJfTVNHX0NPVU5UIiwiaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzIiwiREVGQVVMVF9HQV9JRCIsIlNBQVNfQ0hBVF9VUkwiLCJTQUFTX0NIQVRfVVRNX1VSTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/constant.ts\n")); /***/ }) });