bytefun-ai-mcp
Version:
ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发
111 lines (96 loc) • 18.2 kB
JavaScript
export const productDesignPromptTemplate = `# 你是专业的APP或者网站产品专家和应用架构专家,现在需要你根据用户描述,理解核心思路,严格按步骤执行,完成'.bytefun/prd-design-config.json'
## 核心思路
- APP或者网站有N个功能模块组成,一个功能模块由X个页面组成。
- 功能模块之间是解耦的
- 描述APP或者网站业务逻辑流程由两种流程图来描述:
1、功能模块业务逻辑流程图
2、页面业务逻辑流程图
- 一个APP或者网站有一个功能模块业务逻辑流程图
- 一个功能模块有一个页面业务逻辑流程图,也就是说如果一个APP或者网站有15个功能模块,那就有对应的15个页面业务逻辑流程图
- **只需思考APP或者网站前端的功能模块** 只需思考APP或者网站前端的功能模块,后端的功能管理模块绝对不需要理会
## **Mermaid语法规则**
### 1、页面使用方括号[]来表示页面名字,功能模块使用双括号的圆形节点来表示模块
- ✅ A[显示启动页]
- ✅ I((消息通知模块));
- ❌ A[消息通知模块];
- ❌ I[消息通知模块];
### 2、方括号内容规则:
- ✅ 正确:A[正常文本]
- ❌ 错误:A[文本(括号)]
- ✅ 修复:A["文本(括号)"]
- 核心原因:Mermaid解析器将圆括号 () 视为特殊语法元素,在方括号 [] 内部使用会导致解析冲突。
- 正确写法例子:
- A[显示启动页] // 省略掉页面名字
- A[显示启动页 splash] // 使用空格
- A[显示启动页-splash] // 使用连字符
- A["显示启动页(splash)"] // 使用双引号
### 3、禁止使用双引号,必须使用单引号或直接去掉双引号
- ✅ 正确:A[文本]
- ✅ 修复:A['文本(括号)']
- ❌ 错误:A["文本(括号)"]
- ✅ A -- 点击联系买家 --> B[消息页面];
- ❌ A -- 点击"联系买家" --> B[消息页面];
- 核心原因:Mermaid解析器双引号会出错。
### 4、功能模块的页面交互操作如需跳转到其他功能模块,必须使用双括号的圆形节点来表示模块
- ✅ F -- "联系买家" --> I((消息通知模块));
- ❌ F -- "联系买家" --> I[消息通知模块];
### 5、无论是节点内的文本还是连接线上的文本绝对不能有空格,必须直接去掉空格,否则会出现非常严重错误。
- ✅ 正确:A[文本]
- ❌ 错误:A[ 文本 ]
- ✅ 修复:A[文本]
- ❌ C{1. 文字};
- ✅ 修复:C{1.文字};
- ❌ "1. 获取验证码";
- ✅ 修复:"1.获取验证码";
### 6、禁止写任何样式的代码
- ❌ 错误:style A fill:#e1f5fe
- ❌ 错误:*** fill:***
### 7、禁止写以下字符,否则会出错,这些字符是Mermaid语法解析器不支持的:@
## 页面默认业务逻辑
- **如用户没在描述中明确指明页面的业务逻辑,需要严格遵守以下默认的页面业务逻辑说明**
- 不存在权限请求页面,所有权限请求必须使用弹框的交互方式,而且是遵循"即用即取"(Just-in-Time)的原则
- 绝对不会有任何关于隐私协议/服务条款页的逻辑
- 闪屏页
- 如果有闪屏页,那么启动后第一个页面必须是闪屏页,闪屏页不会有跳到登录页的路径,只有跳到引导页或首页的路径
- 闪屏页不做任何业务逻辑,不请求任何网络接口,只需判断是否首次启动,如果首次启动就x秒后跳到引导页,如果不是首次启动就跳到首页
- ❌ 闪屏页绝对禁止做的事情:
- 请求任何网络接口
- 请求版本更新API接口
- 跳到隐私协议/服务条款页
- 弹出任何其他弹框
- 任何权限请求
- 引导页
= 引导页告页不会有跳到登录页的路径,只有跳到首页的路径
- 不会有任何网络请求、业务逻辑,引导页仅仅是一个展示静态数据的页面
- 不需要自动轮播
- 一般整个页面只有一个轮播组件和部一个按钮,然后滑动到最后一页的时候出现一个立即体验的按钮,点击立即体验按钮跳到首页
- 广告页 (如果有广告页)
= 广告页不会有跳到登录页的路径,只有跳到首页的路径
- 广告页的数据不允许在闪屏页请求,应该在进入首页后请求,并且使用本地持久化将广告API接口的数据储存起来,等下一次启动闪屏页时跳到广告页面后,才从本地持久化中获取数据并初始化广告页显示和交互
- 广告页的数据必须是在进入首页后才发起请求,绝对不能在闪屏页发起请求,并且广告页的数据只显示一次,绝对不能重复显示,如果本地持久化根本没有广告页的数据,那不需要跳转和显示广告页
- 首页
- 进入首页一般需要请求app版本更新API接口,判断是否需要更新,如果需要更新就弹出更新弹框,如果不需要那就不做任何事情
- 进入首页还要读取本地数据:全局配置数据。一般用于功能开关、ABTest配置、广告配置(如果有广告的话)等,读取完毕后,还要网络请求一次全局配置API,将全局配置数据更新到本地数据中
- 一般是有一个底部功能导航栏,点击底部功能导航栏的图标会切换到对应的tab页面,tab页面一般有多个,每个tab页面有不同的业务逻辑
- 如果用户输入的需求描述没有明确指定首页底部功能导航栏有哪些功能,那么你必须思考首页底部功能导航栏有哪些功能item项
- 登录页
- 登录页是用户点击需要登录才能访问的页面时,才会跳转到的页面,而不是从闪屏页判断是否需要登录然后跳进去
## 严格按照以下步骤完成'.bytefun/prd-design-config.json'的编写,绝对不能跳过任何步骤,绝对不能省略任何步骤,绝对不能乱序执行步骤,必须全部步骤按照顺序执行完毕
### 第一步:完成简单描述该项目的背景的描写
- 1、分析用户痛点,分析项目的目标用户,分析项目的背景
- 2、完成'.bytefun/prd-design-config.json'的项目背景projectBackground的json内容
- 3、输出完成效果:项目的背景的描写已经完成,继续执行下一步
### 第二步:思考和编写'功能模块列表与需要描述'functionalRequirements的json内容
- 1、移动端一般需要启动功能模块,PC端一般不需要启动功能模块
- 2、启动模块必须要与账号模块分开,不得合并为启动与账号模块
- 3、输出完成效果:功能模块表格已经列出,继续执行下一步
### 第三步:你刚刚编写的'功能模块列表与需要描述'functionalRequirements有缺漏,请补全漏掉的功能模块
- 1、完成'.bytefun/prd-design-config.json'的漏掉的功能模块的补全
- 2、输出完成效果:功能模块表格已经补全,继续执行下一步
- 3、如果用户没有指定广告页,那么默认PC端类不允许出现广告页,默认移动端类如果randomNumberA < 20 那就需要广告页,如果 randomNumberA >= 20 那就不要广告页
### 第四步:设计'功能模块业务逻辑流程图'字段businessLogicFlow的json内容
- 1、结合功能模块列表,初步分析功能模块流程
- 2、使用Mermaid语法绘制完整完善的功能模块流程图,节点不能设置背景色。
- 3、输出完成效果:功能模块的流程图已经完成,继续执行下一步
`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvRGVzaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb0Rlc2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZHMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuJPkuJrnmoRBUFDmiJbogIXnvZHnq5nkuqflk4HkuJPlrrblkozlupTnlKjmnrbmnoTkuJPlrrbvvIznjrDlnKjpnIDopoHkvaDmoLnmja7nlKjmiLfmj4/ov7DvvIznkIbop6PmoLjlv4PmgJ3ot6/vvIzkuKXmoLzmjInmraXpqqTmiafooYzvvIzlrozmiJAnLmJ5dGVmdW4vcHJkLWRlc2lnbi1jb25maWcuanNvbidcblxuIyMg5qC45b+D5oCd6LevXG4tIEFQUOaIluiAhee9keermeaciU7kuKrlip/og73mqKHlnZfnu4TmiJDvvIzkuIDkuKrlip/og73mqKHlnZfnlLFY5Liq6aG16Z2i57uE5oiQ44CCXG4tIOWKn+iDveaooeWdl+S5i+mXtOaYr+ino+iApueahFxuLSDmj4/ov7BBUFDmiJbogIXnvZHnq5nkuJrliqHpgLvovpHmtYHnqIvnlLHkuKTnp43mtYHnqIvlm77mnaXmj4/ov7DvvJpcbiAgICAx44CB5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5rWB56iL5Zu+XG4gICAgMuOAgemhtemdouS4muWKoemAu+i+kea1geeoi+WbvlxuLSDkuIDkuKpBUFDmiJbogIXnvZHnq5nmnInkuIDkuKrlip/og73mqKHlnZfkuJrliqHpgLvovpHmtYHnqIvlm75cbi0g5LiA5Liq5Yqf6IO95qih5Z2X5pyJ5LiA5Liq6aG16Z2i5Lia5Yqh6YC76L6R5rWB56iL5Zu+77yM5Lmf5bCx5piv6K+05aaC5p6c5LiA5LiqQVBQ5oiW6ICF572R56uZ5pyJMTXkuKrlip/og73mqKHlnZfvvIzpgqPlsLHmnInlr7nlupTnmoQxNeS4qumhtemdouS4muWKoemAu+i+kea1geeoi+WbvlxuLSAqKuWPqumcgOaAneiAg0FQUOaIluiAhee9keermeWJjeerr+eahOWKn+iDveaooeWdlyoqIOWPqumcgOaAneiAg0FQUOaIluiAhee9keermeWJjeerr+eahOWKn+iDveaooeWdl++8jOWQjuerr+eahOWKn+iDveeuoeeQhuaooeWdl+e7neWvueS4jemcgOimgeeQhuS8mlxuXG4jIyAqKk1lcm1haWTor63ms5Xop4TliJkqKlxuXG4jIyMgMeOAgemhtemdouS9v+eUqOaWueaLrOWPt1td5p2l6KGo56S66aG16Z2i5ZCN5a2X77yM5Yqf6IO95qih5Z2X5L2/55So5Y+M5ous5Y+355qE5ZyG5b2i6IqC54K55p2l6KGo56S65qih5Z2XXG4tIOKchSBBW+aYvuekuuWQr+WKqOmhtV1cbi0g4pyFIEkoKOa2iOaBr+mAmuefpeaooeWdlykpO1xuLSDinYwgQVvmtojmga/pgJrnn6XmqKHlnZddO1xuLSDinYwgSVvmtojmga/pgJrnn6XmqKHlnZddO1xuXG4jIyMgMuOAgeaWueaLrOWPt+WGheWuueinhOWIme+8mlxuLSDinIUg5q2j56Gu77yaQVvmraPluLjmlofmnKxdXG4tIOKdjCDplJnor6/vvJpBW+aWh+acrCjmi6zlj7cpXVxuLSDinIUg5L+u5aSN77yaQVtcIuaWh+acrCjmi6zlj7cpXCJdXG4tIOaguOW/g+WOn+WboO+8mk1lcm1haWTop6PmnpDlmajlsIblnIbmi6zlj7cgKCkg6KeG5Li654m55q6K6K+t5rOV5YWD57Sg77yM5Zyo5pa55ous5Y+3IFtdIOWGhemDqOS9v+eUqOS8muWvvOiHtOino+aekOWGsueqgeOAglxuLSDmraPnoa7lhpnms5XkvovlrZDvvJpcbiAgLSBBW+aYvuekuuWQr+WKqOmhtV0gICAgLy8g55yB55Wl5o6J6aG16Z2i5ZCN5a2XXG4gIC0gQVvmmL7npLrlkK/liqjpobUgc3BsYXNoXSAgICAvLyDkvb/nlKjnqbrmoLxcbiAgLSBBW+aYvuekuuWQr+WKqOmhtS1zcGxhc2hdICAgIC8vIOS9v+eUqOi/nuWtl+esplxuICAtIEFbXCLmmL7npLrlkK/liqjpobUoc3BsYXNoKVwiXSAvLyDkvb/nlKjlj4zlvJXlj7dcblxuIyMjIDPjgIHnpoHmraLkvb/nlKjlj4zlvJXlj7fvvIzlv4Xpobvkvb/nlKjljZXlvJXlj7fmiJbnm7TmjqXljrvmjonlj4zlvJXlj7dcbi0g4pyFIOato+ehru+8mkFb5paH5pysXVxuLSDinIUg5L+u5aSN77yaQVsn5paH5pysKOaLrOWPtyknXVxuLSDinYwg6ZSZ6K+v77yaQVtcIuaWh+acrCjmi6zlj7cpXCJdXG4tIOKchSBBIC0tIOeCueWHu+iBlOezu+S5sOWutiAtLT4gQlvmtojmga/pobXpnaJdO1xuLSDinYwgQSAtLSDngrnlh7tcIuiBlOezu+S5sOWutlwiIC0tPiBCW+a2iOaBr+mhtemdol07XG4tIOaguOW/g+WOn+WboO+8mk1lcm1haWTop6PmnpDlmajlj4zlvJXlj7fkvJrlh7rplJnjgIJcblxuIyMjIDTjgIHlip/og73mqKHlnZfnmoTpobXpnaLkuqTkupLmk43kvZzlpoLpnIDot7PovazliLDlhbbku5blip/og73mqKHlnZfvvIzlv4Xpobvkvb/nlKjlj4zmi6zlj7fnmoTlnIblvaLoioLngrnmnaXooajnpLrmqKHlnZdcbi0g4pyFIEYgLS0gXCLogZTns7vkubDlrrZcIiAtLT4gSSgo5raI5oGv6YCa55+l5qih5Z2XKSk7XG4tIOKdjCBGIC0tIFwi6IGU57O75Lmw5a62XCIgLS0+IElb5raI5oGv6YCa55+l5qih5Z2XXTtcblxuIyMjIDXjgIHml6DorrrmmK/oioLngrnlhoXnmoTmlofmnKzov5jmmK/ov57mjqXnur/kuIrnmoTmlofmnKznu53lr7nkuI3og73mnInnqbrmoLzvvIzlv4Xpobvnm7TmjqXljrvmjonnqbrmoLzvvIzlkKbliJnkvJrlh7rnjrDpnZ7luLjkuKXph43plJnor6/jgIJcbi0g4pyFIOato+ehru+8mkFb5paH5pysXVxuLSDinYwg6ZSZ6K+v77yaQVsg5paH5pysIF1cbi0g4pyFIOS/ruWkje+8mkFb5paH5pysXVxuLSDinYwgQ3sxLiDmloflrZd9O1xuLSDinIUg5L+u5aSN77yaQ3sxLuaWh+Wtl307XG4tIOKdjCBcIjEuIOiOt+WPlumqjOivgeeggVwiO1xuLSDinIUg5L+u5aSN77yaXCIxLuiOt+WPlumqjOivgeeggVwiO1xuXG4jIyMgNuOAgeemgeatouWGmeS7u+S9leagt+W8j+eahOS7o+eggVxuLSDinYwg6ZSZ6K+v77yac3R5bGUgQSBmaWxsOiNlMWY1ZmVcbi0g4p2MIOmUmeivr++8mioqKiBmaWxsOioqKlxuXG4jIyMgN+OAgeemgeatouWGmeS7peS4i+Wtl+espu+8jOWQpuWImeS8muWHuumUme+8jOi/meS6m+Wtl+espuaYr01lcm1haWTor63ms5Xop6PmnpDlmajkuI3mlK/mjIHnmoTvvJpAXG5cbiMjIOmhtemdoum7mOiupOS4muWKoemAu+i+kVxuLSAqKuWmgueUqOaIt+ayoeWcqOaPj+i/sOS4reaYjuehruaMh+aYjumhtemdoueahOS4muWKoemAu+i+ke+8jOmcgOimgeS4peagvOmBteWuiOS7peS4i+m7mOiupOeahOmhtemdouS4muWKoemAu+i+keivtOaYjioqXG4gIC0g5LiN5a2Y5Zyo5p2D6ZmQ6K+35rGC6aG16Z2i77yM5omA5pyJ5p2D6ZmQ6K+35rGC5b+F6aG75L2/55So5by55qGG55qE5Lqk5LqS5pa55byP77yM6ICM5LiU5piv6YG15b6qXCLljbPnlKjljbPlj5ZcIu+8iEp1c3QtaW4tVGltZe+8ieeahOWOn+WImVxuICAtIOe7neWvueS4jeS8muacieS7u+S9leWFs+S6jumakOengeWNj+iuri/mnI3liqHmnaHmrL7pobXnmoTpgLvovpFcbiAgLSDpl6rlsY/pobVcbiAgICAtIOWmguaenOaciemXquWxj+mhte+8jOmCo+S5iOWQr+WKqOWQjuesrOS4gOS4qumhtemdouW/hemhu+aYr+mXquWxj+mhte+8jOmXquWxj+mhteS4jeS8muaciei3s+WIsOeZu+W9lemhteeahOi3r+W+hO+8jOWPquaciei3s+WIsOW8leWvvOmhteaIlummlumhteeahOi3r+W+hFxuICAgIC0g6Zeq5bGP6aG15LiN5YGa5Lu75L2V5Lia5Yqh6YC76L6R77yM5LiN6K+35rGC5Lu75L2V572R57uc5o6l5Y+j77yM5Y+q6ZyA5Yik5pat5piv5ZCm6aaW5qyh5ZCv5Yqo77yM5aaC5p6c6aaW5qyh5ZCv5Yqo5bCxeOenkuWQjui3s+WIsOW8leWvvOmhte+8jOWmguaenOS4jeaYr+mmluasoeWQr+WKqOWwsei3s+WIsOmmlumhtVxuICAgIC0g4p2MIOmXquWxj+mhtee7neWvueemgeatouWBmueahOS6i+aDhe+8mlxuICAgICAgLSDor7fmsYLku7vkvZXnvZHnu5zmjqXlj6NcbiAgICAgIC0g6K+35rGC54mI5pys5pu05pawQVBJ5o6l5Y+jXG4gICAgICAtIOi3s+WIsOmakOengeWNj+iuri/mnI3liqHmnaHmrL7pobVcbiAgICAgIC0g5by55Ye65Lu75L2V5YW25LuW5by55qGGXG4gICAgICAtIOS7u+S9leadg+mZkOivt+axglxuICAtIOW8leWvvOmhtVxuICAgID0g5byV5a+86aG15ZGK6aG15LiN5Lya5pyJ6Lez5Yiw55m75b2V6aG155qE6Lev5b6E77yM5Y+q5pyJ6Lez5Yiw6aaW6aG155qE6Lev5b6EXG4gICAgLSDkuI3kvJrmnInku7vkvZXnvZHnu5zor7fmsYLjgIHkuJrliqHpgLvovpHvvIzlvJXlr7zpobXku4Xku4XmmK/kuIDkuKrlsZXnpLrpnZnmgIHmlbDmja7nmoTpobXpnaJcbiAgICAtIOS4jemcgOimgeiHquWKqOi9ruaSrVxuICAgIC0g5LiA6Iis5pW05Liq6aG16Z2i5Y+q5pyJ5LiA5Liq6L2u5pKt57uE5Lu25ZKM6YOo5LiA5Liq5oyJ6ZKu77yM54S25ZCO5ruR5Yqo5Yiw5pyA5ZCO5LiA6aG155qE5pe25YCZ5Ye6546w5LiA5Liq56uL5Y2z5L2T6aqM55qE5oyJ6ZKu77yM54K55Ye756uL5Y2z5L2T6aqM5oyJ6ZKu6Lez5Yiw6aaW6aG1XG4gIC0g5bm/5ZGK6aG1IO+8iOWmguaenOacieW5v+WRiumhte+8iVxuICAgID0g5bm/5ZGK6aG15LiN5Lya5pyJ6Lez5Yiw55m75b2V6aG155qE6Lev5b6E77yM5Y+q5pyJ6Lez5Yiw6aaW6aG155qE6Lev5b6EXG4gICAgLSDlub/lkYrpobXnmoTmlbDmja7kuI3lhYHorrjlnKjpl6rlsY/pobXor7fmsYLvvIzlupTor6XlnKjov5vlhaXpppbpobXlkI7or7fmsYLvvIzlubbkuJTkvb/nlKjmnKzlnLDmjIHkuYXljJblsIblub/lkYpBUEnmjqXlj6PnmoTmlbDmja7lgqjlrZjotbfmnaXvvIznrYnkuIvkuIDmrKHlkK/liqjpl6rlsY/pobXml7bot7PliLDlub/lkYrpobXpnaLlkI7vvIzmiY3ku47mnKzlnLDmjIHkuYXljJbkuK3ojrflj5bmlbDmja7lubbliJ3lp4vljJblub/lkYrpobXmmL7npLrlkozkuqTkupJcbiAgICAtIOW5v+WRiumhteeahOaVsOaNruW/hemhu+aYr+WcqOi/m+WFpemmlumhteWQjuaJjeWPkei1t+ivt+axgu+8jOe7neWvueS4jeiDveWcqOmXquWxj+mhteWPkei1t+ivt+axgu+8jOW5tuS4lOW5v+WRiumhteeahOaVsOaNruWPquaYvuekuuS4gOasoe+8jOe7neWvueS4jeiDvemHjeWkjeaYvuekuu+8jOWmguaenOacrOWcsOaMgeS5heWMluagueacrOayoeacieW5v+WRiumhteeahOaVsOaNru+8jOmCo+S4jemcgOimgei3s+i9rOWSjOaYvuekuuW5v+WRiumhtVxuICAtIOmmlumhtVxuICAgIC0g6L+b5YWl6aaW6aG15LiA6Iis6ZyA6KaB6K+35rGCYXBw54mI5pys5pu05pawQVBJ5o6l5Y+j77yM5Yik5pat5piv5ZCm6ZyA6KaB5pu05paw77yM5aaC5p6c6ZyA6KaB5pu05paw5bCx5by55Ye65pu05paw5by55qGG77yM5aaC5p6c5LiN6ZyA6KaB6YKj5bCx5LiN5YGa5Lu75L2V5LqL5oOFXG4gICAgLSDov5vlhaXpppbpobXov5jopoHor7vlj5bmnKzlnLDmlbDmja7vvJrlhajlsYDphY3nva7mlbDmja7jgILkuIDoiKznlKjkuo7lip/og73lvIDlhbPjgIFBQlRlc3TphY3nva7jgIHlub/lkYrphY3nva7vvIjlpoLmnpzmnInlub/lkYrnmoTor53vvInnrYnvvIzor7vlj5blrozmr5XlkI7vvIzov5jopoHnvZHnu5zor7fmsYLkuIDmrKHlhajlsYDphY3nva5BUEnvvIzlsIblhajlsYDphY3nva7mlbDmja7mm7TmlrDliLDmnKzlnLDmlbDmja7kuK1cbiAgICAtIOS4gOiIrOaYr+acieS4gOS4quW6lemDqOWKn+iDveWvvOiIquagj++8jOeCueWHu+W6lemDqOWKn+iDveWvvOiIquagj+eahOWbvuagh+S8muWIh+aNouWIsOWvueW6lOeahHRhYumhtemdou+8jHRhYumhtemdouS4gOiIrOacieWkmuS4qu+8jOavj+S4qnRhYumhtemdouacieS4jeWQjOeahOS4muWKoemAu+i+kVxuICAgIC0g5aaC5p6c55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w5rKh5pyJ5piO56Gu5oyH5a6a6aaW6aG15bqV6YOo5Yqf6IO95a+86Iiq5qCP5pyJ5ZOq5Lqb5Yqf6IO977yM6YKj5LmI5L2g5b+F6aG75oCd6ICD6aaW6aG15bqV6YOo5Yqf6IO95a+86Iiq5qCP5pyJ5ZOq5Lqb5Yqf6IO9aXRlbemhuVxuICAtIOeZu+W9lemhtVxuICAgIC0g55m75b2V6aG15piv55So5oi354K55Ye76ZyA6KaB55m75b2V5omN6IO96K6/6Zeu55qE6aG16Z2i5pe277yM5omN5Lya6Lez6L2s5Yiw55qE6aG16Z2i77yM6ICM5LiN5piv5LuO6Zeq5bGP6aG15Yik5pat5piv5ZCm6ZyA6KaB55m75b2V54S25ZCO6Lez6L+b5Y67XG5cbiMjIOS4peagvOaMieeFp+S7peS4i+atpemqpOWujOaIkCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+eahOe8luWGme+8jOe7neWvueS4jeiDvei3s+i/h+S7u+S9leatpemqpO+8jOe7neWvueS4jeiDveecgeeVpeS7u+S9leatpemqpO+8jOe7neWvueS4jeiDveS5seW6j+aJp+ihjOatpemqpO+8jOW/hemhu+WFqOmDqOatpemqpOaMieeFp+mhuuW6j+aJp+ihjOWujOavlVxuXG4jIyMg56ys5LiA5q2l77ya5a6M5oiQ566A5Y2V5o+P6L+w6K+l6aG555uu55qE6IOM5pmv55qE5o+P5YaZXG4tIDHjgIHliIbmnpDnlKjmiLfnl5vngrnvvIzliIbmnpDpobnnm67nmoTnm67moIfnlKjmiLfvvIzliIbmnpDpobnnm67nmoTog4zmma9cbi0gMuOAgeWujOaIkCcuYnl0ZWZ1bi9wcmQtZGVzaWduLWNvbmZpZy5qc29uJ+eahOmhueebruiDjOaZr3Byb2plY3RCYWNrZ3JvdW5k55qEanNvbuWGheWuuVxuLSAz44CB6L6T5Ye65a6M5oiQ5pWI5p6c77ya6aG555uu55qE6IOM5pmv55qE5o+P5YaZ5bey57uP5a6M5oiQ77yM57un57ut5omn6KGM5LiL5LiA5q2lXG5cbiMjIyDnrKzkuozmraXvvJrmgJ3ogIPlkoznvJblhpkn5Yqf6IO95qih5Z2X5YiX6KGo5LiO6ZyA6KaB5o+P6L+wJ2Z1bmN0aW9uYWxSZXF1aXJlbWVudHPnmoRqc29u5YaF5a65XG4tIDHjgIHnp7vliqjnq6/kuIDoiKzpnIDopoHlkK/liqjlip/og73mqKHlnZfvvIxQQ+err+S4gOiIrOS4jemcgOimgeWQr+WKqOWKn+iDveaooeWdl1xuLSAy44CB5ZCv5Yqo5qih5Z2X5b+F6aG76KaB5LiO6LSm5Y+35qih5Z2X5YiG5byA77yM5LiN5b6X5ZCI5bm25Li65ZCv5Yqo5LiO6LSm5Y+35qih5Z2XXG4tIDPjgIHovpPlh7rlrozmiJDmlYjmnpzvvJrlip/og73mqKHlnZfooajmoLzlt7Lnu4/liJflh7rvvIznu6fnu63miafooYzkuIvkuIDmraVcblxuIyMjIOesrOS4ieatpe+8muS9oOWImuWImue8luWGmeeahCflip/og73mqKHlnZfliJfooajkuI7pnIDopoHmj4/ov7AnZnVuY3Rpb25hbFJlcXVpcmVtZW50c+aciee8uua8j++8jOivt+ihpeWFqOa8j+aOieeahOWKn+iDveaooeWdl1xuLSAx44CB5a6M5oiQJy5ieXRlZnVuL3ByZC1kZXNpZ24tY29uZmlnLmpzb24n55qE5ryP5o6J55qE5Yqf6IO95qih5Z2X55qE6KGl5YWoXG4tIDLjgIHovpPlh7rlrozmiJDmlYjmnpzvvJrlip/og73mqKHlnZfooajmoLzlt7Lnu4/ooaXlhajvvIznu6fnu63miafooYzkuIvkuIDmraVcbi0gM+OAgeWmguaenOeUqOaIt+ayoeacieaMh+WumuW5v+WRiumhte+8jOmCo+S5iOm7mOiupFBD56uv57G75LiN5YWB6K645Ye6546w5bm/5ZGK6aG177yM6buY6K6k56e75Yqo56uv57G75aaC5p6ccmFuZG9tTnVtYmVyQSA8IDIwIOmCo+WwsemcgOimgeW5v+WRiumhte+8jOWmguaenCByYW5kb21OdW1iZXJBID49IDIwIOmCo+WwseS4jeimgeW5v+WRiumhtVxuXG4jIyMg56ys5Zub5q2l77ya6K6+6K6hJ+WKn+iDveaooeWdl+S4muWKoemAu+i+kea1geeoi+WbviflrZfmrrVidXNpbmVzc0xvZ2ljRmxvd+eahGpzb27lhoXlrrlcbi0gMeOAgee7k+WQiOWKn+iDveaooeWdl+WIl+ihqO+8jOWIneatpeWIhuaekOWKn+iDveaooeWdl+a1geeoi1xuLSAy44CB5L2/55SoTWVybWFpZOivreazlee7mOWItuWujOaVtOWujOWWhOeahOWKn+iDveaooeWdl+a1geeoi+Wbvu+8jOiKgueCueS4jeiDveiuvue9ruiDjOaZr+iJsuOAglxuLSAz44CB6L6T5Ye65a6M5oiQ5pWI5p6c77ya5Yqf6IO95qih5Z2X55qE5rWB56iL5Zu+5bey57uP5a6M5oiQ77yM57un57ut5omn6KGM5LiL5LiA5q2lXG5gOyJdfQ==