UNPKG

bytefun-ai-mcp

Version:

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

101 lines (87 loc) 37.5 kB
export const uiDesignPromptTemplate = `# 你是一名资深UI/UX设计专家和前端开发专家,拥有丰富的应用设计经验,精通苹果人机界面设计指南你的任务是严格遵守12个规则要求,根据'用户需求描述'帮助我完成一个iOS App的原型设计 ## 核心原则 - 这是纯html+css页面设计,不得添加任何相关的js和ts代码 - **必须遵循'.bytefun/UI设计规范.md'的UI设计规范来定义颜色样式字体布局等** - 所有节点必须使用绝对定位,不得使用相对定位和其他定位,坐标是相对父亲容器的,高度和宽度必须固定,写法如下: \`\`\` html <div style="position: absolute; left: xxpx; top: xxpx; width: xxpx; height: xxpx;..."> // 内容 </div> \`\`\` ## 1UI设计要求 - **必须遵循'.bytefun/UI设计规范.md'的UI设计规范来定义颜色样式字体布局等** - 遵循iPhone 16 Pro尺寸规格(宽度393px高度852px) - 采用明亮活力的配色方案 - 使用最新的iOS设计元素和交互模式 - 文字的大小必须要注意,不能大,文字的大小要偏小的风格来进行设计 - 如用户没有明确描述说明页面背景色,只有闪屏页面的背景色允许设置primary主色或primary与secondary的渐变色,其他页面必须使用非primary与非secondary的纯色做页面背景色,比如一般使用白色系,如果是暗黑风那就是黑色系 - hover与点击反馈:请使用浅色的背景色background来反馈就行,严禁使用transform效果,如不得使用: .hot-sales-item:hover { transform: translateX(...px); } 正确写法应该是: .hot-sales-item:hover { background: ...; } - 输入框如果需要展示文字label,尽量使用icon代替文字label,并且icon放在输入框里面的左侧,输入框有placeholder提示,这样整个页面的空间利用率高 - 为每个屏幕添加设备手机系统的顶部状态栏vtype="phoneTopStatusBar"(高度必须设定为22px,显示手机时间信号wifi等)手机系统的底部首页指示器横条栏vtype="phoneBottomHomeIndicatorBar"(高度必须设定为22px,显示横条),不要遮住屏幕内的内容,手机顶部状态栏和手机底部横条栏需要实现沉浸式,因此它们要看情况设置背景色 - 登录方式如果用户没有描述说明,那就默认使用tab切换手机验证码登录和账号密码,下面是第三方登录方式:微信登录QQ登录微博 - 如果用户没有描述说明,注册登录页面一般有手机验证码用户协议隐私协议,并且两个协议是同一行的,一个checkbox就行 - 如果需要验证码填写页面,那么单个验证码数字输入框的宽度和高度必须是35px,并且所有paddingpadding-leftpadding-rightpadding-toppadding-bottom都必须是0 - 所有vtype="toast"的提示节点必须是在页面下半部份,设置bottom=150px,绝对不是在页面顶部 - 页面内容显示区里面的孩子节点禁止使用overflowoverflow-xoverflow-y属性,如果需要滚动,设置needScroll属性为true即可 ## 2icon图标与img图片写法和规则 - 当需要icon图标时必须使用FontAwesome图标,比如:\`<i name="微信Icon" vtype="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" vtype="image">\` - 绝对不能使用emoji表情符号,不得使用任何emoji表情符号,请使用icon或img图片节点来代替 ## 3html代码写法和规则 - 禁止写css动画的代码,这是UI设计稿,不需要动画,不得使用animation@keyframestransformtransition等任何动画相关的css属性 - css样式必须内联,不得使用外部css文件,并且不得使用节点的style来写样式,必须要先在\`<head>\`的\`<style>\`里面定义好各种css样式,然后节点使用class属性来引用 - 每个节点都必须添加idnamevtype属性,id属性值必须是英文,name属性值必须是中文,比如:\`<i name="微信Icon" vtype="icon" id="wxIcon" class="fab fa-weixin"></i>\` - 所有节点类型vtype的取值仅限使用'组件类型vtype固定枚举',必须熟悉记住'组件类型vtype固定枚举',必须将其放到缓存 - 轮播vtype="viewPager"TAB选项卡vtype="tabContainer"底部TAB组件vtype="bottomTabContentContainer"的每一页内容必须完整,不得省略任何内容比如有3页,那么每一页的内容都不能省略 - 禁止使用display和hidden属性,如果需要隐藏和显示节点,请先考虑是不是互斥的,比如:当需要实现A情况显示X的内容,B情况显示Y的内容,并且不是通过tabMenuBar来切换的,那么必须使用多状态容器vtype="multiStateContainer"来实现,而不是想着通过js来实现切换 - 当需要实现A情况显示X的内容,B情况显示Y的内容,并且不是通过tabMenuBar来切换的,那么必须使用多状态容器vtype="multiStateContainer"来实现,而不是想着通过js来实现切换比如要实现当最后一页时显示立即体验按钮,非最后一页显示下一步按钮,html写法如下: - 这是纯html+css页面设计,不得添加任何相关的js和ts代码 - vtype="switch"vtype="radio"vtype="checkBox"节点的孩子i标签节点必须添加一个checkedClass属性,用于表示选中状态的icon图标样式类名,比如: \`\`\` html <i name="开关Icon" vtype="icon" id="switchIcon" class="fa xxx" checkedClass="fa yyy"></i> <i name="单选Icon" vtype="icon" id="radioIcon" class="fa xxx" checkedClass="fa yyy"></i> <i name="单选Icon" vtype="icon" id="radioIcon" class="fas xxx" checkedClass="fas yyy"></i> \`\`\` - Icon图标必须使用<i>标签,<i>标签节点也必须需要添加一个id和name的属性,并且<i>标签里面绝对不能使用beforeaftermarker等等任何伪元素 - html和css样式里绝对不得使用beforeaftermarker等等任何伪元素 - 像素必须使用px,不使用rem和em等其他 - css样式绝对禁止使用毛玻璃效果,比如:backdrop-filter - 所有颜色值不得使用内置的颜色关键字,比如不得使用redbluegreenyellowpurple等颜色关键字,必须使用#000000#ffffff等16进制颜色值 - 开关switch单选radio多选checkBox的孩子节点必须使用i标签来实现图标Icon,不得使用圆角矩形或input标签来实现,图标使用Font Awesome CDN,checkBox不需要滑动效果 - 特别注意单选组vytpe="radioGroup"的使用,比如:5个类别tab,选中其中1个,选中的那个切换到选中状态,其他4个要切换为非选中状态这种场景就必须使用单选组,多选vytpe="radioGroup"必须包含N个单选vtype="radio"孩子节点 ## 4轮播viewPager组件结构固定规则 - 轮播容器vtype="viewPager"节点的css定义必须设置\`display: grid;grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 1fr);\`,它的vtype="oneViewPagerContent"孩子节点的css定义必须设置\`grid-column: 1; grid-row: 1;\`,绝对禁止设置\`position: absolute;\`,这样才能让多状态容器的孩子重叠在一起并通过\`opacity: 0;\`和\`opacity: 1;\`来实现显隐效果,并且父亲节点也不需要设置width和height了,因为所有子元素仍在文档流中,父容器会按最大的子元素自动决定大小 - 轮播viewPager组件的结构:必须是节点vtype="viewPager"轮播节点对应有一个轮播指示器vtype="viewPagerIndicatorContainer"节点与之对应,节点vtype="viewPager"包含N个vtype="oneViewPagerContent",vtype="viewPagerIndicatorContainer"节点必须包含着N个设置圆角的并且vtype="rect"的节点,其中vtype="rect"的节点不允许添加孩子,vtype="rect"的节点就是指示器的圆点节点,全部缺一不可 ## 5TAB选项卡tabContainer组件结构固定规则 - TAB选项卡vtype="tabContentWrapperContainer"节点的css定义必须设置\`display: grid;grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 1fr);\`,vtype="oneTabContentContainer"的孩子节点css定义必须设置\`grid-column: 1;grid-row: 1;\`,绝对禁止设置\`position: absolute;\`,这样才能让TAB选项卡wrapper容器的孩子重叠在一起并通过\`opacity: 0;\`和\`opacity: 1;\` 来实现显隐效果,并且父亲节点也不需要设置width和height了,因为所有子元素仍在文档流中,父容器会按最大的子元素自动决定大小 - tab组件tabContainer组件的结构:必须是最外层节点vtype="tabContainer"必须包含着1个vtype="tabMenuBar"节点和1个vtype="tabContentWrapperContainer"节点, vtype="tabContentWrapperContainer"节点必须包含着N个vtype="oneTabContentContainer"节点,vtype="tabMenuBar"节点必须包含着N个vtype="tabMenuBarItem"节点,全部缺一不可 ## 6多状态容器multiStateContainer组件结构固定规则 - 多状态容器vtype="multiStateContainer"节点容器在数据加载场景一般有加载后有数据加载中无数据联网失败四种状态,加载中无数据联网失败状态的内容一般是垂直居中的,然后必须默认是显示加载后有数据状态下的内容 - 多状态容器multiStateContainer组件的结构:必须是最外层节点vtype="multiStateContainer"包含N个vtype="oneStateContentContainer"节点,全部缺一不可 - 多状态容器vtype="multiStateContainer"节点的css定义必须设置\`display: grid;grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 1fr);\`,vtype="oneStateContentContainer"的孩子节点css定义必须设置\`grid-column: 1; grid-row: 1;\`,绝对禁止设置\`position: absolute;\`,这样才能让多状态容器的孩子重叠在一起并通过\`opacity: 0;\`和\`opacity: 1;\`来实现显隐效果,并且父亲节点也不需要设置width和height了,因为所有子元素仍在文档流中,父容器会按最大的子元素自动决定大小 - 当需要实现A情况显示X的内容,B情况显示Y的内容,并且不是通过tabMenuBar来切换的,那么必须使用多状态容器vtype="multiStateContainer"来实现,而不是想着通过js来实现切换比如要实现当最后一页时显示立即体验按钮,非最后一页显示下一步按钮,html写法如下: - 多状态容器vtype="multiStateContainer",默认必须设置正常成功加载后的内容显示的状态,比如:加载后有数据加载中无数据联网失败的四种状态显示,默认是显示加载后有数据状态下的内容,并且加载后有数据状态的节点必须排在最后 ## 7底部tab导航栏组件结构固定规则 - 底部tab导航栏组件必须是vtype="bottomTabContentContainer"必须包含着vtype="subPage"与vtype="bottomTabNavigateBar"孩子节点,其中子页面vtype="subPage"节点容器里绝对不能有孩子节点,绝对不能有任何占位内容 ## 8竖向列表vtype="verticalListView"与横向列表vtype="horizontalListView"组件结构固定规则 - 竖向列表vtype="verticalListView"与横向列表vtype="horizontalListView"组件必须包含着N个vtype="listItemCard"孩子节点,全部缺一不可 ## 9vtype="dialog"vtype="toast"vtype="dropDownMenu"vtype="sideSlidePanel"组件节点结构与固定规则 - 组件节点必须设置position: fixed;,不得设置position: absolute;或其他定位方式 - 组件节点的显示和隐藏必须使用opacity: 1;和opacity: 0;来实现,不得使用display: none;或他方式来实现 - 注意所有vtype="toast"的提示节点必须是在页面下半部份,设置bottom=150px,绝对不是在页面顶部 - 注意所有vtype="dropDownMenu"的下拉菜单节点必须在锚点元素的下方合适的位置,不得随便放置 - 注意所有vtype="sideSlidePanel"的侧滑面板,假设面板宽度w=300,那么如果是左侧侧滑面板,那么常态下(非打开状态)必须设置left=-300px,如果是右侧侧滑面板,那么常态下(非打开状态)必须设置right=-393px,不得随便放置,并且侧滑面板的高度h的最大值只能是:393 - 侧滑面板的y坐标值 ## 10组件节点显隐效果与绝对布局重叠显示固定规则 - vtype="oneStateContentContainer"vtype="oneViewPagerContent"vtype="oneTabContentContainer"vtype="dialog"vtype="toast"vtype="dropDownMenu"vtype="sideSlidePanel"节点必须使用opacity: 0;来实现隐藏效果,不得使用display: nonevisibility: hidden以及其他方式来实现隐藏效果,并且必须使用绝对定位来重叠显示 ## 11需要设置fromApiOrCacheData=true"的条件:必须是vtype="verticalListView"、vtype="horizontalListView"、vtype="viewPager"、vtype="tabContainer"、vtype="radioGroup"、vtype="checkBoxGroup"类型的节点组件,并且数据是从网络或者本地持久化缓存拉取回来的,比如:热门商品列表组件vtype="verticalListView",该组件的数据是从网络或者本地持久化缓存拉取回来的,那么设置fromApiOrCacheData="true"。 - 如果是一些不需要后端API联网或本地持久化缓存拉取获取的静态写死的数据,那么就不需要fromApiOrCacheData属性了,比如:个人中心列表项、设置列表项、菜单列表项,这些根本不需要经过后台API联网或本地持久化缓存拉取获取的,那么就不要fromApiOrCacheData属性。 ## 12、组件类型vtype固定枚举 文字vtype="text"、按钮vtype="button"、输入框vtype="input"、图标vtype="icon"、图片vtype="image"、矩形vtype="rect"、圆形vtype="circle"、线条vtype="line"、基础容器vtype="container"、手机系统的顶部状态栏vtype="phoneTopStatusBar"、手机系统的底部首页指示器横条栏vtype="phoneBottomHomeIndicatorBar"、多状态容器vtype="multiStateContainer"、某状态视图容器vtype="oneStateContentContainer"、卡片容器vtype="card"、开关vtype="switch"、一个单选vtype="radio"、一个多选vtype="checkBox"、单选组(多个单选)vtype="radioGroup"、多选组(多个多选)vtype="checkBoxGroup"、竖向列表vtype="verticalListView"、横向列表vtype="horizontalListView"、列表item卡片vtype="listItemCard", 轮播vtype="viewPager"、轮播区域vtype="oneViewPagerContent"、轮播指示器容器vtype="viewPagerIndicatorContainer"、TAB选项卡vtype="tabContainer"、 TAB选项卡内容包裹容器vtype="tabContentWrapperContainer"、TAB选项卡一页内容区vtype="oneTabContentContainer"、Tab选项卡菜单栏vtype="tabMenuBar"、Tab选项卡菜单栏item项vtype="tabMenuBarItem"、底部TAB组件vtype="bottomTabContentContainer"、底部TAB子页面内容区vtype="subPage"、底部TAB组件导航栏vtype="bottomTabNavigateBar"、底部TAB组件导航栏item项vtype="bottomTabNavigateBarItem"、顶部导航栏vtype="topNavigateBar"、顶部标题栏vtype="topTitleBar"、底部操作栏vtype="bottomOperateBar"、对话框vtype="dialog"、Toast提示vtype="toast"、下拉菜单vtype="dropDownMenu"、侧滑面板vtype="sideSlidePanel"。`; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlEZXNpZ25FZGl0Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91aURlc2lnbkVkaXQyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a25DQW1HNGtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr+S4gOWQjei1hOa3sVVJL1VY6K6+6K6h5LiT5a625ZKM5YmN56uv5byA5Y+R5LiT5a6277yM5oul5pyJ5Liw5a+M55qE5bqU55So6K6+6K6h57uP6aqM77yM57K+6YCa6Iu55p6c5Lq65py655WM6Z2i6K6+6K6h5oyH5Y2X44CC5L2g55qE5Lu75Yqh5piv5Lil5qC86YG15a6IMTLkuKrop4TliJnopoHmsYLvvIzmoLnmja4n55So5oi36ZyA5rGC5o+P6L+wJ+W4ruWKqeaIkeWujOaIkOS4gOS4qmlPUyBBcHDnmoTljp/lnovorr7orqHjgIJcblxuIyMg5qC45b+D5Y6f5YiZXG4tIOi/meaYr+e6r2h0bWwrY3Nz6aG16Z2i6K6+6K6h77yM5LiN5b6X5re75Yqg5Lu75L2V55u45YWz55qEanPlkox0c+S7o+eggeOAgiAgICBcbi0gKirlv4XpobvpgbXlvqonLmJ5dGVmdW4vVUnorr7orqHop4TojIMubWQn55qEVUnorr7orqHop4TojIPmnaXlrprkuYnpopzoibLjgIHmoLflvI/jgIHlrZfkvZPjgIHluIPlsYDnrYkqKlxuLSDmiYDmnInoioLngrnlv4Xpobvkvb/nlKjnu53lr7nlrprkvY3vvIzkuI3lvpfkvb/nlKjnm7jlr7nlrprkvY3lkozlhbbku5blrprkvY3vvIzlnZDmoIfmmK/nm7jlr7nniLbkurLlrrnlmajnmoTvvIzpq5jluqblkozlrr3luqblv4Xpobvlm7rlrprvvIzlhpnms5XlpoLkuIvvvJpcblxcYFxcYFxcYCBodG1sIFxuPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogeHhweDsgdG9wOiB4eHB4OyB3aWR0aDogeHhweDsgaGVpZ2h0OiB4eHB4Oy4uLlwiPlxuICAgIC8vIOWGheWuuVxuPC9kaXY+XG5cXGBcXGBcXGAgIFxuXG4jIyAx44CBVUnorr7orqHopoHmsYJcbi0gKirlv4XpobvpgbXlvqonLmJ5dGVmdW4vVUnorr7orqHop4TojIMubWQn55qEVUnorr7orqHop4TojIPmnaXlrprkuYnpopzoibLjgIHmoLflvI/jgIHlrZfkvZPjgIHluIPlsYDnrYkqKlxuLSDpgbXlvqppUGhvbmUgMTYgUHJv5bC65a+46KeE5qC8KOWuveW6pjM5M3B46auY5bqmODUycHgpXG4tIOmHh+eUqOaYjuS6ruOAgea0u+WKm+eahOmFjeiJsuaWueahiFxuLSDkvb/nlKjmnIDmlrDnmoRpT1Porr7orqHlhYPntKDlkozkuqTkupLmqKHlvI9cbi0g5paH5a2X55qE5aSn5bCP5b+F6aG76KaB5rOo5oSP77yM5LiN6IO95aSn77yM5paH5a2X55qE5aSn5bCP6KaB5YGP5bCP55qE6aOO5qC85p2l6L+b6KGM6K6+6K6h44CCXG4tIOWmgueUqOaIt+ayoeacieaYjuehruaPj+i/sOivtOaYjumhtemdouiDjOaZr+iJsu+8jOWPquaciemXquWxj+mhtemdoueahOiDjOaZr+iJsuWFgeiuuOiuvue9rnByaW1hcnnkuLvoibLmiJZwcmltYXJ55LiOc2Vjb25kYXJ555qE5riQ5Y+Y6Imy77yM5YW25LuW6aG16Z2i5b+F6aG75L2/55So6Z2ecHJpbWFyeeS4jumdnnNlY29uZGFyeeeahOe6r+iJsuWBmumhtemdouiDjOaZr+iJsu+8jOavlOWmguS4gOiIrOS9v+eUqOeZveiJsuezu++8jOWmguaenOaYr+aal+m7kemjjumCo+WwseaYr+m7keiJsuezu+OAglxuLSBob3ZlcuS4jueCueWHu+WPjemmiO+8muivt+S9v+eUqOa1heiJsueahOiDjOaZr+iJsmJhY2tncm91bmTmnaXlj43ppojlsLHooYzvvIzkuKXnpoHkvb/nlKh0cmFuc2Zvcm3mlYjmnpzvvIzlpoLkuI3lvpfkvb/nlKjvvJogXG4gICAgLmhvdC1zYWxlcy1pdGVtOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC4uLnB4KTtcbiAgICB9XG4gICAg5q2j56Gu5YaZ5rOV5bqU6K+l5piv77yaXG4gICAgLmhvdC1zYWxlcy1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogLi4uO1xuICAgIH1cbi0g6L6T5YWl5qGG5aaC5p6c6ZyA6KaB5bGV56S65paH5a2XbGFiZWzvvIzlsL3ph4/kvb/nlKhpY29u5Luj5pu/5paH5a2XbGFiZWzvvIzlubbkuJRpY29u5pS+5Zyo6L6T5YWl5qGG6YeM6Z2i55qE5bem5L6n77yM6L6T5YWl5qGG5pyJcGxhY2Vob2xkZXLmj5DnpLrvvIzov5nmoLfmlbTkuKrpobXpnaLnmoTnqbrpl7TliKnnlKjnjofpq5jjgIJcbi0g5Li65q+P5Liq5bGP5bmV5re75Yqg6K6+5aSH5omL5py657O757uf55qE6aG26YOo54q25oCB5qCPdnR5cGU9XCJwaG9uZVRvcFN0YXR1c0JhclwiKOmrmOW6puW/hemhu+iuvuWumuS4ujIycHjvvIzmmL7npLrmiYvmnLrml7bpl7TjgIHkv6Hlj7fjgIF3aWZp562JKeOAgeaJi+acuuezu+e7n+eahOW6lemDqOmmlumhteaMh+ekuuWZqOaoquadoeagj3Z0eXBlPVwicGhvbmVCb3R0b21Ib21lSW5kaWNhdG9yQmFyXCIo6auY5bqm5b+F6aG76K6+5a6a5Li6MjJweO+8jOaYvuekuuaoquadoSnvvIzkuI3opoHpga7kvY/lsY/luZXlhoXnmoTlhoXlrrnvvIzmiYvmnLrpobbpg6jnirbmgIHmoI/lkozmiYvmnLrlupXpg6jmqKrmnaHmoI/pnIDopoHlrp7njrDmsonmtbjlvI/vvIzlm6DmraTlroPku6zopoHnnIvmg4XlhrXorr7nva7og4zmma/oibLjgIJcbi0g55m75b2V5pa55byP5aaC5p6c55So5oi35rKh5pyJ5o+P6L+w6K+05piO77yM6YKj5bCx6buY6K6k5L2/55SodGFi5YiH5o2i5omL5py66aqM6K+B56CB55m75b2V5ZKM6LSm5Y+35a+G56CB77yM5LiL6Z2i5piv56ys5LiJ5pa555m75b2V5pa55byP77ya5b6u5L+h55m75b2V44CBUVHnmbvlvZXjgIHlvq7ljZrjgIJcbi0g5aaC5p6c55So5oi35rKh5pyJ5o+P6L+w6K+05piO77yM5rOo5YaM55m75b2V6aG16Z2i5LiA6Iis5pyJ5omL5py66aqM6K+B56CB44CB55So5oi35Y2P6K6u44CB6ZqQ56eB5Y2P6K6u77yM5bm25LiU5Lik5Liq5Y2P6K6u5piv5ZCM5LiA6KGM55qE77yM5LiA5LiqY2hlY2tib3jlsLHooYzjgIJcbi0g5aaC5p6c6ZyA6KaB6aqM6K+B56CB5aGr5YaZ6aG16Z2i77yM6YKj5LmI5Y2V5Liq6aqM6K+B56CB5pWw5a2X6L6T5YWl5qGG55qE5a695bqm5ZKM6auY5bqm5b+F6aG75pivMzVweO+8jOW5tuS4lOaJgOaciXBhZGRpbmfjgIFwYWRkaW5nLWxlZnTjgIFwYWRkaW5nLXJpZ2h044CBcGFkZGluZy10b3DjgIFwYWRkaW5nLWJvdHRvbemDveW/hemhu+aYrzDjgIJcbi0g5omA5pyJdnR5cGU9XCJ0b2FzdFwi55qE5o+Q56S66IqC54K55b+F6aG75piv5Zyo6aG16Z2i5LiL5Y2K6YOo5Lu977yM6K6+572uYm90dG9tPTE1MHB477yM57ud5a+55LiN5piv5Zyo6aG16Z2i6aG26YOo44CCXG4tIOmhtemdouWGheWuueaYvuekuuWMuumHjOmdoueahOWtqeWtkOiKgueCueemgeatouS9v+eUqG92ZXJmbG9344CBb3ZlcmZsb3cteOOAgW92ZXJmbG93LXnlsZ7mgKfvvIzlpoLmnpzpnIDopoHmu5rliqjvvIzorr7nva5uZWVkU2Nyb2xs5bGe5oCn5Li6dHJ1ZeWNs+WPr+OAglxuXG4jIyAy44CBaWNvbuWbvuagh+S4jmltZ+WbvueJh+WGmeazleWSjOinhOWImVxuLSDlvZPpnIDopoFpY29u5Zu+5qCH5pe25b+F6aG75L2/55SoRm9udEF3ZXNvbWXlm77moIfvvIzmr5TlpoLvvJpcXGA8aSBuYW1lPVwi5b6u5L+hSWNvblwiIHZ0eXBlPVwiaWNvblwiIGlkPVwid3hJY29uXCIgY2xhc3M9XCJmYWIgZmEtd2VpeGluXCI+PC9pPlxcYFxuLSDlvZPpnIDopoFpbWflm77niYfml7bvvIxzcmPkvb/nlKjlm77niYflnLDlnYDvvJpcXGBodHRwczovL29zcy5ieXRlZnVuZ28uY29tL2YxL3Nob3dJbWcxLmpwZ1xcYCnvvIzlhbbkuK3nu5PlsL7nmoTigJlzaG93SW1nMSflj6/ku6XmjaLkuLrku44x5YiwMzDnmoTmlbDlrZfvvIwxfjMw55qE5pWw5a2X5b+F6aG76ZqP5py65oyR6YCJ77yM5LiN5b6X5q+P5Liq6aG16Z2i5q+P5Liq5Zu+54mH6YO95L2/55So5ZCM5LiA5Liq5pWw5a2X44CC5YaZ5rOV5q+U5aaC77yaXFxgPGltZyBzcmM9XCJodHRwczovL29zcy5ieXRlZnVuZ28uY29tL2YxL3Nob3dJbWcxNy5qcGdcIiBhbHQ9XCJ4eHhcIiBjbGFzcz1cInh4eFwiIHZ0eXBlPVwiaW1hZ2VcIj5cXGBcbi0g57ud5a+55LiN6IO95L2/55SoZW1vamnooajmg4XnrKblj7fvvIzkuI3lvpfkvb/nlKjku7vkvZVlbW9qaeihqOaDheespuWPt++8jOivt+S9v+eUqGljb27miJZpbWflm77niYfoioLngrnmnaXku6Pmm7/jgIJcblxuIyMgM+OAgWh0bWzku6PnoIHlhpnms5Xlkozop4TliJlcbi0g56aB5q2i5YaZY3Nz5Yqo55S755qE5Luj56CB77yM6L+Z5pivVUnorr7orqHnqL/vvIzkuI3pnIDopoHliqjnlLvvvIzkuI3lvpfkvb/nlKhhbmltYXRpb27jgIFAa2V5ZnJhbWVz44CBdHJhbnNmb3Jt44CBdHJhbnNpdGlvbuetieS7u+S9leWKqOeUu+ebuOWFs+eahGNzc+WxnuaAp+OAglxuLSBjc3PmoLflvI/lv4XpobvlhoXogZTvvIzkuI3lvpfkvb/nlKjlpJbpg6hjc3Pmlofku7bvvIzlubbkuJTkuI3lvpfkvb/nlKjoioLngrnnmoRzdHlsZeadpeWGmeagt+W8j++8jOW/hemhu+imgeWFiOWcqFxcYDxoZWFkPlxcYOeahFxcYDxzdHlsZT5cXGDph4zpnaLlrprkuYnlpb3lkITnp41jc3PmoLflvI/vvIznhLblkI7oioLngrnkvb/nlKhjbGFzc+WxnuaAp+adpeW8leeUqOOAglxuLSDmr4/kuKroioLngrnpg73lv4Xpobvmt7vliqBpZOOAgW5hbWXjgIF2dHlwZeWxnuaAp++8jGlk5bGe5oCn5YC85b+F6aG75piv6Iux5paH77yMbmFtZeWxnuaAp+WAvOW/hemhu+aYr+S4reaWh++8jOavlOWmgu+8mlxcYDxpIG5hbWU9XCLlvq7kv6FJY29uXCIgdnR5cGU9XCJpY29uXCIgaWQ9XCJ3eEljb25cIiBjbGFzcz1cImZhYiBmYS13ZWl4aW5cIj48L2k+XFxgXG4tIOaJgOacieiKgueCueexu+Wei3Z0eXBl55qE5Y+W5YC85LuF6ZmQ5L2/55SoJ+e7hOS7tuexu+Wei3Z0eXBl5Zu65a6a5p6a5Li+J++8jOW/hemhu+eGn+aCieiusOS9jyfnu4Tku7bnsbvlnot2dHlwZeWbuuWumuaemuS4vifvvIzlv4XpobvlsIblhbbmlL7liLDnvJPlrZhcbi0g6L2u5pKtdnR5cGU9XCJ2aWV3UGFnZXJcIuOAgVRBQumAiemhueWNoXZ0eXBlPVwidGFiQ29udGFpbmVyXCLjgIHlupXpg6hUQULnu4Tku7Z2dHlwZT1cImJvdHRvbVRhYkNvbnRlbnRDb250YWluZXJcIueahOavj+S4gOmhteWGheWuueW/hemhu+WujOaVtO+8jOS4jeW+l+ecgeeVpeS7u+S9leWGheWuueOAguavlOWmguaciTPpobXvvIzpgqPkuYjmr4/kuIDpobXnmoTlhoXlrrnpg73kuI3og73nnIHnlaXjgIJcbi0g56aB5q2i5L2/55SoZGlzcGxheeWSjGhpZGRlbuWxnuaAp++8jOWmguaenOmcgOimgemakOiXj+WSjOaYvuekuuiKgueCue+8jOivt+WFiOiAg+iZkeaYr+S4jeaYr+S6kuaWpeeahO+8jOavlOWmgu+8muW9k+mcgOimgeWunueOsEHmg4XlhrXmmL7npLpY55qE5YaF5a6577yMQuaDheWGteaYvuekulnnmoTlhoXlrrnvvIzlubbkuJTkuI3mmK/pgJrov4d0YWJNZW51QmFy5p2l5YiH5o2i55qE77yM6YKj5LmI5b+F6aG75L2/55So5aSa54q25oCB5a655ZmodnR5cGU9XCJtdWx0aVN0YXRlQ29udGFpbmVyXCLmnaXlrp7njrDvvIzogIzkuI3mmK/mg7PnnYDpgJrov4dqc+adpeWunueOsOWIh+aNouOAglxuLSDlvZPpnIDopoHlrp7njrBB5oOF5Ya15pi+56S6WOeahOWGheWuue+8jELmg4XlhrXmmL7npLpZ55qE5YaF5a6577yM5bm25LiU5LiN5piv6YCa6L+HdGFiTWVudUJhcuadpeWIh+aNoueahO+8jOmCo+S5iOW/hemhu+S9v+eUqOWkmueKtuaAgeWuueWZqHZ0eXBlPVwibXVsdGlTdGF0ZUNvbnRhaW5lclwi5p2l5a6e546w77yM6ICM5LiN5piv5oOz552A6YCa6L+HanPmnaXlrp7njrDliIfmjaLjgILmr5TlpoLopoHlrp7njrDlvZPmnIDlkI7kuIDpobXml7bmmL7npLrnq4vljbPkvZPpqozmjInpkq7vvIzpnZ7mnIDlkI7kuIDpobXmmL7npLrkuIvkuIDmraXmjInpkq7vvIxodG1s5YaZ5rOV5aaC5LiL77yaXG4tIOi/meaYr+e6r2h0bWwrY3Nz6aG16Z2i6K6+6K6h77yM5LiN5b6X5re75Yqg5Lu75L2V55u45YWz55qEanPlkox0c+S7o+eggeOAgiAgICBcbi0gdnR5cGU9XCJzd2l0Y2hcIuOAgXZ0eXBlPVwicmFkaW9cIuOAgXZ0eXBlPVwiY2hlY2tCb3hcIuiKgueCueeahOWtqeWtkGnmoIfnrb7oioLngrnlv4Xpobvmt7vliqDkuIDkuKpjaGVja2VkQ2xhc3PlsZ7mgKfvvIznlKjkuo7ooajnpLrpgInkuK3nirbmgIHnmoRpY29u5Zu+5qCH5qC35byP57G75ZCN77yM5q+U5aaC77yaXG5cXGBcXGBcXGAgaHRtbFxuPGkgbmFtZT1cIuW8gOWFs0ljb25cIiB2dHlwZT1cImljb25cIiBpZD1cInN3aXRjaEljb25cIiBjbGFzcz1cImZhIHh4eFwiIGNoZWNrZWRDbGFzcz1cImZhIHl5eVwiPjwvaT5cbjxpIG5hbWU9XCLljZXpgIlJY29uXCIgdnR5cGU9XCJpY29uXCIgaWQ9XCJyYWRpb0ljb25cIiBjbGFzcz1cImZhIHh4eFwiIGNoZWNrZWRDbGFzcz1cImZhIHl5eVwiPjwvaT5cbjxpIG5hbWU9XCLljZXpgIlJY29uXCIgdnR5cGU9XCJpY29uXCIgaWQ9XCJyYWRpb0ljb25cIiBjbGFzcz1cImZhcyB4eHhcIiBjaGVja2VkQ2xhc3M9XCJmYXMgeXl5XCI+PC9pPlxuXFxgXFxgXFxgXG4tIEljb27lm77moIflv4Xpobvkvb/nlKg8aT7moIfnrb7vvIw8aT7moIfnrb7oioLngrnkuZ/lv4XpobvpnIDopoHmt7vliqDkuIDkuKppZOWSjG5hbWXnmoTlsZ7mgKfvvIzlubbkuJQ8aT7moIfnrb7ph4zpnaLnu53lr7nkuI3og73kvb/nlKhiZWZvcmXjgIFhZnRlcuOAgW1hcmtlcuetieetieS7u+S9leS8quWFg+e0oOOAglxuLSBodG1s5ZKMY3Nz5qC35byP6YeM57ud5a+55LiN5b6X5L2/55SoYmVmb3Jl44CBYWZ0ZXLjgIFtYXJrZXLnrYnnrYnku7vkvZXkvKrlhYPntKBcbi0g5YOP57Sg5b+F6aG75L2/55SocHjvvIzkuI3kvb/nlKhyZW3lkoxlbeetieWFtuS7luOAglxuLSDinYwgY3Nz5qC35byP57ud5a+556aB5q2i5L2/55So5q+b546755KD5pWI5p6c77yM5q+U5aaC77yaYmFja2Ryb3AtZmlsdGVyXG4tIOaJgOacieminOiJsuWAvOS4jeW+l+S9v+eUqOWGhee9rueahOminOiJsuWFs+mUruWtl++8jOavlOWmguS4jeW+l+S9v+eUqHJlZOOAgWJsdWXjgIFncmVlbuOAgXllbGxvd+OAgXB1cnBsZeetieminOiJsuWFs+mUruWtl++8jOW/hemhu+S9v+eUqCMwMDAwMDDjgIEjZmZmZmZm562JMTbov5vliLbpopzoibLlgLzjgIJcbi0g5byA5YWzc3dpdGNo44CB5Y2V6YCJcmFkaW/jgIHlpJrpgIljaGVja0JveOeahOWtqeWtkOiKgueCueW/hemhu+S9v+eUqGnmoIfnrb7mnaXlrp7njrDlm77moIdJY29u77yM5LiN5b6X5L2/55So5ZyG6KeS55+p5b2i5oiWaW5wdXTmoIfnrb7mnaXlrp7njrDvvIzlm77moIfkvb/nlKhGb250IEF3ZXNvbWUgQ0RO77yMY2hlY2tCb3jkuI3pnIDopoHmu5HliqjmlYjmnpzjgIJcbi0g54m55Yir5rOo5oSP5Y2V6YCJ57uEdnl0cGU9XCJyYWRpb0dyb3VwXCLnmoTkvb/nlKjvvIzmr5TlpoLvvJo15Liq57G75YirdGFi77yM6YCJ5Lit5YW25LitMeS4qu+8jOmAieS4reeahOmCo+S4quWIh+aNouWIsOmAieS4reeKtuaAge+8jOWFtuS7ljTkuKropoHliIfmjaLkuLrpnZ7pgInkuK3nirbmgIHjgILov5nnp43lnLrmma/lsLHlv4Xpobvkvb/nlKjljZXpgInnu4TvvIzlpJrpgIl2eXRwZT1cInJhZGlvR3JvdXBcIuW/hemhu+WMheWQq07kuKrljZXpgIl2dHlwZT1cInJhZGlvXCLlranlrZDoioLngrnjgIJcblxuIyMgNOOAgei9ruaSrXZpZXdQYWdlcue7hOS7tue7k+aehOWbuuWumuinhOWImVxuLSDova7mkq3lrrnlmah2dHlwZT1cInZpZXdQYWdlclwi6IqC54K555qEY3Nz5a6a5LmJ5b+F6aG76K6+572uXFxgZGlzcGxheTogZ3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIDFmcik7XFxg77yM5a6D55qEdnR5cGU9XCJvbmVWaWV3UGFnZXJDb250ZW50XCLlranlrZDoioLngrnnmoRjc3PlrprkuYnlv4Xpobvorr7nva5cXGBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDE7XFxg77yM57ud5a+556aB5q2i6K6+572uXFxgcG9zaXRpb246IGFic29sdXRlO1xcYO+8jOi/meagt+aJjeiDveiuqeWkmueKtuaAgeWuueWZqOeahOWtqeWtkOmHjeWPoOWcqOS4gOi1t+W5tumAmui/h1xcYG9wYWNpdHk6IDA7XFxg5ZKMXFxgb3BhY2l0eTogMTtcXGDmnaXlrp7njrDmmL7pmpDmlYjmnpzvvIzlubbkuJTniLbkurLoioLngrnkuZ/kuI3pnIDopoHorr7nva53aWR0aOWSjGhlaWdodOS6hu+8jOWboOS4uuaJgOacieWtkOWFg+e0oOS7jeWcqOaWh+aho+a1geS4re+8jOeItuWuueWZqOS8muaMieacgOWkp+eahOWtkOWFg+e0oOiHquWKqOWGs+WumuWkp+Wwj+OAglxuLSDova7mkq12aWV3UGFnZXLnu4Tku7bnmoTnu5PmnoTvvJrlv4XpobvmmK/oioLngrl2dHlwZT1cInZpZXdQYWdlclwi6L2u5pKt6IqC54K55a+55bqU5pyJ5LiA5Liq6L2u5pKt5oyH56S65ZmodnR5cGU9XCJ2aWV3UGFnZXJJbmRpY2F0b3JDb250YWluZXJcIuiKgueCueS4juS5i+WvueW6lO+8jOiKgueCuXZ0eXBlPVwidmlld1BhZ2VyXCLljIXlkKtO5LiqdnR5cGU9XCJvbmVWaWV3UGFnZXJDb250ZW50XCLvvIx2dHlwZT1cInZpZXdQYWdlckluZGljYXRvckNvbnRhaW5lclwi6IqC54K55b+F6aG75YyF5ZCr552ATuS4quiuvue9ruWchuinkueahOW5tuS4lHZ0eXBlPVwicmVjdFwi55qE6IqC54K577yM5YW25LitdnR5cGU9XCJyZWN0XCLnmoToioLngrnkuI3lhYHorrjmt7vliqDlranlrZDvvIx2dHlwZT1cInJlY3RcIueahOiKgueCueWwseaYr+aMh+ekuuWZqOeahOWchueCueiKgueCue+8jOWFqOmDqOe8uuS4gOS4jeWPr+OAglxuXG4jIyA144CBVEFC6YCJ6aG55Y2hdGFiQ29udGFpbmVy57uE5Lu257uT5p6E5Zu65a6a6KeE5YiZXG4tIFRBQumAiemhueWNoXZ0eXBlPVwidGFiQ29udGVudFdyYXBwZXJDb250YWluZXJcIuiKgueCueeahGNzc+WumuS5ieW/hemhu+iuvue9rlxcYGRpc3BsYXk6IGdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCAxZnIpO1xcYO+8jHZ0eXBlPVwib25lVGFiQ29udGVudENvbnRhaW5lclwi55qE5a2p5a2Q6IqC54K5Y3Nz5a6a5LmJ5b+F6aG76K6+572uXFxgZ3JpZC1jb2x1bW46IDE7Z3JpZC1yb3c6IDE7XFxg77yM57ud5a+556aB5q2i6K6+572uXFxgcG9zaXRpb246IGFic29sdXRlO1xcYO+8jOi/meagt+aJjeiDveiuqVRBQumAiemhueWNoXdyYXBwZXLlrrnlmajnmoTlranlrZDph43lj6DlnKjkuIDotbflubbpgJrov4dcXGBvcGFjaXR5OiAwO1xcYOWSjFxcYG9wYWNpdHk6IDE7XFxgIOadpeWunueOsOaYvumakOaViOaenO+8jOW5tuS4lOeItuS6suiKgueCueS5n+S4jemcgOimgeiuvue9rndpZHRo5ZKMaGVpZ2h05LqG77yM5Zug5Li65omA5pyJ5a2Q5YWD57Sg5LuN5Zyo5paH5qGj5rWB5Lit77yM54i25a655Zmo5Lya5oyJ5pyA5aSn55qE5a2Q5YWD57Sg6Ieq5Yqo5Yaz5a6a5aSn5bCP44CCXG4tIHRhYue7hOS7tnRhYkNvbnRhaW5lcue7hOS7tueahOe7k+aehO+8muW/hemhu+aYr+acgOWkluWxguiKgueCuXZ0eXBlPVwidGFiQ29udGFpbmVyXCLlv4XpobvljIXlkKvnnYAx5LiqdnR5cGU9XCJ0YWJNZW51QmFyXCLoioLngrnlkowx5LiqdnR5cGU9XCJ0YWJDb250ZW50V3JhcHBlckNvbnRhaW5lclwi6IqC54K577yMIHZ0eXBlPVwidGFiQ29udGVudFdyYXBwZXJDb250YWluZXJcIuiKgueCueW/hemhu+WMheWQq+edgE7kuKp2dHlwZT1cIm9uZVRhYkNvbnRlbnRDb250YWluZXJcIuiKgueCue+8jHZ0eXBlPVwidGFiTWVudUJhclwi6IqC54K55b+F6aG75YyF5ZCr552ATuS4qnZ0eXBlPVwidGFiTWVudUJhckl0ZW1cIuiKgueCue+8jOWFqOmDqOe8uuS4gOS4jeWPr+OAglxuXG4jIyA244CB5aSa54q25oCB5a655ZmobXVsdGlTdGF0ZUNvbnRhaW5lcue7hOS7tue7k+aehOWbuuWumuinhOWImVxuLSDlpJrnirbmgIHlrrnlmah2dHlwZT1cIm11bHRpU3RhdGVDb250YWluZXJcIuiKgueCueWuueWZqOWcqOaVsOaNruWKoOi9veWcuuaZr+S4gOiIrOacieWKoOi9veWQjuacieaVsOaNruOAgeWKoOi9veS4reOAgeaXoOaVsOaNruOAgeiBlOe9keWksei0peWbm+enjeeKtuaAge+8jOWKoOi9veS4reOAgeaXoOaVsOaNruOAgeiBlOe9keWksei0peeKtuaAgeeahOWGheWuueS4gOiIrOaYr+WeguebtOWxheS4reeahO+8jOeEtuWQjuW/hemhu+m7mOiupOaYr+aYvuekuuWKoOi9veWQjuacieaVsOaNrueKtuaAgeS4i+eahOWGheWuueOAglxuLSDlpJrnirbmgIHlrrnlmahtdWx0aVN0YXRlQ29udGFpbmVy57uE5Lu255qE57uT5p6E77ya5b+F6aG75piv5pyA5aSW5bGC6IqC54K5dnR5cGU9XCJtdWx0aVN0YXRlQ29udGFpbmVyXCLljIXlkKtO5LiqdnR5cGU9XCJvbmVTdGF0ZUNvbnRlbnRDb250YWluZXJcIuiKgueCue+8jOWFqOmDqOe8uuS4gOS4jeWPr+OAglxuLSDlpJrnirbmgIHlrrnlmah2dHlwZT1cIm11bHRpU3RhdGVDb250YWluZXJcIuiKgueCueeahGNzc+WumuS5ieW/hemhu+iuvue9rlxcYGRpc3BsYXk6IGdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCAxZnIpO1xcYO+8jHZ0eXBlPVwib25lU3RhdGVDb250ZW50Q29udGFpbmVyXCLnmoTlranlrZDoioLngrljc3PlrprkuYnlv4Xpobvorr7nva5cXGBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDE7XFxg77yM57ud5a+556aB5q2i6K6+572uXFxgcG9zaXRpb246IGFic29sdXRlO1xcYO+8jOi/meagt+aJjeiDveiuqeWkmueKtuaAgeWuueWZqOeahOWtqeWtkOmHjeWPoOWcqOS4gOi1t+W5tumAmui/h1xcYG9wYWNpdHk6IDA7XFxg5ZKMXFxgb3BhY2l0eTogMTtcXGDmnaXlrp7njrDmmL7pmpDmlYjmnpzvvIzlubbkuJTniLbkurLoioLngrnkuZ/kuI3pnIDopoHorr7nva53aWR0aOWSjGhlaWdodOS6hu+8jOWboOS4uuaJgOacieWtkOWFg+e0oOS7jeWcqOaWh+aho+a1geS4re+8jOeItuWuueWZqOS8muaMieacgOWkp+eahOWtkOWFg+e0oOiHquWKqOWGs+WumuWkp+Wwj+OAglxuLSDlvZPpnIDopoHlrp7njrBB5oOF5Ya15pi+56S6WOeahOWGheWuue+8jELmg4XlhrXmmL7npLpZ55qE5YaF5a6577yM5bm25LiU5LiN5piv6YCa6L+HdGFiTWVudUJhcuadpeWIh+aNoueahO+8jOmCo+S5iOW/hemhu+S9v+eUqOWkmueKtuaAgeWuueWZqHZ0eXBlPVwibXVsdGlTdGF0ZUNvbnRhaW5lclwi5p2l5a6e546w77yM6ICM5LiN5piv5oOz552A6YCa6L+HanPmnaXlrp7njrDliIfmjaLjgILmr5TlpoLopoHlrp7njrDlvZPmnIDlkI7kuIDpobXml7bmmL7npLrnq4vljbPkvZPpqozmjInpkq7vvIzpnZ7mnIDlkI7kuIDpobXmmL7npLrkuIvkuIDmraXmjInpkq7vvIxodG1s5YaZ5rOV5aaC5LiL77yaXG4tIOWkmueKtuaAgeWuueWZqHZ0eXBlPVwibXVsdGlTdGF0ZUNvbnRhaW5lclwi77yM6buY6K6k5b+F6aG76K6+572u5q2j5bi45oiQ5Yqf5Yqg6L295ZCO55qE5YaF5a655pi+56S655qE54q25oCB77yM5q+U5aaC77ya5Yqg6L295ZCO5pyJ5pWw5o2u44CB5Yqg6L295Lit44CB5peg5pWw5o2u44CB6IGU572R5aSx6LSl55qE5Zub56eN54q25oCB5pi+56S677yM6buY6K6k5piv5pi+56S65Yqg6L295ZCO5pyJ5pWw5o2u54q25oCB5LiL55qE5YaF5a6577yM5bm25LiU5Yqg6L295ZCO5pyJ5pWw5o2u54q25oCB55qE6IqC54K55b+F6aG75o6S5Zyo5pyA5ZCO44CCXG5cbiMjIDfjgIHlupXpg6h0YWLlr7zoiKrmoI/nu4Tku7bnu5PmnoTlm7rlrprop4TliJlcbi0g5bqV6YOodGFi5a+86Iiq5qCP57uE5Lu25b+F6aG75pivdnR5cGU9XCJib3R0b21UYWJDb250ZW50Q29udGFpbmVyXCLlv4XpobvljIXlkKvnnYB2dHlwZT1cInN1YlBhZ2VcIuS4jnZ0eXBlPVwiYm90dG9tVGFiTmF2aWdhdGVCYXJcIuWtqeWtkOiKgueCue+8jOWFtuS4reWtkOmhtemdonZ0eXBlPVwic3ViUGFnZVwi6IqC54K55a655Zmo6YeM57ud5a+55LiN6IO95pyJ5a2p5a2Q6IqC54K577yM57ud5a+55LiN6IO95pyJ5Lu75L2V5Y2g5L2N5YaF5a6544CCXG5cbiMjIDjjgIHnq5blkJHliJfooah2dHlwZT1cInZlcnRpY2FsTGlzdFZpZXdcIuS4juaoquWQkeWIl+ihqHZ0eXBlPVwiaG9yaXpvbnRhbExpc3RWaWV3XCLnu4Tku7bnu5PmnoTlm7rlrprop4TliJlcbi0g56uW5ZCR5YiX6KGodnR5cGU9XCJ2ZXJ0aWNhbExpc3RWaWV3XCLkuI7mqKrlkJHliJfooah2dHlwZT1cImhvcml6b250YWxMaXN0Vmlld1wi57uE5Lu25b+F6aG75YyF5ZCr552ATuS4qnZ0eXBlPVwibGlzdEl0ZW1DYXJkXCLlranlrZDoioLngrnvvIzlhajpg6jnvLrkuIDkuI3lj6/jgIJcblxuXG4jIyA544CBdnR5cGU9XCJkaWFsb2dcIuOAgXZ0eXBlPVwidG9hc3RcIuOAgXZ0eXBlPVwiZHJvcERvd25NZW51XCLjgIF2dHlwZT1cInNpZGVTbGlkZVBhbmVsXCLnu4Tku7boioLngrnnu5PmnoTkuI7lm7rlrprop4TliJlcbi0g57uE5Lu26IqC54K55b+F6aG76K6+572ucG9zaXRpb246IGZpeGVkO++8jOS4jeW+l+iuvue9rnBvc2l0aW9uOiBhYnNvbHV0ZTvmiJblhbbku5blrprkvY3mlrnlvI/jgIJcbi0g57uE5Lu26IqC54K555qE5pi+56S65ZKM6ZqQ6JeP5b+F6aG75L2/55Sob3BhY2l0eTogMTvlkoxvcGFjaXR5OiAwO+adpeWunueOsO+8jOS4jeW+l+S9v+eUqGRpc3BsYXk6IG5vbmU75oiW5LuW5pa55byP5p2l5a6e546w44CCXG4tIOazqOaEj+aJgOaciXZ0eXBlPVwidG9hc3RcIueahOaPkOekuuiKgueCueW/hemhu+aYr+WcqOmhtemdouS4i+WNiumDqOS7ve+8jOiuvue9rmJvdHRvbT0xNTBweO+8jOe7neWvueS4jeaYr+WcqOmhtemdoumhtumDqOOAglxuLSDms6jmhI/miYDmnIl2dHlwZT1cImRyb3BEb3duTWVudVwi55qE5LiL5ouJ6I+c5Y2V6IqC54K55b+F6aG75Zyo6ZSa54K55YWD57Sg55qE5LiL5pa55ZCI6YCC55qE5L2N572u77yM5LiN5b6X6ZqP5L6/5pS+572u44CCXG4tIOazqOaEj+aJgOaciXZ0eXBlPVwic2lkZVNsaWRlUGFuZWxcIueahOS+p+a7kemdouadv++8jOWBh+iuvumdouadv+WuveW6pnc9MzAw77yM6YKj5LmI5aaC5p6c5piv5bem5L6n5L6n5ruR6Z2i5p2/77yM6YKj5LmI5bi45oCB5LiL77yI6Z2e5omT5byA54q25oCB77yJ5b+F6aG76K6+572ubGVmdD0tMzAwcHjvvIzlpoLmnpzmmK/lj7Pkvqfkvqfmu5HpnaLmnb/vvIzpgqPkuYjluLjmgIHkuIvvvIjpnZ7miZPlvIDnirbmgIHvvInlv4Xpobvorr7nva5yaWdodD0tMzkzcHjvvIzkuI3lvpfpmo/kvr/mlL7nva7vvIzlubbkuJTkvqfmu5HpnaLmnb/nmoTpq5jluqZo55qE5pyA5aSn5YC85Y+q6IO95piv77yaMzkzIC0g5L6n5ruR6Z2i5p2/55qEeeWdkOagh+WAvOOAglxuXG4jIyAxMOOAgee7hOS7tuiKgueCueaYvumakOaViOaenOS4jue7neWvueW4g+WxgOmHjeWPoOaYvuekuuWbuuWumuinhOWImVxuLSB2dHlwZT1cIm9uZVN0YXRlQ29udGVudENvbnRhaW5lclwi44CBdnR5cGU9XCJvbmVWaWV3UGFnZXJDb250ZW50XCLjgIF2dHlwZT1cIm9uZVRhYkNvbnRlbnRDb250YWluZXJcIuOAgXZ0eXBlPVwiZGlhbG9nXCLjgIF2dHlwZT1cInRvYXN0XCLjgIF2dHlwZT1cImRyb3BEb3duTWVudVwi44CBdnR5cGU9XCJzaWRlU2xpZGVQYW5lbFwi6IqC54K55b+F6aG75L2/55Sob3BhY2l0eTogMDvmnaXlrp7njrDpmpDol4/mlYjmnpzvvIzkuI3lvpfkvb/nlKhkaXNwbGF5OiBub25l44CBdmlzaWJpbGl0eTogaGlkZGVu5Lul5Y+K5YW25LuW5pa55byP5p2l5a6e546w6ZqQ6JeP5pWI5p6c77yM5bm25LiU5b+F6aG75L2/55So57ud5a+55a6a5L2N5p2l6YeN5Y+g5pi+56S644CCXG5cbiMjIDEx44CB6ZyA6KaB6K6+572uZnJvbUFwaU9yQ2FjaGVEYXRhPeKAnHRydWVcIueahOadoeS7tu+8muW/hemhu+aYr3Z0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi44CBdnR5cGU9XCJob3Jpem9udGFsTGlzdFZpZXdcIuOAgXZ0eXBlPVwidmlld1BhZ2VyXCLjgIF2dHlwZT1cInRhYkNvbnRhaW5lclwi44CBdnR5cGU9XCJyYWRpb0dyb3VwXCLjgIF2dHlwZT1cImNoZWNrQm94R3JvdXBcIuexu+Wei+eahOiKgueCuee7hOS7tu+8jOW5tuS4lOaVsOaNruaYr+S7jue9kee7nOaIluiAheacrOWcsOaMgeS5heWMlue8k+WtmOaLieWPluWbnuadpeeahO+8jOavlOWmgu+8mueDremXqOWVhuWTgeWIl+ihqOe7hOS7tnZ0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi77yM6K+l57uE5Lu255qE5pWw5o2u5piv5LuO572R57uc5oiW6ICF5pys5Zyw5oyB5LmF5YyW57yT5a2Y5ouJ5Y+W5Zue5p2l55qE77yM6YKj5LmI6K6+572uZnJvbUFwaU9yQ2FjaGVEYXRhPVwidHJ1ZVwi44CCXG4tIOWmguaenOaYr+S4gOS6m+S4jemcgOimgeWQjuerr0FQSeiBlOe9keaIluacrOWcsOaMgeS5heWMlue8k+WtmOaLieWPluiOt+WPlueahOmdmeaAgeWGmeatu+eahOaVsOaNru+8jOmCo+S5iOWwseS4jemcgOimgWZyb21BcGlPckNhY2hlRGF0YeWxnuaAp+S6hu+8jOavlOWmgu+8muS4quS6uuS4reW/g+WIl+ihqOmhueOAgeiuvue9ruWIl+ihqOmhueOAgeiPnOWNleWIl+ihqOmhue+8jOi/meS6m+agueacrOS4jemcgOimgee7j+i/h+WQjuWPsEFQSeiBlOe9keaIluacrOWcsOaMgeS5heWMlue8k+WtmOaLieWPluiOt+WPlueahO+8jOmCo+S5iOWwseS4jeimgWZyb21BcGlPckNhY2hlRGF0YeWxnuaAp+OAglxuXG4jIyAxMuOAgee7hOS7tuexu+Wei3Z0eXBl5Zu65a6a5p6a5Li+XG7mloflrZd2dHlwZT1cInRleHRcIuOAgeaMiemSrnZ0eXBlPVwiYnV0dG9uXCLjgIHovpPlhaXmoYZ2dHlwZT1cImlucHV0XCLjgIHlm77moId2dHlwZT1cImljb25cIuOAgeWbvueJh3Z0eXBlPVwiaW1hZ2VcIuOAgeefqeW9onZ0eXBlPVwicmVjdFwi44CB5ZyG5b2idnR5cGU9XCJjaXJjbGVcIuOAgee6v+adoXZ0eXBlPVwibGluZVwi44CB5Z+656GA5a655ZmodnR5cGU9XCJjb250YWluZXJcIuOAgeaJi+acuuezu+e7n+eahOmhtumDqOeKtuaAgeagj3Z0eXBlPVwicGhvbmVUb3BTdGF0dXNCYXJcIuOAgeaJi+acuuezu+e7n+eahOW6lemDqOmmlumhteaMh+ekuuWZqOaoquadoeagj3Z0eXBlPVwicGhvbmVCb3R0b21Ib21lSW5kaWNhdG9yQmFyXCLjgIHlpJrnirbmgIHlrrnlmah2dHlwZT1cIm11bHRpU3RhdGVDb250YWluZXJcIuOAgeafkOeKtuaAgeinhuWbvuWuueWZqHZ0eXBlPVwib25lU3RhdGVDb250ZW50Q29udGFpbmVyXCLjgIHljaHniYflrrnlmah2dHlwZT1cImNhcmRcIuOAgeW8gOWFs3Z0eXBlPVwic3dpdGNoXCLjgIHkuIDkuKrljZXpgIl2dHlwZT1cInJhZGlvXCLjgIHkuIDkuKrlpJrpgIl2dHlwZT1cImNoZWNrQm94XCLjgIHljZXpgInnu4Qo5aSa5Liq5Y2V6YCJKXZ0eXBlPVwicmFkaW9Hcm91cFwi44CB5aSa6YCJ57uEKOWkmuS4quWkmumAiSl2dHlwZT1cImNoZWNrQm94R3JvdXBcIuOAgeerluWQkeWIl+ihqHZ0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi44CB5qiq5ZCR5YiX6KGodnR5cGU9XCJob3Jpem9udGFsTGlzdFZpZXdcIuOAgeWIl+ihqGl0ZW3ljaHniYd2dHlwZT1cImxpc3RJdGVtQ2FyZFwiLCDova7mkq12dHlwZT1cInZpZXdQYWdlclwi44CB6L2u5pKt5Yy65Z+fdnR5cGU9XCJvbmVWaWV3UGFnZXJDb250ZW50XCLjgIHova7mkq3mjIfnpLrlmajlrrnlmah2dHlwZT1cInZpZXdQYWdlckluZGljYXRvckNvbnRhaW5lclwi44CBVEFC6YCJ6aG55Y2hdnR5cGU9XCJ0YWJDb250YWluZXJcIuOAgSBUQULpgInpobnljaHlhoXlrrnljIXoo7nlrrnlmah2dHlwZT1cInRhYkNvbnRlbnRXcmFwcGVyQ29udGFpbmVyXCLjgIFUQULpgInpobnljaHkuIDpobXlhoXlrrnljLp2dHlwZT1cIm9uZVRhYkNvbnRlbnRDb250YWluZXJcIuOAgVRhYumAiemhueWNoeiPnOWNleagj3Z0eXBlPVwidGFiTWVudUJhclwi44CBVGFi6YCJ6aG55Y2h6I+c5Y2V5qCPaXRlbemhuXZ0eXBlPVwidGFiTWVudUJhckl0ZW1cIuOAgeW6lemDqFRBQue7hOS7tnZ0eXBlPVwiYm90dG9tVGFiQ29udGVudENvbnRhaW5lclwi44CB5bqV6YOoVEFC5a2Q6aG16Z2i5YaF5a655Yy6dnR5cGU9XCJzdWJQYWdlXCLjgIHlupXpg6hUQULnu4Tku7blr7zoiKrmoI92dHlwZT1cImJvdHRvbVRhYk5hdmlnYXRlQmFyXCLjgIHlupXpg6hUQULnu4Tku7blr7zoiKrmoI9pdGVt6aG5dnR5cGU9XCJib3R0b21UYWJOYXZpZ2F0ZUJhckl0ZW1cIuOAgemhtumDqOWvvOiIquagj3Z0eXBlPVwidG9wTmF2aWdhdGVCYXJcIuOAgemhtumDqOagh+mimOagj3Z0eXBlPVwidG9wVGl0bGVCYXJcIuOAgeW6lemDqOaTjeS9nOagj3Z0eXBlPVwiYm90dG9tT3BlcmF0ZUJhclwi44CB5a+56K+d5qGGdnR5cGU9XCJkaWFsb2dcIuOAgVRvYXN05o+Q56S6dnR5cGU9XCJ0b2FzdFwi44CB5LiL5ouJ6I+c5Y2VdnR5cGU9XCJkcm9wRG93bk1lbnVcIuOAgeS+p+a7kemdouadv3Z0eXBlPVwic2lkZVNsaWRlUGFuZWxcIuOAgmA7Il19