UNPKG

bytefun-ai-mcp

Version:

ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发

91 lines (83 loc) 18.7 kB
export const uiDesignPromptTemplate = `# UI设计规则 ## 一、禁止的事情 - 禁止使用任何前端框架,只使用 html+类选择器样式+js 来实现。 - 禁止使用js代码来拼接html字符串,必须在body标签里面直接写html代码。 - 禁止使用js代码来声明任何页面显示所需的数据,所有数据都必须在html代码中直接写死。 - loading节点的实现禁止使用div标签与边框属性实现,必须使用图标icon的i标签来实现loading的节点 - 禁止为html标签节点添加动画或过渡效果,页面设计不需要任何动画和过渡效果,比如禁止:@keyframes、transition、animation 等。 - hover与点击反馈:请使用浅色的背景色background来反馈就行,严禁使用transform效果 - ❌ 错误的用法: \`\`\` css .hot-sales-item:hover { transform: translateX(...px); } \`\`\` - ✅ 正确的用法: \`\`\` css .hot-sales-item:hover { background: ...; } \`\`\` - 禁止使用div标签来实现image图片,必须要使用img标签来实现图片节点,img标签的src属性必须设置为:\`https://oss.bytefungo.com/f1/showImg1.jpg\`,其中里面的\`showImg1\`可以改为1~30的任意一个数字,比如:\`showImg5\`。 - ❌错误的写法: \`\`\` html <div class="bestseller-cover" id="bestsellerCover1" name="畅销书籍封面1" nodeType="image"> </div> \`\`\` - ✅ 正确的写法: \`\`\` html <img class="bestseller-cover" id="bestsellerCover1" name="畅销书籍封面1" nodeType="image" src="https://oss.bytefungo.com/f1/showImg7.jpg"> \`\`\` ## 二、样式规则 - 样式代码必须使用类选择器样式Class-based Style / Class Selector Style方式,不得使用行内样式Inline Style或外部文件。 - 遵循手机尺寸规格(宽度 393px 高度 808px) - 所有radio、checkBox都必须使用i标签设置FontAwesome图标来实现,不得使用系统的input标签实现。 - 如用户没有明确描述说明页面背景色,只有闪屏页面的背景色允许设置品牌主色或品牌主色与品牌次色的渐变色,其他页面必须使用非 品牌主色 与非 品牌次色 的纯色做页面背景色,比如一般使用白色系,如果是暗黑风那就是黑色系。 - 输入框\`input\`如果需要展示文字 label,尽量使用 icon 代替文字 label,并且 icon 重叠在输入框的左侧,这样整个页面的空间利用率高。 ## 三、必须给每一个节点添加id、name、nodeType属性 - 特别注意,\`i\`和\`div\`等标签也必须添加 id、name、nodeType 属性,每一个节点都需要添加这三个属性,千万别漏掉了,这是必要条件 - id 属性必须只能使用英文或数字组成,且不能以数字开头,并且整个页面 id 属性的值必须唯一,使用驼峰的命名方式 - name 属性必须是中文或数字,并且不能包含特殊字符 - nodeType 属性的值必须是\`组件类型枚举 (nodeType)枚举\` 中的一个,一些布局容器需要遵守以下说明来选择正确的nodeType: - 列表容器:\`verticalListView\`、\`horizontalListView\`、\`listItemCard\`,用于布局多个列表项,比如:商品列表、分类列表、标签列表等,可以支持多行多列的列表布局 - 列表页脚容器:\`listFooterContainer\`,用于布局列表的页脚,比如:加载更多、没有更多了等 - 网格容器:gridContainer用于布局多个网格项,里面包含N个gridItem,比如:分类网格入口 - 流式容器:用于布局多个子项,子项可以在一行显示,当位置不够时就换行显示,比如:一组标签tag的排版布局 - 多状态容器:\`multiStateContainer\`, \`oneStateContentContainer\`,用于不是通过交互,而是通过逻辑状态变量变化而显示不同状态的内容容器,比如:登录状态和未登录状态分别显示不同的内容。 - 高级组件节点的nodeType结构规则: - tab 选项卡:\`tabMenuBar\`是tab选项卡菜单栏,里面包含N个\`tabMenuBarItem\`,\`tabPanelFather\`是tab选项卡内容容器,里面包含N个\`tabPanel\`,\`tabMenuBar\`和\`tabPanelFather\`必须同时存在,\`tabPanel\`的数量必须和\`tabMenuBarItem\`的数量相同 - viewPager 轮播:\`viewPager\`是轮播容器,里面包含N个\`viewPagerItem\`,\`viewPagerIndicatorContainer\`是轮播指示器容器,\`viewPager\`与\`viewPagerIndicatorContainer\`必须同时存在 - 一行不够位置显示就换行的容器:\`inlineBlockAndWrap\`,里面包含N个\`blockItem\`,\`blockItem\`是它的子项 - 多状态容器:一个\`multiStateContainer\`多状态容器包含多个\`oneStateContentContainer\` - 组件类型枚举 (nodeType)枚举: - 形状:\`rect\`, \`circle\`, \`line\` - 基础组件:\`text\`、\`button\`、\`input\`、\`icon\`、\`image\` - 基础容器:\`container\` - 网格容器:\`gridContainer\`、\`gridItem\` - 流式容器:\`inlineBlockAndWrap\`、\`blockItem\` - 开关:\`switch\` - 单选:\`radioGroup\`、\`radio\` - 多选:\`checkBoxGroup\`、\`checkBox\` - 顶部导航栏:\`topNavigateBar\` - 多状态容器:\`multiStateContainer\`, \`oneStateContentContainer\` - 列表:\`verticalListView\`, \`horizontalListView\`, \`listItemCard\`、\`listFooterContainer\` - 轮播:\`viewPager\`, \`viewPagerItem\`, \`viewPagerIndicatorContainer\` - tab 选项卡:\`tabPanelFather\`, \`tabPanel\`, \`tabMenuBar\`, \`tabMenuBarItem\` - 底部导航: \`bottomTabContentContainer\`, \`subPage\`, \`bottomTabNavigateBar\`, \`bottomTabNavigateBarItem\` - 对话框:\`dialogOverlay\`, \`dialogContent\` - toast 提示:\`toast\` - 下拉菜单:\`dropDownMenu\` - 侧滑面板:\`sideSlidePanel\` ## 四、轮播与Tabs组件的规则 - 轮播的每一个Slide和Tabs选项卡组件每一个Tab Panel都必须使用\`display: none\`和\`display: block/flex\`来实现隐藏和显示的互斥切换 - 轮播的每一个Slide必须有html代码实现,不得只写第1个Slide的html代码,其他Slide的html代码也必须要写。 - Tabs选项卡组件每一个Tab Panel都必须有html代码实现,不得只写第1个Tab Panel的html代码,其他Tab Panel的html代码也必须要写。 ## 五、图标与图片的规则 - icon图标必须使用 FontAwesome 图标,比如:\`<i name="微信Icon" nodeType="icon" id="wxIcon" class="fab fa-weixin"></i>\` - img图片的src 必须使用图片地址:\`https://oss.bytefungo.com/f1/showImg1.jpg\`),其中结尾的’showImg1'可以换为从 1 到 30 的数字,1~30 的数字必须随机挑选,不得每个页面每个图片都使用同一个数字。写法比如:\`<img src="https://oss.bytefungo.com/f1/showImg17.jpg" alt="xxx" class="xxx" nodeType="image">\` - 绝对不能使用 emoji 表情符号,不得使用任何 emoji 表情符号,请使用 icon 或 img 图片节点来代替。 ## 六、首页主体页与子页面的规则 - 首页主体页嵌套了多个子页面,每一个子页面都不需要填充内容,空白就行,后面会有专门的任务来设计具体的子页面。 - 任何子页面都必须禁止添加底部导航栏节点到页面,因为子页面是嵌套在首页主体页中的,父页面已经有底部导航栏了,子页面不需要再添加底部导航栏,也不得添加二级页面的标题栏到子页面中,因为子页面是嵌套在首页主体页中的,首页主体页和它的子页面都是一级页面,因此不得添加二级页面的标题栏到子页面中。 `; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlEZXNpZ24tbm8tZmxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91aURlc2lnbi1uby1mbGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlGckMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB1aURlc2lnblByb21wdFRlbXBsYXRlID0gYCMgVUnorr7orqHop4TliJlcblxuIyMg5LiA44CB56aB5q2i55qE5LqL5oOFXG4tIOemgeatouS9v+eUqOS7u+S9leWJjeerr+ahhuaetu+8jOWPquS9v+eUqCBodG1sK+exu+mAieaLqeWZqOagt+W8jytqcyDmnaXlrp7njrDjgIJcbi0g56aB5q2i5L2/55SoanPku6PnoIHmnaXmi7zmjqVodG1s5a2X56ym5Liy77yM5b+F6aG75ZyoYm9keeagh+etvumHjOmdouebtOaOpeWGmWh0bWzku6PnoIHjgIJcbi0g56aB5q2i5L2/55SoanPku6PnoIHmnaXlo7DmmI7ku7vkvZXpobXpnaLmmL7npLrmiYDpnIDnmoTmlbDmja7vvIzmiYDmnInmlbDmja7pg73lv4XpobvlnKhodG1s5Luj56CB5Lit55u05o6l5YaZ5q2744CCXG4tIGxvYWRpbmfoioLngrnnmoTlrp7njrDnpoHmraLkvb/nlKhkaXbmoIfnrb7kuI7ovrnmoYblsZ7mgKflrp7njrDvvIzlv4Xpobvkvb/nlKjlm77moIdpY29u55qEaeagh+etvuadpeWunueOsGxvYWRpbmfnmoToioLngrlcbi0g56aB5q2i5Li6aHRtbOagh+etvuiKgueCuea3u+WKoOWKqOeUu+aIlui/h+a4oeaViOaenO+8jOmhtemdouiuvuiuoeS4jemcgOimgeS7u+S9leWKqOeUu+WSjOi/h+a4oeaViOaenO+8jOavlOWmguemgeatou+8mkBrZXlmcmFtZXPjgIF0cmFuc2l0aW9u44CBYW5pbWF0aW9uIOetieOAglxuLSBob3ZlcuS4jueCueWHu+WPjemmiO+8muivt+S9v+eUqOa1heiJsueahOiDjOaZr+iJsmJhY2tncm91bmTmnaXlj43ppojlsLHooYzvvIzkuKXnpoHkvb/nlKh0cmFuc2Zvcm3mlYjmnpxcbiAgICAtIOKdjCDplJnor6/nmoTnlKjms5XvvJogXG4gICAgXFxgXFxgXFxgIGNzc1xuICAgIC5ob3Qtc2FsZXMtaXRlbTpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCguLi5weCk7XG4gICAgfVxuICAgIFxcYFxcYFxcYFxuICAgIC0g4pyFIOato+ehrueahOeUqOazle+8mlxuICAgIFxcYFxcYFxcYCBjc3NcbiAgICAuaG90LXNhbGVzLWl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAuLi47XG4gICAgfVxuICAgIFxcYFxcYFxcYFxuLSDnpoHmraLkvb/nlKhkaXbmoIfnrb7mnaXlrp7njrBpbWFnZeWbvueJh++8jOW/hemhu+imgeS9v+eUqGltZ+agh+etvuadpeWunueOsOWbvueJh+iKgueCue+8jGltZ+agh+etvueahHNyY+WxnuaAp+W/hemhu+iuvue9ruS4uu+8mlxcYGh0dHBzOi8vb3NzLmJ5dGVmdW5nby5jb20vZjEvc2hvd0ltZzEuanBnXFxg77yM5YW25Lit6YeM6Z2i55qEXFxgc2hvd0ltZzFcXGDlj6/ku6XmlLnkuLoxfjMw55qE5Lu75oSP5LiA5Liq5pWw5a2X77yM5q+U5aaC77yaXFxgc2hvd0ltZzVcXGDjgIJcbiAgLSDinYzplJnor6/nmoTlhpnms5XvvJpcbiAgICBcXGBcXGBcXGAgaHRtbFxuICAgIDxkaXYgY2xhc3M9XCJiZXN0c2VsbGVyLWNvdmVyXCIgaWQ9XCJiZXN0c2VsbGVyQ292ZXIxXCIgbmFtZT1cIueVhemUgOS5puexjeWwgemdojFcIiBub2RlVHlwZT1cImltYWdlXCI+XG4gICAgPC9kaXY+XG4gICAgXFxgXFxgXFxgXG4gIC0g4pyFIOato+ehrueahOWGmeazle+8mlxuICAgIFxcYFxcYFxcYCBodG1sXG4gICAgPGltZyBjbGFzcz1cImJlc3RzZWxsZXItY292ZXJcIiBpZD1cImJlc3RzZWxsZXJDb3ZlcjFcIiBuYW1lPVwi55WF6ZSA5Lmm57GN5bCB6Z2iMVwiIG5vZGVUeXBlPVwiaW1hZ2VcIiBzcmM9XCJodHRwczovL29zcy5ieXRlZnVuZ28uY29tL2YxL3Nob3dJbWc3LmpwZ1wiPiAgXG4gICAgXFxgXFxgXFxgXG5cbiMjIOS6jOOAgeagt+W8j+inhOWImVxuLSDmoLflvI/ku6PnoIHlv4Xpobvkvb/nlKjnsbvpgInmi6nlmajmoLflvI9DbGFzcy1iYXNlZCBTdHlsZSAvIENsYXNzIFNlbGVjdG9yIFN0eWxl5pa55byP77yM5LiN5b6X5L2/55So6KGM5YaF5qC35byPSW5saW5lIFN0eWxl5oiW5aSW6YOo5paH5Lu244CCXG4tIOmBteW+quaJi+acuuWwuuWvuOinhOagvCjlrr3luqYgMzkzcHgg6auY5bqmIDgwOHB4KVxuLSDmiYDmnIlyYWRpb+OAgWNoZWNrQm946YO95b+F6aG75L2/55Soaeagh+etvuiuvue9rkZvbnRBd2Vzb21l5Zu+5qCH5p2l5a6e546w77yM5LiN5b6X5L2/55So57O757uf55qEaW5wdXTmoIfnrb7lrp7njrDjgIJcbi0g5aaC55So5oi35rKh5pyJ5piO56Gu5o+P6L+w6K+05piO6aG16Z2i6IOM5pmv6Imy77yM5Y+q5pyJ6Zeq5bGP6aG16Z2i55qE6IOM5pmv6Imy5YWB6K646K6+572u5ZOB54mM5Li76Imy5oiW5ZOB54mM5Li76Imy5LiO5ZOB54mM5qyh6Imy55qE5riQ5Y+Y6Imy77yM5YW25LuW6aG16Z2i5b+F6aG75L2/55So6Z2eIOWTgeeJjOS4u+iJsiDkuI7pnZ4g5ZOB54mM5qyh6ImyIOeahOe6r+iJsuWBmumhtemdouiDjOaZr+iJsu+8jOavlOWmguS4gOiIrOS9v+eUqOeZveiJsuezu++8jOWmguaenOaYr+aal+m7kemjjumCo+WwseaYr+m7keiJsuezu+OAglxuLSDovpPlhaXmoYZcXGBpbnB1dFxcYOWmguaenOmcgOimgeWxleekuuaWh+WtlyBsYWJlbO+8jOWwvemHj+S9v+eUqCBpY29uIOS7o+abv+aWh+WtlyBsYWJlbO+8jOW5tuS4lCBpY29uIOmHjeWPoOWcqOi+k+WFpeahhueahOW3puS+p++8jOi/meagt+aVtOS4qumhtemdoueahOepuumXtOWIqeeUqOeOh+mrmOOAglxuXG4jIyDkuInjgIHlv4Xpobvnu5nmr4/kuIDkuKroioLngrnmt7vliqBpZOOAgW5hbWXjgIFub2RlVHlwZeWxnuaAp1xuLSDnibnliKvms6jmhI/vvIxcXGBpXFxg5ZKMXFxgZGl2XFxg562J5qCH562+5Lmf5b+F6aG75re75YqgIGlk44CBbmFtZeOAgW5vZGVUeXBlIOWxnuaAp++8jOavj+S4gOS4quiKgueCuemDvemcgOimgea3u+WKoOi/meS4ieS4quWxnuaAp++8jOWNg+S4h+WIq+a8j+aOieS6hu+8jOi/meaYr+W/heimgeadoeS7tlxuLSBpZCDlsZ7mgKflv4Xpobvlj6rog73kvb/nlKjoi7HmlofmiJbmlbDlrZfnu4TmiJDvvIzkuJTkuI3og73ku6XmlbDlrZflvIDlpLTvvIzlubbkuJTmlbTkuKrpobXpnaIgaWQg5bGe5oCn55qE5YC85b+F6aG75ZSv5LiA77yM5L2/55So6am85bOw55qE5ZG95ZCN5pa55byPXG4tIG5hbWUg5bGe5oCn5b+F6aG75piv5Lit5paH5oiW5pWw5a2X77yM5bm25LiU5LiN6IO95YyF5ZCr54m55q6K5a2X56ymXG4tIG5vZGVUeXBlIOWxnuaAp+eahOWAvOW/hemhu+aYr1xcYOe7hOS7tuexu+Wei+aemuS4viAobm9kZVR5cGUp5p6a5Li+XFxgIOS4reeahOS4gOS4qu+8jOS4gOS6m+W4g+WxgOWuueWZqOmcgOimgemBteWuiOS7peS4i+ivtOaYjuadpemAieaLqeato+ehrueahG5vZGVUeXBl77yaXG4gIC0g5YiX6KGo5a655Zmo77yaXFxgdmVydGljYWxMaXN0Vmlld1xcYOOAgVxcYGhvcml6b250YWxMaXN0Vmlld1xcYOOAgVxcYGxpc3RJdGVtQ2FyZFxcYO+8jOeUqOS6juW4g+WxgOWkmuS4quWIl+ihqOmhue+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOOAgeWIhuexu+WIl+ihqOOAgeagh+etvuWIl+ihqOetie+8jOWPr+S7peaUr+aMgeWkmuihjOWkmuWIl+eahOWIl+ihqOW4g+WxgFxuICAtIOWIl+ihqOmhteiEmuWuueWZqO+8mlxcYGxpc3RGb290ZXJDb250YWluZXJcXGDvvIznlKjkuo7luIPlsYDliJfooajnmoTpobXohJrvvIzmr5TlpoLvvJrliqDovb3mm7TlpJrjgIHmsqHmnInmm7TlpJrkuobnrYlcbiAgLSDnvZHmoLzlrrnlmajvvJpncmlkQ29udGFpbmVy55So5LqO5biD5bGA5aSa5Liq572R5qC86aG577yM6YeM6Z2i5YyF5ZCrTuS4qmdyaWRJdGVt77yM5q+U5aaC77ya5YiG57G7572R5qC85YWl5Y+jXG4gIC0g5rWB5byP5a655Zmo77ya55So5LqO5biD5bGA5aSa5Liq5a2Q6aG577yM5a2Q6aG55Y+v5Lul5Zyo5LiA6KGM5pi+56S677yM5b2T5L2N572u5LiN5aSf5pe25bCx5o2i6KGM5pi+56S677yM5q+U5aaC77ya5LiA57uE5qCH562+dGFn55qE5o6S54mI5biD5bGAXG4gIC0g5aSa54q25oCB5a655Zmo77yaXFxgbXVsdGlTdGF0ZUNvbnRhaW5lclxcYCwgXFxgb25lU3RhdGVDb250ZW50Q29udGFpbmVyXFxg77yM55So5LqO5LiN5piv6YCa6L+H5Lqk5LqS77yM6ICM5piv6YCa6L+H6YC76L6R54q25oCB5Y+Y6YeP5Y+Y5YyW6ICM5pi+56S65LiN5ZCM54q25oCB55qE5YaF5a655a655Zmo77yM5q+U5aaC77ya55m75b2V54q25oCB5ZKM5pyq55m75b2V54q25oCB5YiG5Yir5pi+56S65LiN5ZCM55qE5YaF5a6544CCXG4tIOmrmOe6p+e7hOS7tuiKgueCueeahG5vZGVUeXBl57uT5p6E6KeE5YiZ77yaXG4gIC0gdGFiIOmAiemhueWNoe+8mlxcYHRhYk1lbnVCYXJcXGDmmK90YWLpgInpobnljaHoj5zljZXmoI/vvIzph4zpnaLljIXlkKtO5LiqXFxgdGFiTWVudUJhckl0ZW1cXGDvvIxcXGB0YWJQYW5lbEZhdGhlclxcYOaYr3RhYumAiemhueWNoeWGheWuueWuueWZqO+8jOmHjOmdouWMheWQq07kuKpcXGB0YWJQYW5lbFxcYO+8jFxcYHRhYk1lbnVCYXJcXGDlkoxcXGB0YWJQYW5lbEZhdGhlclxcYOW/hemhu+WQjOaXtuWtmOWcqO+8jFxcYHRhYlBhbmVsXFxg55qE5pWw6YeP5b+F6aG75ZKMXFxgdGFiTWVudUJhckl0ZW1cXGDnmoTmlbDph4/nm7jlkIxcbiAgLSB2aWV3UGFnZXIg6L2u5pKt77yaXFxgdmlld1BhZ2VyXFxg5piv6L2u5pKt5a655Zmo77yM6YeM6Z2i5YyF5ZCrTuS4qlxcYHZpZXdQYWdlckl0ZW1cXGDvvIxcXGB2aWV3UGFnZXJJbmRpY2F0b3JDb250YWluZXJcXGDmmK/ova7mkq3mjIfnpLrlmajlrrnlmajvvIxcXGB2aWV3UGFnZXJcXGDkuI5cXGB2aWV3UGFnZXJJbmRpY2F0b3JDb250YWluZXJcXGDlv4XpobvlkIzml7blrZjlnKhcbiAgLSDkuIDooYzkuI3lpJ/kvY3nva7mmL7npLrlsLHmjaLooYznmoTlrrnlmajvvJpcXGBpbmxpbmVCbG9ja0FuZFdyYXBcXGDvvIzph4zpnaLljIXlkKtO5LiqXFxgYmxvY2tJdGVtXFxg77yMXFxgYmxvY2tJdGVtXFxg5piv5a6D55qE5a2Q6aG5XG4gIC0g5aSa54q25oCB5a655Zmo77ya5LiA5LiqXFxgbXVsdGlTdGF0ZUNvbnRhaW5lclxcYOWkmueKtuaAgeWuueWZqOWMheWQq+WkmuS4qlxcYG9uZVN0YXRlQ29udGVudENvbnRhaW5lclxcYFxuXG4tIOe7hOS7tuexu+Wei+aemuS4viAobm9kZVR5cGUp5p6a5Li+77yaXG5cbiAgLSDlvaLnirbvvJpcXGByZWN0XFxgLCBcXGBjaXJjbGVcXGAsIFxcYGxpbmVcXGBcbiAgLSDln7rnoYDnu4Tku7bvvJpcXGB0ZXh0XFxg44CBXFxgYnV0dG9uXFxg44CBXFxgaW5wdXRcXGDjgIFcXGBpY29uXFxg44CBXFxgaW1hZ2VcXGBcbiAgLSDln7rnoYDlrrnlmajvvJpcXGBjb250YWluZXJcXGBcbiAgLSDnvZHmoLzlrrnlmajvvJpcXGBncmlkQ29udGFpbmVyXFxg44CBXFxgZ3JpZEl0ZW1cXGBcbiAgLSDmtYHlvI/lrrnlmajvvJpcXGBpbmxpbmVCbG9ja0FuZFdyYXBcXGDjgIFcXGBibG9ja0l0ZW1cXGBcbiAgLSDlvIDlhbPvvJpcXGBzd2l0Y2hcXGBcbiAgLSDljZXpgInvvJpcXGByYWRpb0dyb3VwXFxg44CBXFxgcmFkaW9cXGBcbiAgLSDlpJrpgInvvJpcXGBjaGVja0JveEdyb3VwXFxg44CBXFxgY2hlY2tCb3hcXGBcbiAgLSDpobbpg6jlr7zoiKrmoI/vvJpcXGB0b3BOYXZpZ2F0ZUJhclxcYFxuICAtIOWkmueKtuaAgeWuueWZqO+8mlxcYG11bHRpU3RhdGVDb250YWluZXJcXGAsIFxcYG9uZVN0YXRlQ29udGVudENvbnRhaW5lclxcYFxuICAtIOWIl+ihqO+8mlxcYHZlcnRpY2FsTGlzdFZpZXdcXGAsIFxcYGhvcml6b250YWxMaXN0Vmlld1xcYCwgXFxgbGlzdEl0ZW1DYXJkXFxg44CBXFxgbGlzdEZvb3RlckNvbnRhaW5lclxcYFxuICAtIOi9ruaSre+8mlxcYHZpZXdQYWdlclxcYCwgXFxgdmlld1BhZ2VySXRlbVxcYCwgXFxgdmlld1BhZ2VySW5kaWNhdG9yQ29udGFpbmVyXFxgXG4gIC0gdGFiIOmAiemhueWNoe+8mlxcYHRhYlBhbmVsRmF0aGVyXFxgLCBcXGB0YWJQYW5lbFxcYCwgXFxgdGFiTWVudUJhclxcYCwgXFxgdGFiTWVudUJhckl0ZW1cXGBcbiAgLSDlupXpg6jlr7zoiKo6IFxcYGJvdHRvbVRhYkNvbnRlbnRDb250YWluZXJcXGAsIFxcYHN1YlBhZ2VcXGAsIFxcYGJvdHRvbVRhYk5hdmlnYXRlQmFyXFxgLCBcXGBib3R0b21UYWJOYXZpZ2F0ZUJhckl0ZW1cXGBcbiAgLSDlr7nor53moYbvvJpcXGBkaWFsb2dPdmVybGF5XFxgLCBcXGBkaWFsb2dDb250ZW50XFxgXG4gIC0gdG9hc3Qg5o+Q56S677yaXFxgdG9hc3RcXGBcbiAgLSDkuIvmi4noj5zljZXvvJpcXGBkcm9wRG93bk1lbnVcXGBcbiAgLSDkvqfmu5HpnaLmnb/vvJpcXGBzaWRlU2xpZGVQYW5lbFxcYFxuXG4jIyDlm5vjgIHova7mkq3kuI5UYWJz57uE5Lu255qE6KeE5YiZXG4tIOi9ruaSreeahOavj+S4gOS4qlNsaWRl5ZKMVGFic+mAiemhueWNoee7hOS7tuavj+S4gOS4qlRhYiBQYW5lbOmDveW/hemhu+S9v+eUqFxcYGRpc3BsYXk6IG5vbmVcXGDlkoxcXGBkaXNwbGF5OiBibG9jay9mbGV4XFxg5p2l5a6e546w6ZqQ6JeP5ZKM5pi+56S655qE5LqS5pal5YiH5o2iXG4tIOi9ruaSreeahOavj+S4gOS4qlNsaWRl5b+F6aG75pyJaHRtbOS7o+eggeWunueOsO+8jOS4jeW+l+WPquWGmeesrDHkuKpTbGlkZeeahGh0bWzku6PnoIHvvIzlhbbku5ZTbGlkZeeahGh0bWzku6PnoIHkuZ/lv4XpobvopoHlhpnjgIJcbi0gVGFic+mAiemhueWNoee7hOS7tuavj+S4gOS4qlRhYiBQYW5lbOmDveW/hemhu+aciWh0bWzku6PnoIHlrp7njrDvvIzkuI3lvpflj6rlhpnnrKwx5LiqVGFiIFBhbmVs55qEaHRtbOS7o+egge+8jOWFtuS7llRhYiBQYW5lbOeahGh0bWzku6PnoIHkuZ/lv4XpobvopoHlhpnjgIJcblxuIyMg5LqU44CB5Zu+5qCH5LiO5Zu+54mH55qE6KeE5YiZXG4tIGljb27lm77moIflv4Xpobvkvb/nlKggRm9udEF3ZXNvbWUg5Zu+5qCH77yM5q+U5aaC77yaXFxgPGkgbmFtZT1cIuW+ruS/oUljb25cIiBub2RlVHlwZT1cImljb25cIiBpZD1cInd4SWNvblwiIGNsYXNzPVwiZmFiIGZhLXdlaXhpblwiPjwvaT5cXGBcbi0gaW1n5Zu+54mH55qEc3JjIOW/hemhu+S9v+eUqOWbvueJh+WcsOWdgO+8mlxcYGh0dHBzOi8vb3NzLmJ5dGVmdW5nby5jb20vZjEvc2hvd0ltZzEuanBnXFxgKe+8jOWFtuS4ree7k+WwvueahOKAmXNob3dJbWcxJ+WPr+S7peaNouS4uuS7jiAxIOWIsCAzMCDnmoTmlbDlrZfvvIwxfjMwIOeahOaVsOWtl+W/hemhu+maj+acuuaMkemAie+8jOS4jeW+l+avj+S4qumhtemdouavj+S4quWbvueJh+mDveS9v+eUqOWQjOS4gOS4quaVsOWtl+OAguWGmeazleavlOWmgu+8mlxcYDxpbWcgc3JjPVwiaHR0cHM6Ly9vc3MuYnl0ZWZ1bmdvLmNvbS9mMS9zaG93SW1nMTcuanBnXCIgYWx0PVwieHh4XCIgY2xhc3M9XCJ4eHhcIiBub2RlVHlwZT1cImltYWdlXCI+XFxgXG4tIOe7neWvueS4jeiDveS9v+eUqCBlbW9qaSDooajmg4XnrKblj7fvvIzkuI3lvpfkvb/nlKjku7vkvZUgZW1vamkg6KGo5oOF56ym5Y+377yM6K+35L2/55SoIGljb24g5oiWIGltZyDlm77niYfoioLngrnmnaXku6Pmm7/jgIJcblxuIyMg5YWt44CB6aaW6aG15Li75L2T6aG15LiO5a2Q6aG16Z2i55qE6KeE5YiZXG4tIOmmlumhteS4u+S9k+mhteW1jOWll+S6huWkmuS4quWtkOmhtemdou+8jOavj+S4gOS4quWtkOmhtemdoumDveS4jemcgOimgeWhq+WFheWGheWuue+8jOepuueZveWwseihjO+8jOWQjumdouS8muacieS4k+mXqOeahOS7u+WKoeadpeiuvuiuoeWFt+S9k+eahOWtkOmhtemdouOAglxuLSDku7vkvZXlrZDpobXpnaLpg73lv4XpobvnpoHmraLmt7vliqDlupXpg6jlr7zoiKrmoI/oioLngrnliLDpobXpnaLvvIzlm6DkuLrlrZDpobXpnaLmmK/ltYzlpZflnKjpppbpobXkuLvkvZPpobXkuK3nmoTvvIzniLbpobXpnaLlt7Lnu4/mnInlupXpg6jlr7zoiKrmoI/kuobvvIzlrZDpobXpnaLkuI3pnIDopoHlho3mt7vliqDlupXpg6jlr7zoiKrmoI/vvIzkuZ/kuI3lvpfmt7vliqDkuoznuqfpobXpnaLnmoTmoIfpopjmoI/liLDlrZDpobXpnaLkuK3vvIzlm6DkuLrlrZDpobXpnaLmmK/ltYzlpZflnKjpppbpobXkuLvkvZPpobXkuK3nmoTvvIzpppbpobXkuLvkvZPpobXlkozlroPnmoTlrZDpobXpnaLpg73mmK/kuIDnuqfpobXpnaLvvIzlm6DmraTkuI3lvpfmt7vliqDkuoznuqfpobXpnaLnmoTmoIfpopjmoI/liLDlrZDpobXpnaLkuK3jgIJcbmAiXX0=