From f9cc7a9e63d86f169807b6c48514ba9487e546f9 Mon Sep 17 00:00:00 2001 From: Docker7530 <121306237+Docker7530@users.noreply.github.com> Date: Wed, 4 Mar 2026 22:03:09 +0800 Subject: [PATCH] 1772632984 --- .../plugins/recent-files-obsidian/data.json | 44 +++++----- .obsidian/workspace.json | 80 +++++------------- 000-inbox/20260304170795.md | 22 +++++ 000-inbox/IBS 智能体具体落实技术方案.md | 32 +++++++ 000-inbox/MCP Prompt.md | 24 ++++++ attachment/image-20260304153545122.png | Bin 0 -> 32377 bytes calendar/diary/2026-03-03.md | 20 +++++ calendar/diary/2026-03-04.md | 31 +++++++ .../Drawing 2026-03-03 15.53.34.excalidraw.md | 16 ++-- 9 files changed, 185 insertions(+), 84 deletions(-) create mode 100644 000-inbox/20260304170795.md create mode 100644 000-inbox/MCP Prompt.md create mode 100644 attachment/image-20260304153545122.png create mode 100644 calendar/diary/2026-03-04.md diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index fd03531..ab6a37b 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -8,6 +8,30 @@ "basename": "IBS 智能体具体落实技术方案", "path": "000-inbox/IBS 智能体具体落实技术方案.md" }, + { + "basename": "20260304170795", + "path": "000-Inbox/20260304170795.md" + }, + { + "basename": "服务器-香港", + "path": "personal/服务器-香港.md" + }, + { + "basename": "MCP Prompt", + "path": "000-inbox/MCP Prompt.md" + }, + { + "basename": "This is the prompt", + "path": "resource/ai/This is the prompt.md" + }, + { + "basename": "结构化(Prompt)", + "path": "resource/ai/结构化(Prompt).md" + }, + { + "basename": "20260304113117", + "path": "000-Inbox/20260304113117.md" + }, { "basename": "Drawing 2026-03-03 15.49.35.excalidraw", "path": "excalidraw/Drawing 2026-03-03 15.49.35.excalidraw.md" @@ -128,18 +152,10 @@ "basename": "20260301201841", "path": "000-Inbox/20260301201841.md" }, - { - "basename": "This is the prompt", - "path": "resource/ai/This is the prompt.md" - }, { "basename": "核心策略", "path": "resource/ai/核心策略.md" }, - { - "basename": "结构化(Prompt)", - "path": "resource/ai/结构化(Prompt).md" - }, { "basename": "PEPE", "path": "finance/加密/学习记录/各类货币/PEPE.md" @@ -148,10 +164,6 @@ "basename": "Rime 快捷键", "path": "resource/工具/Rime 快捷键.md" }, - { - "basename": "服务器-香港", - "path": "personal/服务器-香港.md" - }, { "basename": "Ubuntu 24.04 LTS ELK 8 安装指南", "path": "resource/组件/Ubuntu 24.04 LTS ELK 8 安装指南.md" @@ -187,14 +199,6 @@ { "basename": "Claude Code 提示词", "path": "resource/配置/Claude Code 提示词.md" - }, - { - "basename": "Rime YAML Custom Patch 语法笔记", - "path": "resource/工具/Rime YAML Custom Patch 语法笔记.md" - }, - { - "basename": "Rime 小狼毫", - "path": "resource/工具/Rime 小狼毫.md" } ], "omittedPaths": [ diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index da7c244..37209c6 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,55 +4,17 @@ "type": "split", "children": [ { - "id": "9ed87b9b038a048d", + "id": "ced849dd7af9aa1d", "type": "tabs", "children": [ { - "id": "502d6c8a9ccc885c", + "id": "4e2347cdc2632605", "type": "leaf", - "pinned": true, "state": { - "type": "markdown", - "state": { - "file": "calendar/diary/2026-03-03.md", - "mode": "source", - "source": false, - "backlinks": false - }, - "pinned": true, + "type": "empty", + "state": {}, "icon": "lucide-file", - "title": "2026-03-03" - } - }, - { - "id": "e9178067573e272f", - "type": "leaf", - "pinned": true, - "state": { - "type": "markdown", - "state": { - "file": "000-inbox/IBS 智能体具体落实技术方案.md", - "mode": "source", - "source": false, - "backlinks": false - }, - "pinned": true, - "icon": "lucide-file", - "title": "IBS 智能体具体落实技术方案" - } - }, - { - "id": "31ad2a4e229d1a8b", - "type": "leaf", - "pinned": true, - "state": { - "type": "excalidraw", - "state": { - "file": "excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md" - }, - "pinned": true, - "icon": "excalidraw-icon", - "title": "Drawing 2026-03-03 15.53.34.excalidraw" + "title": "新标签页" } } ] @@ -88,7 +50,7 @@ "state": { "type": "search", "state": { - "query": "E3#Mpkr2", + "query": "file: 香港", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -130,7 +92,7 @@ } ], "direction": "horizontal", - "width": 347.5 + "width": 289.5 }, "right": { "id": "ca733f6d5936ae40", @@ -162,7 +124,6 @@ "state": { "type": "backlink", "state": { - "file": "calendar/diary/2026-03-03.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -172,7 +133,7 @@ "unlinkedCollapsed": false }, "icon": "links-coming-in", - "title": "2026-03-03 的反向链接列表" + "title": "反向链接" } }, { @@ -267,17 +228,26 @@ "oz-clear-unused-images:Clear Unused Images": false } }, - "active": "502d6c8a9ccc885c", + "active": "4e2347cdc2632605", "lastOpenFiles": [ + "excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md", + "000-inbox/IBS 智能体具体落实技术方案.md", + "calendar/diary/2026-03-04.md", + "calendar/diary/2026-03-03.md", + "000-Inbox/20260304170795.md", + "000-inbox/20260304170795.md", + "personal/服务器-香港.md", + "attachment/image-20260304153545122.png", + "000-inbox/MCP Prompt.md", + "resource/ai/This is the prompt.md", + "resource/ai/结构化(Prompt).md", + "000-Inbox/20260304113117.md", "attachment/images-uuid/dd32291e71724c52a904aa80ce1fc59a.png", "attachment/images-uuid/e9d6d33cd6a44bd0ab62b5999e04c7be.png", "000-inbox/20260303154975.md", "000-inbox/20260302225154.md", "attachment/image-20260302225213302.png", "attachment/Pasted image 20260302225154.png", - "calendar/diary/2026-03-03.md", - "excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md", - "000-inbox/IBS 智能体具体落实技术方案.md", "excalidraw/Drawing 2026-03-03 15.49.35.excalidraw.md", "000-Inbox/20260303154975.md", "000-Inbox/20260303153994.md", @@ -291,14 +261,7 @@ "000-inbox/20260302212565.md", "resource/常用命令.md", "resource/mermaid/IBS 智能体-v4.md", - "resource/mermaid/IBS 智能体-v5.md", - "resource/mermaid/IBS 智能体-v3.md", - "resource/mermaid/IBS 智能体-v2.md", - "resource/mermaid/IBS 智能体-v1.md", - "000-inbox/v3.md", "resource/mermaid", - "calendar/diary/2026-03-02.md", - "000-Inbox/20260302225154.md", "attachment/images-uuid/1b6c8b1c84064481ac7c72347ba8e259.png", "attachment/images-uuid/b8817fb44bcf4c4c938e9492dc554bcd.png", "attachment/image-20260302140231857.png", @@ -308,7 +271,6 @@ "resource/工具/obsidian/scripts/新建文本文档.txt", "resource/工具/obsidian/scripts/openTerminal.js", "resource/工具/obsidian/scripts", - "attachment/Pasted image 20260228121002.png", "resource/工具", "personal/家人/小杨-年报-AI", "未命名", diff --git a/000-inbox/20260304170795.md b/000-inbox/20260304170795.md new file mode 100644 index 0000000..4c6d692 --- /dev/null +++ b/000-inbox/20260304170795.md @@ -0,0 +1,22 @@ +``` +[1Panel 2026-03-04 09:40:50 install Log]: =================感谢您的耐心等待,安装已完成================== +[1Panel 2026-03-04 09:40:50 install Log]: +[1Panel 2026-03-04 09:40:50 install Log]: 请使用您的浏览器访问面板: +[1Panel 2026-03-04 09:40:50 install Log]: 外部地址: http://198.176.56.18:24848/18c5457974 +[1Panel 2026-03-04 09:40:50 install Log]: 内部地址: http://192.168.126.100:24848/18c5457974 +[1Panel 2026-03-04 09:40:50 install Log]: 面板用户: b9301b0ea9 +[1Panel 2026-03-04 09:40:50 install Log]: 面板密码: 58a50c32f6 +[1Panel 2026-03-04 09:40:50 install Log]: +[1Panel 2026-03-04 09:40:50 install Log]: 官方网站: https://1panel.cn +[1Panel 2026-03-04 09:40:50 install Log]: 项目文档: https://1panel.cn/docs +[1Panel 2026-03-04 09:40:50 install Log]: 代码仓库: https://github.com/1Panel-dev/1Panel +[1Panel 2026-03-04 09:40:50 install Log]: 前往 1Panel 官方论坛获取帮助: https://bbs.fit2cloud.com/c/1p/7 +[1Panel 2026-03-04 09:40:50 install Log]: +[1Panel 2026-03-04 09:40:50 install Log]: 如果您使用的是云服务器,请在安全组中打开端口 24848 +[1Panel 2026-03-04 09:40:50 install Log]: +[1Panel 2026-03-04 09:40:51 install Log]: 为了您的服务器安全,离开此屏幕后您将无法再次看到您的密码,请记住您的密码。 +[1Panel 2026-03-04 09:40:51 install Log]: +[1Panel 2026-03-04 09:40:51 install Log]: ================================================================ + + +``` diff --git a/000-inbox/IBS 智能体具体落实技术方案.md b/000-inbox/IBS 智能体具体落实技术方案.md index a5703ff..55637a9 100644 --- a/000-inbox/IBS 智能体具体落实技术方案.md +++ b/000-inbox/IBS 智能体具体落实技术方案.md @@ -19,6 +19,8 @@ RAGFlow v0.18.0 2025-04-23(知识库) # 概念 +bge 向量模型。 + Function Calling / Tool Call / Tool Calling [LangGraph](https://docs.langchain.com/oss/python/langgraph/overview) 个人理解为拖拽 @@ -68,3 +70,33 @@ AI 平台颁发系统级别 Token 限制你能用的工具。 也就是比如你在我们平台注册了你的 tool,然后调用我们 AI 接口,需要 MCP server Token 和 用户 Token。 如果只用户 Token,那么是不是就需要一个 令牌置换 方案。 + +你有什么工具? + +我想知道企业A的域名列表。 + +我想查询 企业A a.com 近 5 天的峰值。 + +# 备注 + +RAGFlow 版本升级至少 v0.20.0。(注意一下是否可以开启自身当作 MCP 服务的功能。) + +dify 的整体使用流程流畅很多。 + +后期 Tool 多了,我们是否提供 MCP 注册中心。 + +Tool 代码的封装。 + +dify API 的研究。 + +DeepSeek-R1-Distill-Qwen-32B 工具调用。 + +![](../attachment/image-20260304153545122.png) + +发指令 --》ibs-ai --> RAGflow --> 智能决策 a 工具 b 知识库 + +需要 MCP server Token 和 用户 Token。 + +后期 Tool 多了,我们是否提供 MCP 注册中心。 + +DeepSeek-R1-Distill-Qwen-32B 工具调用。 diff --git a/000-inbox/MCP Prompt.md b/000-inbox/MCP Prompt.md new file mode 100644 index 0000000..1be33b4 --- /dev/null +++ b/000-inbox/MCP Prompt.md @@ -0,0 +1,24 @@ +给我增加两个我们项目的 demo 工具。为我的查询峰值智能体做测试准备 + +1. 根据企业 ID 获取 企业的所属域名。(入参是企业 ID,响应 10 个域名, a.com, b.com… 固定十个。)但现在企业 ID 只有 企业A ,其他 企业 ID 返回无域名。 +2. 根据企业 ID 和 域名 获取域名近 5 天的峰值带宽。(峰值带宽可以随机 mock)如果用户无域名 ID 输入返回需要输入域名。 + +现在我有一个 ibs-mcp-server : + +queryDomainPeakBandwidth + +根据企业 ID 和域名查询该域名近 5 天的峰值带宽数据(单位:Mbps) + +queryEnterpriseDomains + +根据企业 ID 查询该企业所属的域名列表 + +queryWeather + +查询指定城市在指定日期的天气预报,返回天气状况、温度、湿度和风力信息 + +你能给我生成一个可以导入 ragflow 的 json agent 么?让我可以直接使用。 + +智能体的工作就是可以查训用户的域名,如果用户没有输入域名可以用 queryEnterpriseDomains 给用户提示。 + +生成到根目录。注意学习相关语法。 diff --git a/attachment/image-20260304153545122.png b/attachment/image-20260304153545122.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f53b7a73a9d498c34a7f6bf47827aef3aeafec GIT binary patch literal 32377 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 Uj7#7z<-f7HfcT~S{LKgd3*7jxQvd(} literal 0 HcmV?d00001 diff --git a/calendar/diary/2026-03-03.md b/calendar/diary/2026-03-03.md index acc429a..fe1003b 100644 --- a/calendar/diary/2026-03-03.md +++ b/calendar/diary/2026-03-03.md @@ -8,6 +8,26 @@ # 日志 +我现在需要开发一个 MCP 服务器,技术栈选择如下: + +1. Spring Boot +2. JDK 21 +3. Spring AI(版本暂定为 1.1.2) + +这个服务是专门做 MCP 服务的,请帮我把整个 MCP 服务的标准化框架搭建出来。关于开发细节,有以下几点要求: + +1. 通信协议:使用 Streamable HTTP,不要使用传统的 SSE。 +2. 开发模式:这是一个服务端的 MCP,请务必学习 Spring AI 最新的官方文档 1.1.2,使用最新的相关注解、实现方案以及标准化流程。 +3. 功能演示:请先帮我实现一个查询天气预报的 Tool 作为 Demo。 + (a) 接口部分:你可以找一个能调通的真实接口,或者直接 Mock 一个响应数据。 + (b) 入参要求:需要支持客户端传入参数(例如:查询某一天)。 + +因为我是项目刚起步,请注意整体项目的标准化。 + # 总结 +日全食。 + 今天元宵节,公司早下班。 + +晚上回家出了 MCP 服务器的 demo。 diff --git a/calendar/diary/2026-03-04.md b/calendar/diary/2026-03-04.md new file mode 100644 index 0000000..2b4eba3 --- /dev/null +++ b/calendar/diary/2026-03-04.md @@ -0,0 +1,31 @@ +# 任务 + +- [x] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。(李春良 0.5) +- [x] 项目:IBS V7.19.0 版本一轮需求评审。(赵普明 1) +- [x] 项目:IBS 智能体具体落实技术方案研讨。(李春良 2) +- [x] 项目:IBS 智能体具体落实技术方案调研。(李春良 2) +- [x] 项目:提交 AI 复用 代码测试。(李春良 0.5) + +# 日志 + +ai编写 + +Add NRWLXT-30547 BYAC CSPID-2026-00A7EK AI 优化 域名配置需求工单重构,提升用户操作便捷性 + +代码复用 + +Add NRWLXT-30547 BYRC CLID-00SXHK 代码复用 域名配置需求工单重构,提升用户操作便捷性 + +我们现在有 AI 优化和代码复用两个考核, + +AI 40% + +复用 15% + +为了规避影响业务,我们会把这两部分代码放到项目的 txt 中。 + +请问每自己写 100 行代码。 + +要多少 AI 优化输出和复用输出。 + +# 总结 diff --git a/excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md b/excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md index ddb65bf..d9e4b28 100644 --- a/excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md +++ b/excalidraw/Drawing 2026-03-03 15.53.34.excalidraw.md @@ -20,14 +20,20 @@ N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyh FlW+IsgYYeSl7XXk8YBGHmSByAoSdW5jhIAORe0EhOT74/GZo9X7+/GLqQIQjKaS3HirJ6jd4JY6rcYQqHHAHWZTBbgJAHMKCkNgAawQAGE2Pg2KRKtjrMw4LhAjk2mVNLhsLjlDihBxiESSWSJBSOFSadkoPTIAAzQj4fDNWBoiSCDwiiBYnH4gDq10k3E27SV2LxCGlMFl6HlFQBbJBHHCeTQSK2EDY1Owah2tpeANZwjgAEliDbUPkALoA0Xk -LK+7gcISSgGEDlYSq4BKKtkcq3Mf1RmP2sIIYjcVbJRYzCYLO06xgsdhcNCJVYAyusTgAOU4YluCUOh3eseYABEMlA89xRQQwgDNMIOfVMkLM9H8AChHBiLgh/nbYtFmdwXD7qMzgCiBxcZGF0e2Mzh2hsUIEJiolAhP6IIgOXHlIrxcEIxIfsRFmOBBRmSUVkh4BBVhAosEAQUVxmwBIEOwbBNGQ1ZNBmcZkmIPZcEVZh3HEAMtjAct2mOLZg3t +LK+7gcISSgGEDlYSq4BKKtkcq3Mf1RmP2sIIYjcVbJRYzCYLO06xgsdhcNCJVYAyusTgAOU4YluCUOh3eseYABEMlA89xRQQwgDNMIOfVMkL/UGAUI4MRcEP87bFoszuC4fdRmcAUQOLjI9H8Ie2Mzh2hsUIEJiolAhP6IIgOXHlIrxcEIxIfsRFmOBBRmSUVkh4BBVhAosEAQUVxmwBIEOwbBNGQ1ZNBmcZkmIPZcEVZh3HEAMtjAct2mOLZg3t -bAcTgM9JSKABfcBqMgXA4DgaU12IkoOkkWdKiIEFhQGBhCAQCgACEmRZVNOWJUlKgAYlFNT1PpCBsBEWkoG9Id9GlFVCUUnl0GUoDLP6IotJ0oV9MyGTmU9dkFO5clyH5aldM07TSF0hz9AAMQlKUZWIpViTNGy/ICgyjP1dViBuWsxNi+z4r1fFDWNSKFTSuyckCgAlYRLWtW4Cv8jLMgAeSdF0OwxGLCr0gygs4KAgtwfQJVdVBzha6qivazrm +bAcTgU9sx1SRQgAFSwKAABk4xPNBR3wMIigAXwGEoygqCQOEWQQ/lWAArRVOmI6B2MVIY0HGED4h4cZAPGBJi1WD5Rnre1XVQcZfm0e4HgsnhjNGY5Tg0gErmIG40HuAFJCBEFhVrc57RRY0MRzPV8S5UlKgAYiA2L+ntRlmU9dlOWJSLeXIflqVpYUQwlKUZSU018wfFUEHVNzNVrUr9UNY0lWJM17QtSR039cjIEdJkXQ7EKdWSn0/QKaidVDX -kIIxiMSKq4syAAVLAoAAQWEmt0GCUVRKG2bDKiUhlv8tgKAE3AN1QLNF22mr9FqDklsO46QjOiAaRxKgZuu+63rm+AIvk3zWsCoKwwQUrjQusTCJxSUAA1uCw44Ukh2jiXwABNbhRlGJJkmSKDHkGsojDYAxuD4yB6AIO9bmYj6RsyUrXPTF9/rE1kSHGyatWasp2eIaUEHotBCcgPmAFk2GIBBbtwTRgjO0d8HHGy+a5JS0HJiApOJZ7SGURkAA +Bw3XVAs3Pe042IBMJFwY4UynYg2oYmadVzSb4WORZ7h4faTIrJgmxrcyG1O6tWw4dsPMWF4S2MvqxP7Qdr1QW97wS1aZyyHJMzPRdl1XD69q3PZxj0vaoIvK9Jr48d7SHTA/PQFNKDY1HKi/TgoGaQgjGIxIQzxgAxcaJTMgKdRRqAAEEiGUc6IGCUVcvtSsoHMAhGeBFmoEdRU9ByXA4yYX8pqB+1SWBOMCCxtGIEVXAhEFgAlcJCeIr7D3FgAJ -oeGORZqF4E2zeN03UBxgBKRVioQZRoxpSo9cNnhxgxXgvct32bZSe3aaunIEvxeqoGredszKUMetB7IpdID8yftbJZfl7hb3vGiiCF1Bs4BDh46z0g7wBYQoGPYjC/tXpSHxUhmxLm8y5znV68bmW5evAu2+Dso7AAKwQbBcmaYu4AlqXu8ztBFeVsomUjxg5pJ/BU51ToIrCYIx+rRVtKxAwfq6NAIftEkrwVsd29jnFDIyffOBHW+j1CZb99X9 +HzQVteIabKZjmEVrjjxHMcECEkTZsmiBmhgABxBJsCgWShAU+AlLp1TbiLA5klhT51jhbTYdM7gLOSKy7JeZIw7OGY4RcjVuE8+1vOBY3eDNyAguIl6BDCwk0p5dAYoQOLFUSllU1S7lyUygUcq/fK6qKxqStCsqKvc3gavxHvKmKla/Fa61bgBLrnVgXqPTZQb5xGsoxomjbY3jNT0FwHgp7TWe0GmzFYMm1YZhmY49lmUZLqrTg46fs6bru1Bj -eGPwAfIEcMwDOJkciLTFtkIQr8lYIHAExfgEBvzhDJixJiQA +lLe4IUebVXoDmCGubgusfopT+nOHe9olwrhARuCGWEdJwj0nDfECM7YAkDhIDGFBFY41JjkAmRMtRlwgKKcmlN8DUywexPmzNKhsw5idUg3N3D0IFkLAEIsoji1IJLc+MtSByw4ArFSODkRqzYJrVgJCbykDvHrK0ht85o2OKbLyrF2LWx4qgRG9tSiCXACNCAuA4BwGlKDbgoloDeSyIw1R9IGCEAQBQAAQkyJuq0IrVwgFFUUATAlOOwCIHK3o + +hz6GlGVHx0U4pAWCaEoU4TMgeKSs3GJGVKTZSFAk0gYSIlk27oVCefdcn5MyFE/UQ8qojyKBAEJeSkkRMqWPYpcpSkDHqYknIyT9Dq2EJaU+X9OkNPKfoAA8k6HqboXpdMaT0gplD9BU24GbOZYyyZ42IcTWZoymmZEVhwxhcFmGQD2QsipURWH0zyWwCg3lcCTUEWUc5UBem1A5DcnE9yQjOxpN8sp+z9BfLuSxf2lRm6AoufoMmYYED9ONM8gQ + +tFiT4AABrcHTqMFIZxv48HeLMCyx1kU4klAATW4BMJIh0ZiJAsq8ZI6wZidKMGwAw1jOYEDvLcZ4rw5gzAdnU15vT+kpXWhISFnTWQkG2aQqVwjiDSgQPRNAazpXEAALJsHmh83AmhggYP4t9Mo6qMmoFEpANxxJnakGUIyAAFDwPa1BeDOtdYsF1SRkgAEpFSa2UNGGkEK7W4Edag3g4btIYlQF631gqXndPxhXSZ3NOCA0YmKOFmt4zCI4J+NA + +FqMCiP1R9MBOpsBEBVZ9BRxqyiiPsfIxRMs1ZHh1jWgEvRSD4lIM2cabam06k7d23VJbJpfXjZ1TQskEBe2YM0URcAtU6uLQa22RrOlMm5owFibL8ActpuCuUGQvbVmFs+QW+gwVdDPtLHUJJ4ZrqRqNHEkTj2pvOvow8oQGYnu3bujaE6ICOGYHq4IRIcjsQ1dkX2vE7bgGEnQb84RrFGMEkAA= ``` %% \ No newline at end of file