diff --git a/Bin/Debug/CommonControls/.NET4/DyAPI.dll b/Bin/Debug/CommonControls/.NET4/DyAPI.dll index 09b2105..43f3107 100644 Binary files a/Bin/Debug/CommonControls/.NET4/DyAPI.dll and b/Bin/Debug/CommonControls/.NET4/DyAPI.dll differ diff --git a/Bin/Debug/CommonControls/.NET4/DyAPI.xml b/Bin/Debug/CommonControls/.NET4/DyAPI.xml index 0584afc..429bff6 100644 --- a/Bin/Debug/CommonControls/.NET4/DyAPI.xml +++ b/Bin/Debug/CommonControls/.NET4/DyAPI.xml @@ -226,6 +226,692 @@ + + + + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + + + + + + + + + + + + 计算MD5值 + + + + + + + + + + + + ID + + + + + + + + + + + + + + + + + + + + 翻译引擎 + + + + + 任务ID + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + 翻译 + + + + + + + + + + 翻译 + + + + + + + + + + + + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + + + + + + + + + + + + + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + + + + + + + + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 中文语言 + + + + + 繁体语言 + + + + + 英文语言 + + + + + 日语语言 + + + + + 韩语语言 + + + + + 泰语语言 + + + + + 越南语语言 + + + + + 自动识别 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 翻译 + + + + + + + 敏感词获取类 @@ -255,22 +941,24 @@ - + 按给定的部门、内容,来判断该内容是否包含敏感词 1表示标题,2表示内容,3表示标题+内容 + 是否查找所有敏感词 - + 按给定的部门、内容,来判断该内容是否包含敏感词 + @@ -906,16 +1594,56 @@ - + + + 公共配置 + + + + + + + + + + + + + + + 服务器主机 + + + 流程软件数据库连接字符串 - + 流程软件数据库连接字符串 + + + 流程软件数据库连接字符串 + + + + + 服务器站点Url + + + + + 运行自动任务系统的服务器站点Url + + + + + 服务器winform站点Url + + 多项分隔字符串,遇到,;号进行分隔 @@ -926,6 +1654,37 @@ 数据库引擎 + + + + + + + + + + + + + 初始化配置 + + + + + 从本地初始化配置 + + + + + 初始化配置 + + + + + + 初始化配置 + + 部门获取API @@ -986,6 +1745,11 @@ 玩能网 + + + AI测试站 + + 根据站点名称,获取站点id @@ -999,6 +1763,13 @@ + + + + + + + 根据站点id,获取站点英文名 @@ -1064,6 +1835,26 @@ 是否获取本地地址(本地地址用于调试用) + + + 87G默认API域名 + + + + + 当游默认API域名 + + + + + 当星网默认API域名 + + + + + 当下默认API域名 + + 获取站点域名 @@ -1152,7 +1943,15 @@ - + + + 是否不是我们的网址 + + + + + + 检查资源是否存在问题 @@ -1161,6 +1960,7 @@ 不检查下载地址 不检查外部下载地址 检查下载地址时的重试次数 + 是否检查自动更新的地址 @@ -1276,6 +2076,14 @@ + + + 根据站点和副标题,获取资源列表信息。 + + + + + 按给定的站点和标题,获取资源信息 @@ -1324,13 +2132,23 @@ 一次获取的最大数量,默认为1万 + + + 是否显示包含软删除在内的资源,只支持玩能网。 + + + + + 是否使用真实修改时间 + + 按给定的站点和标题,获取资源信息 - 0:搜索的是id,1:表示标题,2:表示软件名,3表示标签,4表示自动更新,5表示包名,6表示md5,7表示字数区间(例如0-300) + 0:搜索的是id,1:表示标题,2:表示软件名,3表示标签,4表示自动更新,5表示包名,6表示md5,7表示字数区间(例如0-300),8表示副标题 限值为az,pc,表示读安卓和pc软件,该功能只针对当下和下载银行 开始时间 结束时间 @@ -1497,9 +2315,9 @@ - + - + 自动选择一个翻译引擎进行翻译 @@ -1507,21 +2325,6 @@ - - - - - - - - - - - - - - - 翻译成英文 @@ -1540,6 +2343,14 @@ + + + 自动翻译成中文 + + + + + 用户信息获取API @@ -1582,7 +2393,13 @@ - + + + 根据用户id来获取用户信息 + + + + 根据网站后台id,获取后台用户信息 @@ -1631,21 +2448,6 @@ - - - - - - - - 翻译 - - - - - - - @@ -2194,6 +2996,11 @@ 是否匹配成功 + + + 匹配到的数量 + + 匹配到的内容词列表(会去重) @@ -2204,6 +3011,11 @@ 匹配到的列表 + + + 匹配到的列表 + + 匹配到的敏感词 @@ -2525,6 +3337,11 @@ 下载文件名,不含网址 + + + 下载网址 + + 总点击量 @@ -2630,6 +3447,11 @@ 下载地址json(列表) + + + 关键词 + + 资源导读 @@ -2750,6 +3572,16 @@ 文章评级 + + + 文章理由 + + + + + (优质类型) + + 文章是否含有内链,1表示含有,0表示没有,-1表示不支持该功能读取 @@ -4546,6 +5378,94 @@ 错误的Json + + + 7723查询引擎 + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) + + + + + 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; + + + + + 资源类型,0表示apk,1表示补丁方式 + + + + + 是否使用翻译 + + + + + 核心方法:实现与Python版本相同的逻辑计算MD5值 + + 输入的JSON字符串 + + 小写的MD5十六进制字符串 + + + + 根据关键词搜索资源 + + + + + + + + 根据关键词搜索资源 + + + + + + + 根据关键词搜索资源 + + + + + + + 根据包名和appid查询资源 + + + + + 九游目标站查询引擎 @@ -4591,6 +5511,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -4621,6 +5546,257 @@ + + + 7723查询引擎 + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) + + + + + 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; + + + + + 资源类型,0表示apk,1表示补丁方式 + + + + + 是否使用翻译 + + + + + 根据关键词搜索资源 + + + + + + + + 根据关键词搜索资源 + + + + + + + 根据关键词搜索资源 + + + + + + + 根据包名和appid查询资源 + + + + + + + + 根据 data 和 headers 生成 7723api 签名 + 逻辑:排除不需要参数 → 按字母排序 → 拼接 → MD5加密 + + + + + MD5 加密(小写32位) + + + + + AppGetmodsapk查询引擎 + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) + + + + + 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; + + + + + 资源类型,0表示apk,1表示补丁方式 + + + + + 是否使用翻译 + + + + + 根据关键词搜索资源 + + + + + + + + 根据关键词搜索资源 + + + + + + + 根据关键词搜索资源 + + + + + + + 根据包名和appid查询资源 + + + + + + + + AppMagicmodapk查询引擎 + + + + + 任务Id + + + + + 任务名称 + + + + + 任务描述 + + + + + 作者 + + + + + 使用的接口版本 + + + + + 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) + + + + + 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; + + + + + 资源类型,0表示apk,1表示补丁方式 + + + + + 是否使用翻译 + + + + + 根据关键词搜索资源 + + + + + + + + 根据关键词搜索资源 + + + + + + + 根据关键词搜索资源 + + + + + + + 根据包名和appid查询资源 + + + + + AppGetmodsapk查询引擎 @@ -4666,6 +5842,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -4741,6 +5922,16 @@ 资源类型,0表示apk,1表示补丁方式 + + + 调用其它目标站获取数据 + + + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -4779,81 +5970,6 @@ - - - apkpure目标站查询引擎 - - - - - 任务Id - - - - - 任务名称 - - - - - 任务描述 - - - - - 作者 - - - - - 使用的接口版本 - - - - - 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) - - - - - 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; - - - - - 资源类型,0表示apk,1表示补丁方式 - - - - - 根据关键词搜索资源 - - - - - - - - 根据关键词搜索资源 - - - - - - - 根据关键词搜索资源 - - - - - - - 根据包名和appid查询资源 - - - - - apkpure目标站查询引擎 @@ -4899,6 +6015,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -4974,6 +6095,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5004,81 +6130,6 @@ - - - 新应用宝目标站查询引擎 - - - - - 任务Id - - - - - 任务名称 - - - - - 任务描述 - - - - - 作者 - - - - - 使用的接口版本 - - - - - 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) - - - - - 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; - - - - - 资源类型,0表示apk,1表示补丁方式 - - - - - 根据关键词搜索资源 - - - - - - - - 根据关键词搜索资源 - - - - - - - 根据关键词搜索资源 - - - - - - - 根据包名和appid查询资源 - - - - - AppGetmodsapk查询引擎 @@ -5124,6 +6175,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5199,6 +6255,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5274,6 +6335,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5349,6 +6415,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5424,6 +6495,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5454,81 +6530,6 @@ - - - 豌豆荚目标站查询引擎 - - - - - 任务Id - - - - - 任务名称 - - - - - 任务描述 - - - - - 作者 - - - - - 使用的接口版本 - - - - - 是否开启小数据获取(只会执行一次GET或Post,可能无法获取下载地址、更新日志) - - - - - 是否是国外的数据,0表示国内数据;1表示国外数据,但不用翻墙;2表示国外数据需要翻墙; - - - - - 资源类型,0表示apk,1表示补丁方式 - - - - - 根据关键词搜索资源 - - - - - - - - 根据关键词搜索资源 - - - - - - - 根据关键词搜索资源 - - - - - - - 根据包名和appid查询资源 - - - - - 华为目标站查询引擎 @@ -5574,6 +6575,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 @@ -5649,13 +6655,18 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 根据关键词搜索资源 - + keys @@ -5724,6 +6735,11 @@ 资源类型,0表示apk,1表示补丁方式 + + + 是否使用翻译 + + 获取资源信息 @@ -5774,11 +6790,26 @@ 是否出错 + + + 当前网址 + + + + + 状态码 + + 状态消息 + + + Html源码 + + 列表 @@ -5791,6 +6822,12 @@ + + + 获取在册的所有目标站对象 + + + @@ -5881,11 +6918,21 @@ mod信息(可选) + + + 预览图列表 + + mod信息(可选) + + + 目标站新版本特性(中文) + + 隐私政策 @@ -5896,6 +6943,11 @@ 备案号 + + + 应用年龄限制 + + 应用更新时间 diff --git a/Bin/Debug/CommonControls/.NET4/OnLineUpgradeConfig.exe b/Bin/Debug/CommonControls/.NET4/OnLineUpgradeConfig.exe index 1474057..88726b4 100644 Binary files a/Bin/Debug/CommonControls/.NET4/OnLineUpgradeConfig.exe and b/Bin/Debug/CommonControls/.NET4/OnLineUpgradeConfig.exe differ diff --git a/Bin/Debug/CommonControls/.NET4/RaUI.dll b/Bin/Debug/CommonControls/.NET4/RaUI.dll index 94d66d6..a2f2dc2 100644 Binary files a/Bin/Debug/CommonControls/.NET4/RaUI.dll and b/Bin/Debug/CommonControls/.NET4/RaUI.dll differ diff --git a/Bin/Debug/CommonControls/.NET4/RaUI.xml b/Bin/Debug/CommonControls/.NET4/RaUI.xml index 56da64a..acd7c52 100644 --- a/Bin/Debug/CommonControls/.NET4/RaUI.xml +++ b/Bin/Debug/CommonControls/.NET4/RaUI.xml @@ -1758,6 +1758,11 @@ XML + + + Json + + 对象值 @@ -2967,127 +2972,6 @@ 全屏平铺 - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - - 存储类型 - - - - - 配置存储路径 - - - - - 设置XML内容 - - - - - 添加控件 - - - - - - - - 设置值 - - - - - - - - 添加控件 - - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 读取配置 - - - - - 保存配置 - - 音频播放类 @@ -3639,6 +3523,142 @@ + + + 超级文件搜索 + + + + + 取消选项 + + + + + 不取消,继续 + + + + + 只取消当前目录 + + + + + 取消后面的所有搜索 + + + + + 是否取消 + + + + + + + + + 是否将该文件添加到结果 + + + + 搜索文件事件 + + + + + + + + + + + + + 搜索目录事件 + + + + + + + + + + + + + 错误事件 + + + + + 是否查找搜索子目录 + + + + + 查找发现的文件列表 + + + + + 查找发现的目录列表 + + + + + 结果对应的文件数量 + + + + + 结果对应的目录数量 + + + + + 结果对应的文件+目录数量 + + + + + + + + + + 搜索查找文件 + + + + + + + 搜索查找文件 + + + + + + + 获取指定文件夹下的文件列表,支持多个扩展名获取,支持获取子文件夹的数据 + + + + 是否获取子文件夹数据 + + + + + 获取指定文件夹下的文件列表,支持多个扩展名获取(子文件夹里的文件不会去获取)。如果 + 文件夹不存在,则获取空列表(本函数不会返回null值) + + 要获取的文件夹路径 + 要获取的扩展名列表(例如:*.mp3;*.wav) + + 用于取得一个文本文件的编码方式(Encoding)。 @@ -6276,6 +6296,11 @@ 文件路径 图标路径 + + + 通知系统设置发生变化 + + 设置文件关联 @@ -10034,6 +10059,14 @@ 是否显示中文名字 + + + + + + + + 获取CPU ID @@ -10052,6 +10085,12 @@ + + + 获取显示器的相关硬件ID + + + 获取主要硬件信息 @@ -12887,6 +12926,11 @@ + + + 用时 + + @@ -13281,6 +13325,11 @@ + + + 用时 + + @@ -13675,6 +13724,11 @@ + + + 用时 + + SQL字段类型 @@ -14368,6 +14422,11 @@ + + + 用时 + + @@ -15034,12 +15093,24 @@ + + + 当前页面 + + 超时时间 + + + + + 超时时间 + 重试次数 + 以post方式获取网页源码 @@ -15075,6 +15146,11 @@ + + + 重试次数 + + 头信息 @@ -15219,6 +15295,13 @@ + + + 将相对网址转换成绝对网址 + + + + 将相对网址转换成绝对网址 @@ -24090,16 +24173,21 @@ 存储类型 - + 配置存储路径 - + 设置XML内容 + + + 获取/设置配置的内容(适用于xml和json) + + 添加控件 @@ -24217,6 +24305,81 @@ 保存配置 + + + 保存到内存中的对象 + + + + + 读取内容到内存中 + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + 从内存中读取配置 + + + + + + + 类 名:ColorHSL diff --git a/Bin/Debug/CommonControls/.NET4/ryCommon.dll b/Bin/Debug/CommonControls/.NET4/ryCommon.dll index 52b9412..34bcc47 100644 Binary files a/Bin/Debug/CommonControls/.NET4/ryCommon.dll and b/Bin/Debug/CommonControls/.NET4/ryCommon.dll differ diff --git a/Bin/Release/CommonControls/.NET4/RaUI.dll b/Bin/Release/CommonControls/.NET4/RaUI.dll index e191e31..4dfad50 100644 Binary files a/Bin/Release/CommonControls/.NET4/RaUI.dll and b/Bin/Release/CommonControls/.NET4/RaUI.dll differ diff --git a/Bin/Release/CommonControls/.NET4/RaUI.xml b/Bin/Release/CommonControls/.NET4/RaUI.xml index 7197df0..eac7ab8 100644 --- a/Bin/Release/CommonControls/.NET4/RaUI.xml +++ b/Bin/Release/CommonControls/.NET4/RaUI.xml @@ -1758,6 +1758,11 @@ XML + + + Json + + 对象值 @@ -2967,127 +2972,6 @@ 全屏平铺 - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - - 存储类型 - - - - - 配置存储路径 - - - - - 设置XML内容 - - - - - 添加控件 - - - - - - - - 设置值 - - - - - - - - 添加控件 - - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 读取配置 - - - - - 保存配置 - - 音频播放类 @@ -3639,6 +3523,142 @@ + + + 超级文件搜索 + + + + + 取消选项 + + + + + 不取消,继续 + + + + + 只取消当前目录 + + + + + 取消后面的所有搜索 + + + + + 是否取消 + + + + + + + + + 是否将该文件添加到结果 + + + + 搜索文件事件 + + + + + + + + + + + + + 搜索目录事件 + + + + + + + + + + + + + 错误事件 + + + + + 是否查找搜索子目录 + + + + + 查找发现的文件列表 + + + + + 查找发现的目录列表 + + + + + 结果对应的文件数量 + + + + + 结果对应的目录数量 + + + + + 结果对应的文件+目录数量 + + + + + + + + + + 搜索查找文件 + + + + + + + 搜索查找文件 + + + + + + + 获取指定文件夹下的文件列表,支持多个扩展名获取,支持获取子文件夹的数据 + + + + 是否获取子文件夹数据 + + + + + 获取指定文件夹下的文件列表,支持多个扩展名获取(子文件夹里的文件不会去获取)。如果 + 文件夹不存在,则获取空列表(本函数不会返回null值) + + 要获取的文件夹路径 + 要获取的扩展名列表(例如:*.mp3;*.wav) + + 用于取得一个文本文件的编码方式(Encoding)。 @@ -6276,6 +6296,11 @@ 文件路径 图标路径 + + + 通知系统设置发生变化 + + 设置文件关联 @@ -10034,6 +10059,14 @@ 是否显示中文名字 + + + + + + + + 获取CPU ID @@ -10052,6 +10085,12 @@ + + + 获取显示器的相关硬件ID + + + 获取主要硬件信息 @@ -12887,6 +12926,11 @@ + + + 用时 + + @@ -13281,6 +13325,11 @@ + + + 用时 + + @@ -13675,6 +13724,11 @@ + + + 用时 + + SQL字段类型 @@ -14368,6 +14422,11 @@ + + + 用时 + + @@ -15034,12 +15093,24 @@ + + + 当前页面 + + 超时时间 + + + + + 超时时间 + 重试次数 + 以post方式获取网页源码 @@ -15075,6 +15146,11 @@ + + + 重试次数 + + 头信息 @@ -15219,6 +15295,13 @@ + + + 将相对网址转换成绝对网址 + + + + 将相对网址转换成绝对网址 @@ -24090,16 +24173,21 @@ 存储类型 - + 配置存储路径 - + 设置XML内容 + + + 获取/设置配置的内容(适用于xml和json) + + 添加控件 @@ -24217,6 +24305,81 @@ 保存配置 + + + 保存到内存中的对象 + + + + + 读取内容到内存中 + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + + 从内存中读取配置 + + + + + + + 从内存中读取配置 + + + + + + + 类 名:ColorHSL diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b9e236..48cbd7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,35 @@ -## :date:2025-08-16 星期六更新 +## :date:2026-06-04 星期四更新 + +### RaUI V4.0.2606.0401 +- :cactus:[新增]QuickWeb新增支持重试次数。 +- :cactus:[新增]RySetting类新增支持json格式设置存储和获取。 +- :cactus:[新增]RySetting类新增支持读取设置到内存,然后按配置名称读取。 +- :cactus:[新增]新增SuperFileSearch类,文件查找。 +- :cactus:[新增]QuickWeb新增CurPageUrl属性。 +- :cactus:[新增]HardWare新增支持获取显示器信息。 +- :cactus:[新增]HardWare新增GetWMI函数。 +- :100:[改进]QuickWeb类的UA从IE改为Edge。 +- :100:[改进]Hosts类IP与域名分隔符从\t改为三个空格。 +- :100:[改进]RyImage的CropOrFill函数,如果输入的长宽比例与原图一致,则返回原图的副本而不是原图。 +- :100:[改进]RySoft类的CompareVer函数支持特殊格式的版本号。 +- :100:[改进]QuickWeb的ConvertUrl函数新增支持自动从CurPageUrl获取。 +- :100:[改进]DateDiff函数对时间差异小于等于10秒的,自动加上毫秒数据。 +- :lady_beetle:[修复]修复ObjectListView控件的AspectGetter方法可能调用null对象的问题。 +- :lady_beetle:[修复]修复日期选择控件在获取节假日数据时,会因为节假日文件夹无法访问而报错的问题。 +- :lady_beetle:[修复]修复某些情况下剪切板权限问题导致ObjectListView控件报错。 +- :lady_beetle:[修复]修复RyImage的CropOrFill函数图片比例不一致时,也是返回原图副本的BUG。 + +### Itrycn_Project2 V1.0.2606.0401 +- :100:[改进]将公共调用,无需新增内容的部分代码,改到Public文件夹下 + +## :date:2025-08-16 星期六更新 ### rycUpdate V1.0.2506.0401 + - :lady_beetle:[修复]修复文件替换失败,不会失败提示的BUG。 ### RaUI V4.0.2508.1601 + - :cactus:[新增]ChromeTabControl控件支持设置SizeMode属性。 - :cactus:[新增]HotkeyTextBox新增支持传入热键文本进行自动转换。 - :cactus:[新增]ryQuickSQL类新增GetJsonData方法。 @@ -20,6 +46,7 @@ ## :date:2025-06-27 星期五更新 ### RaUI V4.0.2506.2701 + - :cactus:[新增]RediskCheck类新增支持对.NET3.5和.NET6-.NET9安装状态的判断。 - :cactus:[新增]RyImage类的LoadPic方法新增Timeout参数设置。 - :cactus:[新增]ChromeTabControl控件新增OnTabAddButtonClick和OnTabCloseButtonClick事件。 diff --git a/README.md b/README.md index 387e701..7548415 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,23 @@ ## 睿元公用控件组 -睿元公用控件组是一款公用的多功能控件组,集成了通用数据库操作类,并提供了各种常用功能的API接口,让代码编写更容易。 \ No newline at end of file +睿元公用控件组是一款公用的多功能控件组,集成了通用数据库操作类,并提供了各种常用功能的API接口,让代码编写更容易。 + +#### Itrycn_Project2 + +毕方项目模板,新建项目时,可以以本项目为底层,快速创建新项目。 + +#### OnLineUpgradeConfig + +一键升级配置程序,利用本程序,可以快速设置升级配置。 + +#### RaUIV4 + +公共控件和API库,将常用的API方法和控件集中在一个dll文件里,方便调用。 + +#### rycUpdate + +升级替换工具,本工具主要用于升级过程中替换文件。 + +#### SkinPreview + +皮肤预览和设置程序,利用本程序,可以预览和新增皮肤。 \ No newline at end of file diff --git a/Source/Itrycn_Project2/Config/Init.cs b/Source/Itrycn_Project2/Config/Init.cs index 7ea0e95..4d5224b 100644 --- a/Source/Itrycn_Project2/Config/Init.cs +++ b/Source/Itrycn_Project2/Config/Init.cs @@ -1,10 +1,12 @@ -using System; +using Config; +using Itrycn_Project2; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; -namespace Itrycn_Project2.Config +namespace Config { class Init { @@ -23,8 +25,6 @@ namespace Itrycn_Project2.Config { Public_Config.LoadSetting(); Application.Run(new FrmStart(args)); - //Application.Run(new FrmTest2()); - //Application.Run(new WindowsFormsApp2.Form1()); } } } diff --git a/Source/Itrycn_Project2/Config/Public_Config.cs b/Source/Itrycn_Project2/Config/Public_Config.cs index 7a78f11..bb7e975 100644 --- a/Source/Itrycn_Project2/Config/Public_Config.cs +++ b/Source/Itrycn_Project2/Config/Public_Config.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Itrycn_Project2 +namespace Config { /// /// 配置类,保存在文件中的配置信息(本系统基于乘黄V2架构) @@ -16,10 +16,10 @@ namespace Itrycn_Project2 public static bool HideByCloseBtn = false; public static void LoadSetting() { - ryCommon.Storage Stor = new ryCommon.Storage(); - Stor.LoadFromFile(Soft_ConstInfo.UserDataFolder+"\\Setting.xml"); - Stor.SelectNodeBySet(); - HideByCloseBtn = Stor.GetAttrValue("HideByCloseBtn", false); + ryControls.RySetting mySetting = new ryControls.RySetting(); + mySetting.FilePath = Soft_ConstInfo.UserDataFolder + "\\Setting.xml"; + mySetting.ReadToMem(); + HideByCloseBtn = mySetting.GetFromMem("HideByCloseBtn", false); //low_count = Stor.GetAttrValue("LowCount", 10); } } diff --git a/Source/Itrycn_Project2/Config/Soft_Info.cs b/Source/Itrycn_Project2/Config/Soft_Info.cs index 693af20..8189026 100644 --- a/Source/Itrycn_Project2/Config/Soft_Info.cs +++ b/Source/Itrycn_Project2/Config/Soft_Info.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; -namespace Itrycn_Project2 +namespace Config { /// /// 运行期间存储的变量,不会存储在文件中,只存储内存中.每次启动软件会初始化变量。 diff --git a/Source/Itrycn_Project2/DbOp/FrmAdd.resx b/Source/Itrycn_Project2/DbOp/FrmAdd.resx deleted file mode 100644 index 29dcb1b..0000000 --- a/Source/Itrycn_Project2/DbOp/FrmAdd.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Source/Itrycn_Project2/Form1.Designer.cs b/Source/Itrycn_Project2/Form1.Designer.cs deleted file mode 100644 index aaf6f83..0000000 --- a/Source/Itrycn_Project2/Form1.Designer.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace Itrycn_Project2 -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.chinaCalendar1 = new ryControls.FhChinaCalendar(); - this.SuspendLayout(); - // - // chinaCalendar1 - // - this.chinaCalendar1.BackColor = System.Drawing.Color.White; - this.chinaCalendar1.DateTime = new System.DateTime(2022, 6, 8, 16, 4, 14, 729); - this.chinaCalendar1.Location = new System.Drawing.Point(-1, -2); - this.chinaCalendar1.Name = "chinaCalendar1"; - this.chinaCalendar1.Size = new System.Drawing.Size(801, 451); - this.chinaCalendar1.TabIndex = 0; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.chinaCalendar1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - - #endregion - - private ryControls.FhChinaCalendar chinaCalendar1; - } -} \ No newline at end of file diff --git a/Source/Itrycn_Project2/Form1.cs b/Source/Itrycn_Project2/Form1.cs deleted file mode 100644 index 33a4a44..0000000 --- a/Source/Itrycn_Project2/Form1.cs +++ /dev/null @@ -1,20 +0,0 @@ -using RaUI.UI.LayeredForm; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Itrycn_Project2 -{ - public partial class Form1 : ILayeredForm - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/Source/Itrycn_Project2/FormTest.Designer.cs b/Source/Itrycn_Project2/FormTest.Designer.cs deleted file mode 100644 index 8727bf0..0000000 --- a/Source/Itrycn_Project2/FormTest.Designer.cs +++ /dev/null @@ -1,60 +0,0 @@ -namespace Itrycn_Project2 -{ - partial class FormTest - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(43, 75); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(363, 108); - this.button1.TabIndex = 0; - this.button1.Text = "button1"; - this.button1.UseVisualStyleBackColor = true; - // - // FormTest - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(483, 422); - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.Controls.Add(this.button1); - this.Name = "FormTest"; - this.Text = "FormTest"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Source/Itrycn_Project2/FormTest.cs b/Source/Itrycn_Project2/FormTest.cs deleted file mode 100644 index 8ff459c..0000000 --- a/Source/Itrycn_Project2/FormTest.cs +++ /dev/null @@ -1,22 +0,0 @@ -using RaUI.UI.LayeredForm; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Itrycn_Project2 -{ - public partial class FormTest : ILayeredForm - { - public FormTest() - { - InitializeComponent(); - } - - } -} diff --git a/Source/Itrycn_Project2/FrmAbout.cs b/Source/Itrycn_Project2/FrmAbout.cs index 04c314f..3280d6e 100644 --- a/Source/Itrycn_Project2/FrmAbout.cs +++ b/Source/Itrycn_Project2/FrmAbout.cs @@ -1,4 +1,5 @@ -using System; +using Config; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; diff --git a/Source/Itrycn_Project2/FrmStart.Designer.cs b/Source/Itrycn_Project2/FrmStart.Designer.cs index 1a4b5e0..59709d2 100644 --- a/Source/Itrycn_Project2/FrmStart.Designer.cs +++ b/Source/Itrycn_Project2/FrmStart.Designer.cs @@ -44,27 +44,15 @@ this.捐助ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.chromeTabControl1 = new ryControls.ChromeTabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); - this.textBoxEx21 = new ryControls.TextBoxEx2(); - this.buttonEx1 = new ryControls.ButtonEx(); - this.hotkeyTextBox1 = new ryControls.HotkeyTextBox(); - this.rySearch1 = new ryControls.rySearch(); - this.doubleText1 = new ryControls.DoubleText(); - this.ryComboBox1 = new ryControls.ComboBoxEx2(); - this.textBoxEx1 = new ryControls.TextBoxEx(); - this.richTextBox21 = new ryControls.Controls.RichTextBox2(); - this.htmlPanel1 = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.TabLogs = new System.Windows.Forms.TabPage(); this.LvLogs = new BrightIdeasSoftware.ObjectListView(); this.OlvLogTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.OlvLogText = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); + this.CbbInterval = new ryControls.RyComboBox(); this.MenuTray.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.chromeTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.TabLogs.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.LvLogs)).BeginInit(); this.SuspendLayout(); @@ -173,17 +161,7 @@ // tabPage1 // this.tabPage1.AutoScroll = true; - this.tabPage1.Controls.Add(this.textBoxEx21); - this.tabPage1.Controls.Add(this.buttonEx1); - this.tabPage1.Controls.Add(this.hotkeyTextBox1); - this.tabPage1.Controls.Add(this.rySearch1); - this.tabPage1.Controls.Add(this.doubleText1); - this.tabPage1.Controls.Add(this.ryComboBox1); - this.tabPage1.Controls.Add(this.textBoxEx1); - this.tabPage1.Controls.Add(this.richTextBox21); - this.tabPage1.Controls.Add(this.htmlPanel1); - this.tabPage1.Controls.Add(this.pictureBox2); - this.tabPage1.Controls.Add(this.pictureBox1); + this.tabPage1.Controls.Add(this.CbbInterval); this.tabPage1.Location = new System.Drawing.Point(1, 29); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); @@ -192,143 +170,6 @@ this.tabPage1.Text = "首页"; this.tabPage1.UseVisualStyleBackColor = true; // - // textBoxEx21 - // - this.textBoxEx21.BackColor = System.Drawing.Color.White; - this.textBoxEx21.EmptyText = "fggzgftgg "; - this.textBoxEx21.Location = new System.Drawing.Point(161, 30); - this.textBoxEx21.LongTime = 2000; - this.textBoxEx21.MaxLength = 999999999; - this.textBoxEx21.MaxUndoRedoSteps = 50; - this.textBoxEx21.Multiline = true; - this.textBoxEx21.Name = "textBoxEx21"; - this.textBoxEx21.OnlyNumeric = false; - this.textBoxEx21.PasswordChar = '\0'; - this.textBoxEx21.ReadOnly = false; - this.textBoxEx21.SelectedText = ""; - this.textBoxEx21.SelectionLength = 0; - this.textBoxEx21.SelectionStart = 0; - this.textBoxEx21.Size = new System.Drawing.Size(339, 179); - this.textBoxEx21.TabIndex = 31; - this.textBoxEx21.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; - this.textBoxEx21.ToolTip = ""; - this.textBoxEx21.WordWrap = true; - // - // buttonEx1 - // - this.buttonEx1.BackColor = System.Drawing.Color.Gray; - this.buttonEx1.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.buttonEx1.ImageTextSpace = 0; - this.buttonEx1.ImageWidth = 12; - this.buttonEx1.Location = new System.Drawing.Point(180, 153); - this.buttonEx1.Name = "buttonEx1"; - this.buttonEx1.Size = new System.Drawing.Size(61, 27); - this.buttonEx1.TabIndex = 30; - this.buttonEx1.Text = "测试"; - this.buttonEx1.UseVisualStyleBackColor = false; - // - // hotkeyTextBox1 - // - this.hotkeyTextBox1.BackColor = System.Drawing.Color.White; - this.hotkeyTextBox1.HotKey = "0+0"; - this.hotkeyTextBox1.Location = new System.Drawing.Point(161, 215); - this.hotkeyTextBox1.Name = "hotkeyTextBox1"; - this.hotkeyTextBox1.Size = new System.Drawing.Size(220, 27); - this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None; - this.hotkeyTextBox1.T_Modifiers = 0; - this.hotkeyTextBox1.TabIndex = 29; - // - // rySearch1 - // - this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.rySearch1.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.rySearch1.EmptyText = "dd顶顶顶顶顶"; - this.rySearch1.Location = new System.Drawing.Point(564, 296); - this.rySearch1.Name = "rySearch1"; - this.rySearch1.Size = new System.Drawing.Size(225, 28); - this.rySearch1.TabIndex = 27; - // - // doubleText1 - // - this.doubleText1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.doubleText1.Location = new System.Drawing.Point(141, 265); - this.doubleText1.Name = "doubleText1"; - this.doubleText1.SelectName = ""; - this.doubleText1.Size = new System.Drawing.Size(240, 27); - this.doubleText1.TabIndex = 26; - // - // ryComboBox1 - // - this.ryComboBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.ryComboBox1.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.ryComboBox1.EmptyText = ""; - this.ryComboBox1.Items.Add("fffffsss手上但事实上少时诵诗书是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒是撒"); - this.ryComboBox1.Items.Add("gggg"); - this.ryComboBox1.Items.Add("ddddd"); - this.ryComboBox1.Items.Add("ddd"); - this.ryComboBox1.Location = new System.Drawing.Point(746, 228); - this.ryComboBox1.MaxPopupHeight = 0; - this.ryComboBox1.MaxPopupWidth = 0; - this.ryComboBox1.Name = "ryComboBox1"; - this.ryComboBox1.SelectedIndex = -1; - this.ryComboBox1.SelectedItem = null; - this.ryComboBox1.Size = new System.Drawing.Size(238, 36); - this.ryComboBox1.TabIndex = 25; - this.ryComboBox1.ToolTipText = ""; - // - // textBoxEx1 - // - this.textBoxEx1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.textBoxEx1.EmptyText = "这是一个测试,请查看"; - this.textBoxEx1.Location = new System.Drawing.Point(130, 117); - this.textBoxEx1.MaxUndoRedoSteps = 50; - this.textBoxEx1.Name = "textBoxEx1"; - this.textBoxEx1.OnlyNumeric = false; - this.textBoxEx1.Size = new System.Drawing.Size(202, 21); - this.textBoxEx1.TabIndex = 23; - // - // richTextBox21 - // - this.richTextBox21.EmptyText = ""; - this.richTextBox21.Font = new System.Drawing.Font("Courier New", 10F); - this.richTextBox21.Location = new System.Drawing.Point(417, 26); - this.richTextBox21.Name = "richTextBox21"; - this.richTextBox21.OnlyInputText = false; - this.richTextBox21.Size = new System.Drawing.Size(359, 266); - this.richTextBox21.TabIndex = 21; - this.richTextBox21.Text = "怪兽公主是一款充满日系风情的女友养成游戏。在游戏中,玩家将迎来一位怪兽公主的到来,展开一段独特而甜蜜的同居生活。玩家们可以通过与怪兽公主互动,选择不同的故事线路," + - "赢得道具和奖励,培养她的感情,解锁不同的结局。这款游戏将带给你与怪兽公主共度时光的乐趣与刺激。"; - this.richTextBox21.WordWrap = true; - // - // htmlPanel1 - // - this.htmlPanel1.AutoScroll = true; - this.htmlPanel1.AutoScrollMinSize = new System.Drawing.Size(469, 20); - this.htmlPanel1.BackColor = System.Drawing.SystemColors.Window; - this.htmlPanel1.BaseStylesheet = null; - this.htmlPanel1.Location = new System.Drawing.Point(188, 346); - this.htmlPanel1.Name = "htmlPanel1"; - this.htmlPanel1.Size = new System.Drawing.Size(469, 160); - this.htmlPanel1.TabIndex = 19; - this.htmlPanel1.Text = "htmlPanel1"; - // - // pictureBox2 - // - this.pictureBox2.Location = new System.Drawing.Point(172, 330); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(518, 189); - this.pictureBox2.TabIndex = 18; - this.pictureBox2.TabStop = false; - // - // pictureBox1 - // - this.pictureBox1.Location = new System.Drawing.Point(75, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(742, 625); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // // TabLogs // this.TabLogs.Controls.Add(this.LvLogs); @@ -371,6 +212,19 @@ this.OlvLogText.Text = "日志说明"; this.OlvLogText.Width = 500; // + // CbbInterval + // + this.CbbInterval.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.CbbInterval.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CbbInterval.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CbbInterval.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.CbbInterval.FormattingEnabled = true; + this.CbbInterval.Location = new System.Drawing.Point(427, 305); + this.CbbInterval.MaxUndoRedoSteps = 50; + this.CbbInterval.Name = "CbbInterval"; + this.CbbInterval.Size = new System.Drawing.Size(149, 24); + this.CbbInterval.TabIndex = 64; + // // FrmStart // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); @@ -393,9 +247,6 @@ this.menuStrip1.PerformLayout(); this.chromeTabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.TabLogs.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.LvLogs)).EndInit(); this.ResumeLayout(false); @@ -420,16 +271,6 @@ private BrightIdeasSoftware.ObjectListView LvLogs; private BrightIdeasSoftware.OLVColumn OlvLogTime; private BrightIdeasSoftware.OLVColumn OlvLogText; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.PictureBox pictureBox2; - private TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel htmlPanel1; - private ryControls.Controls.RichTextBox2 richTextBox21; - private ryControls.TextBoxEx textBoxEx1; - private ryControls.ComboBoxEx2 ryComboBox1; - private ryControls.DoubleText doubleText1; - private ryControls.rySearch rySearch1; - private ryControls.HotkeyTextBox hotkeyTextBox1; - private ryControls.ButtonEx buttonEx1; - private ryControls.TextBoxEx2 textBoxEx21; + private ryControls.RyComboBox CbbInterval; } } \ No newline at end of file diff --git a/Source/Itrycn_Project2/FrmStart.cs b/Source/Itrycn_Project2/FrmStart.cs index 8481d2e..d4326dd 100644 --- a/Source/Itrycn_Project2/FrmStart.cs +++ b/Source/Itrycn_Project2/FrmStart.cs @@ -1,22 +1,11 @@ -using HtmlAgilityPack; -using IfacesEnumsStructsClasses; -using Itrycn_Project2; -using RaUI.UI.LayeredForm; +using Config; +using HtmlAgilityPack; using ryCommon; -using ryCommonDb; using ryControls; -using RyWeb; using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading; using System.Windows.Forms; -using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace Itrycn_Project2 { @@ -48,6 +37,7 @@ namespace Itrycn_Project2 e.Item.ForeColor = item.Color; } }; + //var href = "http://www.87g.com/youxi/4740.html"; //var dd = href.StartsWith("@"); //var kk= GetSection(RyFiles.ReadAllText("E:\\My Datas\\My Codes\\毕方项目\\CSharp\\ryProcessManager\\Bin\\Debug\\11111111.txt"),"//h3 | //h4"); @@ -265,37 +255,29 @@ namespace Itrycn_Project2 private void FrmStart_Load(object sender, EventArgs e) { + ryCommon.SuperFileSearch superFileSearch = new SuperFileSearch(); + superFileSearch.OnSearchFile += SuperFileSearch_OnSearchFile; + superFileSearch.OnSearchDir += SuperFileSearch_OnSearchDir; + var files = superFileSearch.Search("E:\\My Datas\\My Codes\\毕方项目\\CSharp\\数据库备份工具\\Source\\DatabaseBackup", "*.cs;*.csproj"); + //var compare = RySoft.CompareVer("3.2","3.3 Build 2"); + //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + //ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate; //SaveBase64ImageAsFile("data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM4MjUzRUI0MTYxQzExRUVCMEZBRjAxODQ2NjA5Q0YxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM4MjUzRUI1MTYxQzExRUVCMEZBRjAxODQ2NjA5Q0YxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzgyNTNFQjIxNjFDMTFFRUIwRkFGMDE4NDY2MDlDRjEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzgyNTNFQjMxNjFDMTFFRUIwRkFGMDE4NDY2MDlDRjEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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", Application.StartupPath + "\\1111.jpg"); //hotkeyTextBox1.LoadHotKey("Ctrl+Shift+A"); //ryComboBox1.SelectedIndex=0; - //var process = Process.GetProcessesByName("bds"); - //System.Net.ServicePointManager.DefaultConnectionLimit = 50; - //QuickWeb web = new QuickWeb(); - //var http = web.UrlEncode("猫咪——安安"); - //web.Referer = "http://k73dx12.tengapk.com/android/dreamhouse.mod.apk"; - //var kk = web.GetSize("http://42.248.92.71:2080/k73dx12.tengapk.com/android/dreamhouse.mod.apk?wsiphost=ipdbme&wsrid_tag=66b17fe7_PS-HYN-01IIQ27_63791-5797-s1t1722908647649&ip_type=0"); - //IDbInterface db = new MySqlDataProvider(); - //var aa= RyImage.LoadPic("C:\\Users\\李凤鑫\\Desktop\\2024115135247764860.png"); - //RyWeb.QuickWeb web = new RyWeb.QuickWeb(); - //var size= web.GetSize("https://oss-admin.blazingcats.com/Product/Package/100_llfz_101_llfzgw_1656930048.apk"); - //size = web.GetSize("https://oss-admin.blazingcats.com/Product/Package/100_llfz_101_llfzgw_1656930048.apk"); - //textBox2.Text = web.Get("https://apkpure.com/cn/animation-throwdown-epic-ccg/com.kongregate.mobile.throwdown.google/download").Html; //ryCommon.ApkOp apkOp = new ApkOp(); //apkOp.AAPT_Path = "E:\\My Datas\\My Codes\\毕方项目\\CSharp\\ryProcessManager\\Bin\\Debug\\SysDb\\Tools\\ApkLook\\aapt.exe"; - //var kk = apkOp.Read_Apk("C:\\Users\\zilin\\Desktop\\com.lhdn.apk"); - // objectListView1.InsertObjects(0, new LogInfo[] { new LogInfo() }); - //var en= ryCommon.TxtFileEncoder.GetEncoding(@"E:\My Datas\毕方项目\CSharp\ryProcessManager\Bin\Debug\SysDb\applist.lst"); - var hosts = ryCommon.RyFiles.ReadAllText(@"E:\My Datas\My Codes\毕方项目\CSharp\ryProcessManager\Bin\Debug\UserDb\Hosts.txt"); - var result = ryCommon.Hosts.AddHosts(hosts); - //var kk= ryCommon.ProcessExt.GetPath(24348); - //var img = RyImage.LoadPic(@"C:\Users\zilin\Desktop\1.jpg"); - //var watermark =new Bitmap(RyImage.LoadPic(@"C:\Users\zilin\Desktop\water.png")); - //var pos= new List(new WatermarkPosition[] { WatermarkPosition.FullScreenTile }); - //pictureBox1.Image = img.ReSizeW(300); - //pictureBox1.Image= img.DrawWatermark(watermark, WatermarkPosition.FullScreenTile, 0,0,20f); - //ryCommon.PinYin.Convert("李凤鑫"); + //var kk = apkOp.Read_Apk("C:\\Users\\zilin\\Desktop\\com.kwai.theater.apk"); + //var hosts = ryCommon.RyFiles.ReadAllText(@"E:\My Datas\My Codes\毕方项目\CSharp\ryProcessManager\Bin\Debug\UserDb\Hosts.txt"); + //var result = ryCommon.Hosts.AddHosts(hosts); + ////var kk= ryCommon.ProcessExt.GetPath(24348); + ////var img = RyImage.LoadPic(@"C:\Users\zilin\Desktop\1.jpg"); + ////var watermark =new Bitmap(RyImage.LoadPic(@"C:\Users\zilin\Desktop\water.png")); + ////var pos= new List(new WatermarkPosition[] { WatermarkPosition.FullScreenTile }); + ////pictureBox1.Image = img.ReSizeW(300); + ////pictureBox1.Image= img.DrawWatermark(watermark, WatermarkPosition.FullScreenTile, 0,0,20f); Public_Config.LoadSetting(); - //Itrycn_Project.Itrycn_Db.CreateTable(); + //Itrycn_Db.CreateTable(); //var dbver = Itrycn_Db.GetDbVer(); //if(dbver==1) //初始版本,并是当前要求的数据库 //{ @@ -314,17 +296,16 @@ namespace Itrycn_Project2 //db.Free(); LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_ConstInfo.Update_Url); update.CheckUpdate(); - //Thread th = new Thread(Start); - //th.Start(); - //void Start() - //{ - // while(true) - // { - // LvLogs.ClearObjects(); - // AddLog("测试测试"); - // Thread.Sleep(200); - // } - //} + } + + private void SuperFileSearch_OnSearchDir(SuperFileSearch sender, System.IO.DirectoryInfo Dirinfo,ref SuperFileSearch.CancelActions Cancel) + { + if (Dirinfo.FullName.IndexOfEx("Config") > 0) { Cancel = SuperFileSearch.CancelActions.CurrentDirectory; } + } + + private void SuperFileSearch_OnSearchFile(SuperFileSearch sender, System.IO.FileInfo Fileinfo,ref bool AddToResult) + { + //AddToResult = false; } private void 选项ToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/Source/Itrycn_Project2/FrmTest2.Designer.cs b/Source/Itrycn_Project2/FrmTest2.Designer.cs index 8b7a232..be1144f 100644 --- a/Source/Itrycn_Project2/FrmTest2.Designer.cs +++ b/Source/Itrycn_Project2/FrmTest2.Designer.cs @@ -119,6 +119,7 @@ this.chromeTabControl1.Controls.Add(this.tabPage1); this.chromeTabControl1.Controls.Add(this.tabPage2); this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default; + this.chromeTabControl1.DrawTabBorder = true; this.chromeTabControl1.ImageList = this.imageList1; this.chromeTabControl1.ItemSize = new System.Drawing.Size(200, 25); this.chromeTabControl1.Location = new System.Drawing.Point(12, 34); @@ -127,7 +128,6 @@ this.chromeTabControl1.ShowAddButton = true; this.chromeTabControl1.ShowCloseButton = true; this.chromeTabControl1.Size = new System.Drawing.Size(656, 320); - this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.chromeTabControl1.TabContextMenuStrip = null; this.chromeTabControl1.TabIndex = 38; this.chromeTabControl1.TabMaxWidth = 200; diff --git a/Source/Itrycn_Project2/FrmTest2.resx b/Source/Itrycn_Project2/FrmTest2.resx index 0b17634..9dd34fb 100644 --- a/Source/Itrycn_Project2/FrmTest2.resx +++ b/Source/Itrycn_Project2/FrmTest2.resx @@ -124,117 +124,117 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABm - HgAAAk1TRnQBSQFMAgEBBAEAASABAAEgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk + HgAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AIgABOgF8Af0B/wEx AXsB+gH/ATMBeAH6Af8BMgF8AfwB/wEzAX4B+wH/ATgBfAH6Af8BNQF8AfwB/wE0AXsB/AH/ATQBewH8 Af8BNQF8AfwB/wE2AX0B/QH/ATQBewH9Af8BMAF+AfcB/wE0AXkB+QH/AVIBigH5Af8B2QHlAfgB/wMW - AR0BUgFeAWgBwQEcAXsBzQH2ARkBfAHaAfgBGgF8AdoB+AEZAXwB2gH4ARkBfAHaAfgBGQF8AdoB+AEZ - AXwB2gH4ARkBfAHaAfgBGQF8AdoB+AEZAX0B2gH4ARoBfgHaAfgBGgF6AdoB+AFBAWwBnQHmAzwBZgFl + AR0BVwFcAV4BwQElAXkBvgH2AR8BfAHMAfgBIAF8AcwB+AEfAXwBzAH4AR8BfAHMAfgBHwF8AcwB+AEf + AXwBzAH4AR8BfAHMAfgBHwF8AcwB+AEfAXwBzAH4ASABfAHMAfgBIAF6AcwB+AFOAWoBiwHmAzwBZgFl AbcBKQH/AWgBuAErAf8BagG5ASoB/wFoAbYBKwH/AWYBuAErAf8BZQG5AS0B/wFlAbgBJgH/AWgBtgEt Af8BYwG5ASoB/wFlAbkBKgH/AW0BtwEtAf8BZgG4ASwB/wFmAboBKAH/AWUBugEqAf8BYgG3ASgB/wFp AbgBKwX/AfwC/QH/AfoB/wH+Af8B/QH+AfoB/wH2AvwB/wL+AfsC/wL+Af8B+wL9Af8B/gH7Af0B/wH9 Af4B/AH/Af4B/wH+Af8B/AH/AfwC/wH8Av8B+wH+AfsB/wL9Av8B/QH+Af0B/wE0AXgB+wH/ATMBeQH6 Af8BPQF4Av8BQAF0AfsB/wEzAXIB+AH/ATQBeAL/ATgBdgH+Af8BNwF1Af0B/wE3AXUB/QH/ATcBdQH9 - Af8BNwF1Af0B/wE4AXcB/AH/AT4BcwL/ATQBeQH+Af8BJwFyAv8BUgGMAfkB/wFVAWEBbQHIAQEBiQL/ + Af8BNwF1Af0B/wE4AXcB/AH/AT4BcwL/ATQBeQH+Af8BJwFyAv8BUgGMAfkB/wFbAV8BZAHIAQEBiQL/ AQEBfgL/AQEBlAL/AQABkQL/AQMBjQL/AU0BowH1Af8BhQG8Ae0B/wGUAcMB6gH/AWQBqQHxAf8BCgF1 - Af4B/wEAAWQC/wEBAWsC/wEBAZAC/wEBAZEC/wEvAXcBsgHvAWgBugErAf8BZwG3AS8B/wFiAbcBJQH/ + Af4B/wEAAWQC/wEBAWsC/wEBAZAC/wEBAZEC/wE6AXMBnwHvAWgBugErAf8BZwG3AS8B/wFiAbcBJQH/ AWYBuQEsAf8BYwG1ASwB/wFiAbcBIwH/AWABtAEgAf8BWwG0ARkB/wFeAb0BGAH/AWcBuAEwAf8BawGy ASwB/wFpAbgBKQH/AWkBuAEpAf8BagG5ASgB/wFnAbcBKAH/AWQBuQEsAf8B0QHvAv8BZgHRAf4B/wFu AdUB/AH/AXkB1QH+Af8BcQHdAv8BawHVAf4B/wFxAd0B/AH/AfMB+gH+Av8B/gL/Aa0B6wH9Af8BZAHW AfsB/wFwAdcC/wFxAdUC/wFtAdkC/wFvAdUC/wGaAeEB/AH/AUMBcwH3Af8BNgFyAfoB/wE7AXIB/QH/ ATcBdAH5Af8BMgFyAfwB/wEwAWkB/QH/AS4BawH8Af8BLwFsAfwB/wEvAWwB/QH/ATABbQH9Af8BLwFs - Af0B/wE0AXUB+wH/AToBcwH7Af8BOAF1AfkB/wEwAXMB+wH/ATcBcAH8Af8BJgGHAcMB8wEBAY8C/wEB + Af0B/wE0AXUB+wH/AToBcwH7Af8BOAF1AfkB/wEwAXMB+wH/ATcBcAH8Af8BMQGCAbIB8wEBAY8C/wEB AYYC/wEAAZkC/wFSAbEB9QH/AcYB3QHlAf8B5wHrAeEB/wH0AfAB3wH/AfUB8AHfAf8B7QHuAeAB/wHa - AeYB4gH/AYcBtwHuAf8BAwFjAv8BAQGVAv8BAAGYAv8BFAGEAeEB+gFpAcABKQH/AWYBvAEtAf8BYwG4 + AeYB4gH/AYcBtwHuAf8BAwFjAv8BAQGVAv8BAAGYAv8BGwF+AdkB+gFpAcABKQH/AWYBvAEtAf8BYwG4 AS8B/wFjAbcBIwH/AWQBsQEiAf8BiwHGAV4B/wGpAdoBiwH/AbEB3QGZAf8BmQHQAXIB/wFwAbsBOAH/ AVkBsgEYAf8BYwG3ASgB/wFkAboBKgH/AWcBtgEtAf8BagG3AS4B/wFkAboBJwH/AfEB/AH7Af8BVgHP AfcB/wEDAb4B+AH/ARIBvgH6Af8BEgG/AfoB/wEQAbgB+wH/ARIBvwH6Af8B8QHrAdUC/wHjAbQB/wF7 AdwB/QH/AQoBtwH8Af8BFgG8AfwB/wEYAb4B+AH/AQkBvAH5Af8BIwG7AfMB/wHTAfQB+wH/ATYBbwL/ ATQBcgH8Af8BNwFsAfwB/wEzAWwB+QH/ATcBawH0Af8BTAF+AfUB/wFIAXsB+QH/AUcBegH4Af8BSAF7 - AfkB/wFHAXoB+AH/AUYBeQH3Af8BIQFfAf4B/wFBAXEB9QH/ATwBcgH6Af8BQgFrAv8BNQFvAf0B/wEu - AYMBsAHvAQEBkwL/AQABhQL/AVQBvAH1Av8B9AHfAf8B5gHrAeQB/wHfAeYB5QH/AYsBxQHvAf8BggG+ - AfAB/wHCAdkB6AH/AfUB8wHiAf8B6AHwAeMB/wG2AcwB6gH/AQABngL/AQEBqQL/ARkBkQHaAfgBaQG7 + AfkB/wFHAXoB+AH/AUYBeQH3Af8BIQFfAf4B/wFBAXEB9QH/ATwBcgH6Af8BQgFrAv8BNQFvAf0B/wE6 + AXsBnwHvAQEBkwL/AQABhQL/AVQBvAH1Av8B9AHfAf8B5gHrAeQB/wHfAeYB5QH/AYsBxQHvAf8BggG+ + AfAB/wHCAdkB6AH/AfUB8wHiAf8B6AHwAeMB/wG2AcwB6gH/AQABngL/AQEBqQL/AR8BiwHMAfgBaQG7 ATIB/wFlAb0BKgH/AWkBwQEtAf8BZQGyAR4B/wHdAfcB2QH/AfsB/wH8A/8B/gH/Af0B+gH+A/8B/AH/ AfgC/QH/Aa8B2wGUAf8BVwGsARcB/wFiAbwBMwH/AWYBvgEmAf8BZgG1ASYB/wFmAbgBKwL/AfgC/wHg AfQB/QH/AQsBsgH7Af8BJAHCAf4B/wEkAcIB9wH/ASQBxAH2Af8BJAHWAv8B2wG3AWQB/wHsAZcBAQH/ AX0B3gHsAf8BDQG8AfsB/wEvAcYB9gH/ARsBwwH4Af8BDwG/AfkB/wHVAfAD/wH9Av8BOgFqAf4B/wFA AWwB+QH/ASsBYwH+Af8BbQGQAfUB/wHiAfEB+wH/AfkB/AL/AfsB/AH+Af8B+gH7Af0B/wH7AfwB/gH/ - AfoB/AH+Af8B+QH6AfwB/wGzAcYB+AH/ASwBXAH8Af8BOQFpAfsB/wE4AWoC/wE8AWwB+QH/AS4BgwGw + AfoB/AH+Af8B+QH6AfwB/wGzAcYB+AH/ASwBXAH8Af8BOQFpAfsB/wE4AWoC/wE8AWwB+QH/AToBewGf Ae8BAAGiAv8BCQGcAf4B/wHOAeQB6QH/AesB7QHmAf8BjQHDAfAB/wEXAasB/QH/ASwBsAH6Af8BCQGk - Af4B/wERAZ0B/QH/AVYBpgH2Af8B2gHmAegB/wHzAfUB5QH/AWEBsgH1Af8BAQGCAv8BGQF8AdoB+AFm + Af4B/wERAZ0B/QH/AVYBpgH2Af8B2gHmAegB/wHzAfUB5QH/AWEBsgH1Af8BAQGCAv8BHwF8AcwB+AFm AbsBKwH/AWcBvQEuAf8BWgG1AREB/wGyAeABmQH/AesB8gHmAf8B6wHyAdgB/wHoAfYB5QH/AboB3QGh Af8B5gH2AdwB/wP+Af8C/QH8Af8B0gHvAcEB/wFVAaoBFAH/AWMBtQEqAf8BawG7ASgB/wFlAbgBKwH/ AfwB/gL/AfoB/QH7Af8BqQHnAv8BGAG+AfoB/wEWAcAB9wH/AY4B5AH9Af8B5gHfAa0B/wHaAZQBGQH/ Ad8BlgEaAf8B4gHAAW0B/wHgAfwC/wEmAcUB+wH/ARoBwAH+Af8BbwHUAfkB/wH6Af8B+wH/AfoB/AH+ Af8BPAFnAf4B/wE0AWEB/QH/AU4BbQHyAf8B3wHnAfQB/wHhAeYC/wHdAeUB/gH/AeEB6QH2Af8B4gHm AfwB/wHcAeAB+AH/AeIB5gH4Af8B+AH5Af0C/wH+Av8BgwGlAfkB/wEwAVgB/gH/ATgBZwH4Af8BNwFn - AfwB/wEuAYMBsAHvAQABpAL/AWgBygH1Af8B9gHzAegB/wHYAecB6wH/AQ0BkQH+Av8B+QHlAf8BdwHN - AfQB/wF9AdMB8wH/AvIB5wH/AdgB5gHrAf8B1gHmAesB/wHYAecB6wH/AbwB3AHtAf8BAAFpAv8BGQF5 - AdoB+AFoAbgBLwH/AWQBwAEmAf8BWAGrAQkB/wHnAfQB3AH/AcEB2QGfAf8B9gH/AfYB/wHYAe4B2wH/ + AfwB/wE6AXsBnwHvAQABpAL/AWgBygH1Af8B9gHzAegB/wHYAecB6wH/AQ0BkQH+Av8B+QHlAf8BdwHN + AfQB/wF9AdMB8wH/AvIB5wH/AdgB5gHrAf8B1gHmAesB/wHYAecB6wH/AbwB3AHtAf8BAAFpAv8BHwF5 + AcwB+AFoAbgBLwH/AWQBwAEmAf8BWAGrAQkB/wHnAfQB3AH/AcEB2QGfAf8B9gH/AfYB/wHYAe4B2wH/ AUoBqgECAf8BSgGqAQIB/wHGAekBtgL/AfwE/wH8Af8BsQHRAZgB/wFVAbEBGAH/AWQBugEuAf8BaAG4 ASkD/wH7Af8B/AH9AfwD/wH8Af8BWgHSAfsB/wEnAcEB8gH/ASgBwQHgAf8B+gGRAQQB/wHfAZoBJgH/ Ad0BmAEjAf8B5wGYARYB/wFAAccB3QH/ARQBwwH9Af8BBAG6AfUB/wHkAfcD/wH7Av8B+AH/AfoB/wE7 AWQB+gH/AUABZQH7Af8BPgFkAfcB/wE4AWEB+QH/AVEBcgH1Af8BUwF3AfwB/wFZAXkB9gH/AVEBdgH5 Af8BWgF4AfcB/wFJAWsB+AH/AbQBwwH3Af8B/gH/Af0B/wG2AcAB+AH/ASwBVQH9Af8BPwFkAfgB/wFC - AWMB/QH/AS4BgwGwAe8BAAGmAv8BrQHdAfEC/wH4AesB/wFYAbsB+QH/AWYBtwH3Av8B+wHpAf8BYAHI - AfgB/wFiAc8B9wH/AeIB8AHsAf8B3gHrAe4B/wHdAekB7gH/Ad4B6QHuAf8BuAHaAfAB/wEAAXYC/wEZ - AXsB2gH4AWsBvAExAf8BYQG6ASsB/wFpAb8BIwH/AcMB4wGoAf8B8QH4Ae8B/wH7Af4B/AH/AZkB0wFy + AWMB/QH/AToBewGfAe8BAAGmAv8BrQHdAfEC/wH4AesB/wFYAbsB+QH/AWYBtwH3Av8B+wHpAf8BYAHI + AfgB/wFiAc8B9wH/AeIB8AHsAf8B3gHrAe4B/wHdAekB7gH/Ad4B6QHuAf8BuAHaAfAB/wEAAXYC/wEf + AXsBzAH4AWsBvAExAf8BYQG6ASsB/wFpAb8BIwH/AcMB4wGoAf8B8QH4Ae8B/wH7Af4B/AH/AZkB0wFy Af8BWgGzARoB/wFkAbUBJgH/AWEBsQEiAf8B2QHvAcUB/wP9Af8B9QH/AfMB/wFrAboBMAH/AWUBugEm Af8BZgG2AS0B/wH+Av0C/wH+Av8B+QH+AfwB/wHZAfMB/gH/AREByAH+Af8BiAGgAWMB/wHDAZIBGwH/ AeIBowEuAf8B6wGyAUMB/wHRAZMBGQH/AbkBkAEgAf8BLgG9AeAB/wHFAfAB/QH/Af0B/wH8Af8B+gH/ AfoB/wL9Av8BPAFhAv8BQgFbAf4B/wFFAVsC/wE5AVgB/QH/AfUB+AH8Av8B/AH+Av8B/QT/AfsD/wH7 - A/8B/QL/Af4B+QH/AfcB+gH+Af8BWgFtAfYB/wEzAVcB+wH/AT8BYgH4Af8BPQFfAf0B/wEvAYMBsAHv + A/8B/QL/Af4B+QH/AfcB+gH+Af8BWgFtAfYB/wEzAVcB+wH/AT8BYgH4Af8BPQFfAf0B/wE6AXsBnwHv AQABqAL/AcUB5QHyAv8B+gHuAf8BQwGzAfsB/wF6AcgB+AL/AfcB7wH/AXUB1AH4Af8BAAGmAv8BAAGp - Av8BAAGYAv8BAAGQAv8BAAGRAv8BAAGLAv8BBQGOAf4B/wEaAXwB2gH4AWgBugErAf8BZwG+ATMB/wFc + Av8BAAGYAv8BAAGQAv8BAAGRAv8BAAGLAv8BBQGOAf4B/wEgAXwBzAH4AWgBugErAf8BZwG+ATMB/wFc AbQBJQH/AZEBzQFhAf8B8wH3AfgB/wH6A/8BiwHFAVgB/wFbAbYBGQH/AWYBugEyAf8BZAG1ASkB/wFY AbIBEwH/AfIB+wHwAf8B/QP/AY0BygFdAf8BaAG3ASoB/wFlAbgBKgH/Af0B/wH7Af8B/QH+A/8B+wP/ Av0B/wG6AdYBqwH/AbkBiQESAf8BxwGNAQsB/wHUAcYBjwH/Af0B/gH6Af8BvQGPARoB/wG/AY4BIAH/ AbIBswFsAv8C/QH/Af0B/gH9A/8B+gH/Av4B/QH/AUEBWwH6Af8BQwFdAfsB/wFDAVoB/QH/AToBVgH5 Af8BuQHEAfgB/wHFAdEB+wH/AcMBywH4Af8BxAHMAfoB/wLHAv8BvAHGAf0B/wHqAeYB+gH/AfkB/AH+ - Af8BhgGOAfcB/wEzAVEB+wH/AUQBXQH4Af8BQwFZAfwB/wEzAYUBsAHvAQQBmwL/AaIB1gH3Af8C/QHy + Af8BhgGOAfcB/wEzAVEB+wH/AUQBXQH4Af8BQwFZAfwB/wE9AX4BnwHvAQQBmwL/AaIB1gH3Af8C/QHy Af8BuwHdAfYB/wFCAaEB/AP/AfEB/wHvAfQB8wH/Ac8B6wH0Af8BzQHsAfQB/wHQAe4B9AH/AbgB6AH1 - Af8BQAHCAfwB/wEHAbMC/wENAbAB/gH/AR0BlgHaAfgBaQG/ASgB/wFmAboBLAH/AWUBvwEsAf8BYgG1 + Af8BQAHCAfwB/wEHAbMC/wENAbAB/gH/ASMBkgHMAfgBaQG/ASgB/wFmAboBLAH/AWUBvwEsAf8BYgG1 ASAB/wHdAfEB1QH/Af0B/wH7Af8BiQHHAVUB/wFeAbgBHgH/AWkBvgEnAf8BYwG6ASwB/wFKAawBBwH/ AccB4wGzAf8B/gH/AfsB/wGWAc4BbgH/AWMBtwEkAf8BZwG6ASoC/wH9Av8B+wH+Af0B/wH4Af8B/AH/ AfoB8AHWAf8B3gGVARAB/wHRAZIBFwH/AacBmAE9Af8BMAHJAe4B/wE8AdMB/gH/AWIBrAGPAf8ByQGQ AQ8B/wHhAZgBGQH/AfYB5wHLAf8B/AH9AfwD/wH7Af8D/QH/AUYBXQH1Af8BRwFVAfwB/wFEAVwB9gH/ ATwBWwH3Af8BJQFDAfYB/wETAS8B+wH/ASQBPwHzAf8BHwE7AfQB/wEpATsB8gH/ARMBKwH2Af8BkQGr - Ae0D/wH9Af8BwQHFAfYB/wEyAUgB+gH/AUkBVwH3Af8BSQFWAfsB/wE0AYgBsAHvAQkBoAL/AUcBtQH8 + Ae0D/wH9Af8BwQHFAfYB/wEyAUgB+gH/AUkBVwH3Af8BSQFWAfsB/wE+AX8BnwHvAQkBoAL/AUcBtQH8 Af8B+gH7AfYD/wH0Af8BUQGmAfwB/wFeAb4B/AH/AfoB/QH1A/8B9AP/AfUC/wH+AfUD/wH0A/8B9AH/ - ARUBuAL/ARYBsQH+Af8BIwGYAdoB+AFiAbwBIwH/AWsBuwEuAf8BYgG7ASUB/wFYAbYBGAH/AakB2AGJ + ARUBuAL/ARYBsQH+Af8BKgGUAcwB+AFiAbwBIwH/AWsBuwEuAf8BYgG7ASUB/wFYAbYBGAH/AakB2AGJ Af8B/QL+Af8BoQHXAX0B/wFZAbcBFwH/AW8BvwEsAf8BZQG9AS4B/wFSAbABCwH/AbgB3AGcAf8B+wH/ AfwB/wGFAccBVgH/AWMBvAEmAf8BZwG2ASsB/wHzAf4B9gH/Af0B/gH9Af8B+wH/AfsB/wHmAbgBYwH/ AdIBnwErAf8B2gGVAR0B/wEXAb4B/QH/ASABxAL/AScBwAL/ARYBwgL/AdYBmwEgAf8B3QGWARsB/wHQ AY8BDgH/AvoB6gL/AfwC/wH9Af8B+gH/AUMBVAH6Af8BSAFSAfsB/wFIAVIB/QH/AUUBUQH8Af8BOgFF AfcB/wKlAfYB/wLyAv8B9QH2AfwB/wH2AfcB/AH/AfQB9gH8Af8B/AH+Af0B/wHxAfQB/QH/AWEBbgHx - Af8BPAFKAfgB/wFKAVEB+gH/AUYBVAH5Af8BOgGJAbAB7wEcAakC/wEFAZgC/wG8AeAB+gH/AfoB+wH5 + Af8BPAFKAfgB/wFKAVEB+gH/AUYBVAH5Af8BQgF/AZ8B7wEcAakC/wEFAZgC/wG8AeAB+gH/AfoB+wH5 Af8B4wHyAfgB/wFqAcEB/QH/AT0BuQH+Af8BUQHAAf0B/wFPAcQB/QH/AU0BzQH9Af8BTAHKAf0B/wFE - AcYB/QH/ARsBuQH+Af8BIQG2Av8BLQGaAdoB+AFoAb8BLQH/AWgBuQEtAf8BaQG+ASwB/wFiAb0BJAH/ + AcYB/QH/ARsBuQH+Af8BIQG2Av8BNQGWAcwB+AFoAb8BLQH/AWgBuQEtAf8BaQG+ASwB/wFiAb0BJAH/ AWgBtgEoAf8B6gH4AewB/wHYAfQB0gH/AVoBtQEhAf8BZQG6AS0B/wFrAbwBLQH/AU8BrwEOAf8BxgHj Aa8B/wHyAfsB8AH/AWcBtwErAf8BYQG2ASwB/wFpAbkBKgH/Av4B/QH/AfwB/gH8Af8B8AHYAacB/wHZ AZQBFwH/AdkBlQEVAf8B7AHSAY8B/wGnAfUB7wH/ARkBvwH3Af8BGwG+AfwB/wFoAd0B9QL/AfsB5AH/ Ad0BnwEqAf8B3gGWARUB/wHmAb0BbgH/Av0C/wH8Af8B/gH/AUQBRgL/AU0BUwH3Af8BQAFMAfgB/wE6 AUcB+gH/AZwBpgHzAf8B+AH6AfwB/wHwAfQB+QH/AfAB9AH5Af8B8QH1AfoB/wHwAfQB+QH/AewB8AH1 - Af8BfAF9AfgB/wE1AT0B9QH/AUUBVAH7Af8BSAFRAfUB/wFBAVAB+QH/AT4BjAGwAe8BJwG1Av8BMAG6 + Af8BfAF9AfgB/wE1AT0B9QH/AUUBVAH7Af8BSAFRAfUB/wFBAVAB+QH/AUYBggGfAe8BJwG1Av8BMAG6 Af4B/wEuAbIE/wH7Af8B/gH9AfsD/wH6A/8B+gP/AfoD/wH6Av8B/gH6A/8B+gH/AfEC+wH/AVABvgH+ - Af8BJQGpAv8BNwGXAdoB+AFnAbwBKgH/AWoBvQEwAf8BZgG8ASgB/wFnAbwBKwH/AVcBsgEPAf8BtAHb + Af8BJQGpAv8BOgGTAcwB+AFnAbwBKgH/AWoBvQEwAf8BZgG8ASgB/wFnAbwBKwH/AVcBsgEPAf8BtAHb AZcB/wH7Af4B/AH/AYYBxgFTAf8BYQG3ASMB/wFeAbgBKgH/AUUBrAEKAf8B6wH5Ae0B/wGGAcIBUAH/ AVsBsAEXAf8BbAG9ASsB/wFmAbYBLwL/Af0C/wH8AfIB4QH/AdYBiAENAf8B3gGbAR8B/wHcAaIBJAH/ AdwBmQErAf8B8QGnASsB/wFgAc8B8gH/AQEBwwL/Ad8BxQGLAf8B3QGTAR0B/wHhAaEBLQH/AdwBnwEp Af8B2AGRARYC/wHvAd4B/wH9A/8BTwFKAfgB/wFGAUsB9wH/AkgB/QH/AUkBSgH7Af8BUgFTAfgB/wFG AUcB+wH/AUgBRgH6Af8BSAFGAfoB/wFJAUcB+wH/AUcBRQH5Af8BRgFEAfgB/wE+AUAB9wH/AUoBSwH9 - Af8BSQFKAfoB/wFIAUsB9gH/AUcBSAH+Af8BRAGSAbwB8QExAboC/wE4Ab4C/wEzAbgB/gH/ATkBuQH+ + Af8BSQFKAfoB/wFIAUsB9gH/AUcBSAH+Af8BSgGJAasB8QExAboC/wE4Ab4C/wEzAbgB/gH/ATkBuQH+ Af8BoAHdAf0B/wHfAfMB/QH/AfoC/QH/Af4B/wH9Af8C/gH9Af8C/gH9Af8C/gH9Af8B/QH+Af0B/wHa - AfAB/QH/ARkBogL/ATkBmQHaAfgBZwG8AS0B/wFnAbsBLQH/AWgBuwEwAf8BZwG7ASwB/wFqAbwBMwH/ + AfAB/QH/ARkBogL/ATsBlQHMAfgBZwG8AS0B/wFnAbsBLQH/AWgBuwEwAf8BZwG7ASwB/wFqAbwBMwH/ AV0BugEbAf8BqQHZAYUB/wHaAe0BzQH/AX4ByQFYAf8BfAHJAVIB/wHlAfUB0AH/AZkB0AFxAf8BWQG1 ARkB/wFpAbwBLQH/AWUBtQEwAf8BZQG6ASgB/wL9AfoB/wHeAa8BWgH/AdEBkgENAf8B2gGWARkB/wHQ AZUBFwH/AdYBkAEOAf8B2wGRAQ8B/wHWAfQB7wH/AbIB7wH9Af8B7gHGAXoB/wHYAYsBBwH/AdUBlQET Af8B1gGUAR8B/wHVAZIBDwH/AdYBkQEnAf8B9AHtAdcB/wFqAWAB+gH/ATwBNQL/AV0BSgH9Af8BTQFE AfoB/wFOAUUB+QH/AU0BSAH7Af8BSQFGAfoB/wFKAUcB+wH/AUoBRwH7Af8BSgFHAfsB/wFLAUgB/AH/ - AUwBRgH4Af8BUQFDAv8BTAFKAfcB/wFMAUkB/QH/AVEBSQH4Af8BRAGYAcMB8wE6AbwC/wFBAcAC/wFG + AUwBRgH4Af8BUQFDAv8BTAFKAfcB/wFMAUkB/QH/AVEBSQH4Af8BSgGPAbIB8wE6AbwC/wFBAcAC/wFG Ab4C/wFOAcAB/gH/ATsBuAH+Af8BNQGvAf4B/wFeAb4B/gH/AWgBwgH+Af8BZgHGAf4B/wFkAdIB/gH/ - AWEBzwH+Af8BXQHOAv8BWgHAAv8BPwGxAv8BMwGbAecB/AFoAb0BKwH/AWgBvgEsAf8BZQG4AS0B/wFn + AWEBzwH+Af8BXQHOAv8BWgHAAv8BPwGxAv8BMQGVAd0B/AFoAb0BKwH/AWgBvgEsAf8BZQG4AS0B/wFn Ab4BKAH/AWYBtQE2Af8BbQG+ATQB/wFYAbABHAH/AWIBuQEkAf8BqwHaAY4B/wGkAdgBgAH/AVcBrgEW Af8BXQG4ARcB/wFnAb8BLwH/AWcBvQEpAf8BYAHBASoB/wFlAbcBKAH/AfQB6QHVAf8B4wGtAUoB/wHk AbEBUwH/AekBswFYAf8B7QG6AVIB/wHdAbQBVwH/AeIBtwFWAf8B/gH5AfQB/wH9Af4B+gH/AfEB1gGi @@ -242,19 +242,19 @@ AT4B9gH/AT0BNgH2Af8BTAFFAfcB/wFKAUIB+wH/AU8BQgH8Af8BTQFEAfoB/wFMAUMB+QH/AU0BRAH6 Af8BTQFEAfoB/wFMAUMB+QH/AU4BQwH5Af8BSwFEAfgB/wFIAUQB+wH/AUoBRAH8Af8BSwFDAfoB/wFC AkMBdQFBAbsC/wFIAb4C/wFPAcAC/wFVAcIC/wFZAcMC/wFcAcAB/gH/AVcBvgH+Af8BVgG9Af4B/wFV - AcAB/gH/AVIBxgL/AU0BwwL/AUgBwgL/AUIBuQL/AUUBtwL/AVgBZQFtAcUBZAG9ASYB/wFkAboBKwH/ + AcAB/gH/AVIBxgL/AU0BwwL/AUgBwgL/AUIBuQL/AUUBtwL/AVsBXwFhAcUBZAG9ASYB/wFkAboBKwH/ AWUBvQEoAf8BZAG9AScB/wFmAbwBLwH/AWIBvwEjAf8BZgG9ASsB/wFlAbkBJAH/AV4BtwEbAf8BWgG2 ARkB/wFlAbsBKQH/AWUBuwEvAf8BaQG9AS8B/wFkAbsBKwH/AWMBvAEuAf8BaAG6ASwB/wH6Af0B/AH/ Av4B+wH/AfsB/wH8Af8C/gH9Af8C/AH6Af8B/QH/Af4D/wH9Af8C/AH+Af8B+QH9Af4C/wH9Af4B/wH9 Af8B/QH/AfwB/gL/Av0B/gH/Af0B/wH7Av8C/AH/AfwB/gH8A/8B+AH/AdoB2QH3Af8BaQFdAfUB/wFO ATwB9wH/AUUBPwH4Af8BTgE/AfcB/wFNAT8B+QH/AU4BQAH6Af8BTQE/AfkB/wFNAT8B+QH/AU4BQAH6 - Af8BTAE9Af4B/wFKAUIB8wH/AVEBPgH3Af8BVgE9Af0B/wFOAUIB9QH/BAADQAFuAVkBggGgAekBWgGZ - AbsB8QFcAZQBsAHvAWIBlAGwAe8BZgGcAbAB7wFnAZ0BsAHvAWcBnAGwAe8BZwGZAbAB7wFkAZEBsAHv - AV8BkQGwAe8BWQGOAbAB7wFZAZUBsQHvAVYBWwFdAbUDGAEgAWcBvgEuAf8BagG/ATMB/wFoAbwBNAH/ - AWoBwQEwAf8BZQG4ATQB/wFqAb8BMwH/AWoBugE3Af8BbAHAATIB/wFlAbkBMQH/AWkBvwE1Af8BaAG+ - ATIB/wFrAcABLQH/AWgBwAEtAf8BaAHCATEB/wFwAbkBNQH/AWwBwAExAf8B9AH/AfwD/wH+Af8B/QH8 - Av8B/AH+Af0B/wH0Af0D/wH9B/8C/gL/Af4B/Qb/Af4C/wH5Af8B/gP/AfgB/wH4Af4D/wH9Av8B+QH+ - Av8BQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD//sAAYAFAAs= + Af8BTAE9Af4B/wFKAUIB8wH/AVEBPgH3Af8BVgE9Af0B/wFOAUIB9QH/BAADQAFuAVoBeAGMAekBXAGQ + AaoB8QFcAYgBnwHvAWIBiAGfAe8BZgGOAZ8B7wFnAY8BnwHvAWcBjgGfAe8BZwGMAZ8B7wFkAYYBnwHv + AV8BhgGfAe8BWQGDAZ8B7wFZAYkBnwHvAVYCVwG1AxgBIAFnAb4BLgH/AWoBvwEzAf8BaAG8ATQB/wFq + AcEBMAH/AWUBuAE0Af8BagG/ATMB/wFqAboBNwH/AWwBwAEyAf8BZQG5ATEB/wFpAb8BNQH/AWgBvgEy + Af8BawHAAS0B/wFoAcABLQH/AWgBwgExAf8BcAG5ATUB/wFsAcABMQH/AfQB/wH8A/8B/gH/Af0B/AL/ + AfwB/gH9Af8B9AH9A/8B/Qf/Av4C/wH+Af0G/wH+Av8B+QH/Af4D/wH4Af8B+AH+A/8B/QL/AfkB/gL/ + AUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA//7AAGABQAL diff --git a/Source/Itrycn_Project2/Itrycn_Project2.csproj b/Source/Itrycn_Project2/Itrycn_Project2.csproj index 4ec34ac..2575b79 100644 --- a/Source/Itrycn_Project2/Itrycn_Project2.csproj +++ b/Source/Itrycn_Project2/Itrycn_Project2.csproj @@ -8,7 +8,7 @@ WinExe Itrycn_Project2 Itrycn_Project2 - v4.6.2 + v4.8 512 publish\ true @@ -64,6 +64,7 @@ + @@ -75,34 +76,22 @@ - + - + - + Form - + FrmAdd.cs - + Form - + FrmView.cs - - Form - - - Form1.cs - - - Form - - - FormTest.cs - Form @@ -127,26 +116,26 @@ FrmTest2.cs - + Form - + FrmFileBrowser_New.cs - + Form - + FrmMainEditor.cs - + Form - + FrmTitle.cs - - + + Form @@ -168,38 +157,32 @@ - + Form - + FrmMessageBox.cs - - + + Form - + SKinForm.cs - + Form - + SkinMdiForm.cs - - + + FrmAdd.cs - + FrmView.cs - - Form1.cs - - - FormTest.cs - FrmAbout.cs @@ -212,13 +195,13 @@ FrmTest2.cs - + FrmFileBrowser_New.cs - + FrmMainEditor.cs - + FrmTitle.cs @@ -240,13 +223,13 @@ Resources.resx True - + FrmMessageBox.cs - + SKinForm.cs - + SkinMdiForm.cs @@ -269,7 +252,7 @@ - + diff --git a/Source/Itrycn_Project2/Itrycn_Project2.csproj.user b/Source/Itrycn_Project2/Itrycn_Project2.csproj.user index 9b86104..0b24643 100644 --- a/Source/Itrycn_Project2/Itrycn_Project2.csproj.user +++ b/Source/Itrycn_Project2/Itrycn_Project2.csproj.user @@ -1,6 +1,6 @@ - + - ShowAllFiles + ProjectFiles \ No newline at end of file diff --git a/Source/Itrycn_Project2/DbOp/FrmAdd.Designer.cs b/Source/Itrycn_Project2/OTools/DbOp/FrmAdd.Designer.cs similarity index 98% rename from Source/Itrycn_Project2/DbOp/FrmAdd.Designer.cs rename to Source/Itrycn_Project2/OTools/DbOp/FrmAdd.Designer.cs index 6a2a78d..4f4b32a 100644 --- a/Source/Itrycn_Project2/DbOp/FrmAdd.Designer.cs +++ b/Source/Itrycn_Project2/OTools/DbOp/FrmAdd.Designer.cs @@ -28,80 +28,80 @@ /// private void InitializeComponent() { - this.BtnCancel = new ryControls.ButtonEx(); - this.BtnOK = new ryControls.ButtonEx(); - this.label1 = new System.Windows.Forms.Label(); - this.txtName = new ryControls.TextBoxEx2(); - this.SuspendLayout(); - // - // BtnCancel - // - this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.BtnCancel.Location = new System.Drawing.Point(363, 374); - this.BtnCancel.Name = "BtnCancel"; - this.BtnCancel.Size = new System.Drawing.Size(65, 27); - this.BtnCancel.TabIndex = 5; - this.BtnCancel.Text = "取消"; - this.BtnCancel.UseVisualStyleBackColor = true; - this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); - // - // BtnOK - // - this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.BtnOK.Location = new System.Drawing.Point(292, 374); - this.BtnOK.Name = "BtnOK"; - this.BtnOK.Size = new System.Drawing.Size(65, 27); - this.BtnOK.TabIndex = 4; - this.BtnOK.Text = "确定"; - this.BtnOK.UseVisualStyleBackColor = true; - this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 39); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(29, 12); - this.label1.TabIndex = 7; - this.label1.Text = "名称"; - // - // txtName - // - this.txtName.BackColor = System.Drawing.Color.White; - this.txtName.EmptyText = ""; - this.txtName.Location = new System.Drawing.Point(51, 31); - this.txtName.MaxLength = 999999999; - this.txtName.Multiline = false; - this.txtName.Name = "txtName"; - this.txtName.OnlyNumeric = false; - this.txtName.PasswordChar = '\0'; - this.txtName.ReadOnly = false; - this.txtName.SelectedText = ""; - this.txtName.SelectionLength = 0; - this.txtName.SelectionStart = 0; - this.txtName.Size = new System.Drawing.Size(372, 25); - this.txtName.TabIndex = 6; - this.txtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; - this.txtName.ToolTip = ""; - this.txtName.WordWrap = true; - // - // FrmAdd - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(438, 411); - this.Controls.Add(this.label1); - this.Controls.Add(this.txtName); - this.Controls.Add(this.BtnCancel); - this.Controls.Add(this.BtnOK); - this.Name = "FrmAdd"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "新增"; - this.ResumeLayout(false); - this.PerformLayout(); - + this.BtnCancel = new ryControls.ButtonEx(); + this.BtnOK = new ryControls.ButtonEx(); + this.label1 = new System.Windows.Forms.Label(); + this.txtName = new ryControls.TextBoxEx2(); + this.SuspendLayout(); + // + // BtnCancel + // + this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.BtnCancel.Location = new System.Drawing.Point(363, 374); + this.BtnCancel.Name = "BtnCancel"; + this.BtnCancel.Size = new System.Drawing.Size(65, 27); + this.BtnCancel.TabIndex = 5; + this.BtnCancel.Text = "取消"; + this.BtnCancel.UseVisualStyleBackColor = true; + this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); + // + // BtnOK + // + this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.BtnOK.Location = new System.Drawing.Point(292, 374); + this.BtnOK.Name = "BtnOK"; + this.BtnOK.Size = new System.Drawing.Size(65, 27); + this.BtnOK.TabIndex = 4; + this.BtnOK.Text = "确定"; + this.BtnOK.UseVisualStyleBackColor = true; + this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(4, 39); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(29, 12); + this.label1.TabIndex = 7; + this.label1.Text = "名称"; + // + // txtName + // + this.txtName.BackColor = System.Drawing.Color.White; + this.txtName.EmptyText = ""; + this.txtName.Location = new System.Drawing.Point(51, 31); + this.txtName.MaxLength = 999999999; + this.txtName.Multiline = false; + this.txtName.Name = "txtName"; + this.txtName.OnlyNumeric = false; + this.txtName.PasswordChar = '\0'; + this.txtName.ReadOnly = false; + this.txtName.SelectedText = ""; + this.txtName.SelectionLength = 0; + this.txtName.SelectionStart = 0; + this.txtName.Size = new System.Drawing.Size(372, 25); + this.txtName.TabIndex = 6; + this.txtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.txtName.ToolTip = ""; + this.txtName.WordWrap = true; + // + // FrmAdd + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(438, 411); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtName); + this.Controls.Add(this.BtnCancel); + this.Controls.Add(this.BtnOK); + this.Name = "FrmAdd"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "新增"; + this.ResumeLayout(false); + this.PerformLayout(); + } #endregion diff --git a/Source/Itrycn_Project2/DbOp/FrmAdd.cs b/Source/Itrycn_Project2/OTools/DbOp/FrmAdd.cs similarity index 98% rename from Source/Itrycn_Project2/DbOp/FrmAdd.cs rename to Source/Itrycn_Project2/OTools/DbOp/FrmAdd.cs index 3dfe8e2..253712a 100644 --- a/Source/Itrycn_Project2/DbOp/FrmAdd.cs +++ b/Source/Itrycn_Project2/OTools/DbOp/FrmAdd.cs @@ -1,4 +1,5 @@ -using ryCommon; +using Public.Fun; +using ryCommon; using ryCommonDb; using System; using System.Collections.Generic; diff --git a/Source/Itrycn_Project2/Form1.resx b/Source/Itrycn_Project2/OTools/DbOp/FrmAdd.resx similarity index 100% rename from Source/Itrycn_Project2/Form1.resx rename to Source/Itrycn_Project2/OTools/DbOp/FrmAdd.resx diff --git a/Source/Itrycn_Project2/DbOp/FrmView.cs b/Source/Itrycn_Project2/OTools/DbOp/FrmView.cs similarity index 97% rename from Source/Itrycn_Project2/DbOp/FrmView.cs rename to Source/Itrycn_Project2/OTools/DbOp/FrmView.cs index cb74966..12426c3 100644 --- a/Source/Itrycn_Project2/DbOp/FrmView.cs +++ b/Source/Itrycn_Project2/OTools/DbOp/FrmView.cs @@ -1,246 +1,247 @@ -using ryCommon; -using ryCommonDb; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Itrycn_Project2.DbOp -{ - public partial class FrmView : RySkins.SKinForm - { - readonly string orderSQL = "order by addTime desc"; - readonly string tableName = "MainTable1"; - readonly string titleName = "数据"; - readonly DataProvider.DataProviderType dataType =DataProvider.DataProviderType.SQLiteDataProvider; - readonly string SQLConnStr = Itrycn_Db.SQLConnStr; - /// - /// 是否启用选择模式 - /// - public bool SelectedMode { get; set; } = false; - /// - /// 选择的信息 - /// - public ViewInfo SelectedItem { get; set; }=null; - public FrmView() - { - InitializeComponent(); - OlvName.AspectGetter = delegate (object x) { return ((ViewInfo)x).Name; }; - OlvAddTime.AspectGetter = delegate (object x) { return ((ViewInfo)x).AddTimeStr; }; - } - #region 需要修改的内容 - private void RySearch1_OnSearch(object sender, EventArgs e) - { - //需要修改此处 - //LoadDb("(" + TableProject.name + " like @SearchText or " + TableProject.des + " like @SearchText)"); - } - - private void CtlMyPage1_OnPageChange(object sender, EventArgs e) - { - #region 重新载入数据 - LvCbResult.ClearObjects(); - IDbInterface db = DataProvider.CreateDataProvider(dataType); - List list = new List(); - if (db.ConnDb(SQLConnStr) == 1) - { - DataSet ds = db.ReadData(ctlMyPage1.GetSQLText, ctlMyPage1.T_Parameters); - for (int i = 0; i < ds.Tables[0].Rows.Count; i++) - { - DataRow row = ds.Tables[0].Rows[i]; - list.Add(new ViewInfo() - { - Id=row["id"].ToInt(), - Name = row["Name"].ToString(), - AddTime = row["AddTime"].ToInt64().ToDateTime() - }) ; - } - } - db.Free(); - LvCbResult.AddObjects(list); - #endregion - } - private void GetRow(int id, int index) - { - #region 重新载入数据 - IDbInterface db = DataProvider.CreateDataProvider(dataType); - if (db.ConnDb(SQLConnStr) == 1) - { - DataSet ds = db.ReadData("select * from " + tableName + " where id=" + id); - if (ds.HaveData()) - { - DataRow row = ds.Tables[0].Rows[0]; - var item=(ViewInfo) LvCbResult.GetModelObject(index); - item.Name = row["Name"].ToString(); - //添加剩余的项目 - //添加完毕 - LvCbResult.UpdateObject(item); - } - } - db.Free(); - #endregion - } - #endregion - public void LoadDb(string whereSQL) - { - string _whereSQL = whereSQL; - IDbInterface db = DataProvider.CreateDataProvider(dataType); - if (db.ConnDb(SQLConnStr) == 1) - { - #region 重新载入数据 - db.AddParameter("SearchText", "%" + rySearch1.Text + "%"); - ctlMyPage1.RecordCount = db.GetCount(tableName, _whereSQL); - ctlMyPage1.T_Parameters = db.GetParameter(); - ctlMyPage1.SQLText= db.GetPageSQL(tableName, _whereSQL, orderSQL); - ctlMyPage1.SQLText2 = db.GetPageSQL2(tableName, _whereSQL, orderSQL); - ctlMyPage1.GotoPageIndex(1); - #endregion - } - db.Free(); - } - - private void BtnAdd_Click(object sender, EventArgs e) - { - var frm = new FrmAdd() - { - Text = "添加"+ titleName, - Icon = Icon, - isAdd = 1, - dataType = dataType, - SQLConnStr = SQLConnStr, - }; - frm.mr = new ModalForm(this, frm); - frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { - if (dg == DialogResult.OK) - { - rySearch1.PerformClick(); - } - }); - frm.mr.ShowModal(); - } - - private void BtnEdit_Click(object sender, EventArgs e) - { - if (LvCbResult.SelectedObject == null) { return; } - var item = (ViewInfo)LvCbResult.SelectedObject; - var selectId = item.Id; - var frm = new FrmAdd() - { - Text = "修改"+ titleName, - Icon = Icon, - isAdd = 0, - dataType = dataType, - SQLConnStr = SQLConnStr, - }; - frm.GetInfo(selectId.ToString()); - frm.mr = new ModalForm(this, frm); - frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { - if (dg == DialogResult.OK) - { - GetRow(selectId, LvCbResult.SelectedIndex); - } - }); - frm.mr.ShowModal(); - } - - private void BtnDel_Click(object sender, EventArgs e) - { - if (LvCbResult.SelectedObject == null) { MessageBox.Show("请先选择要删除的项。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } - var item = (ViewInfo)LvCbResult.SelectedObject; - var selectId = item.Id; - if (RySkins.Msg.ShowMsg("确定要删除该项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) - { - return; - } - IDbInterface db = DataProvider.CreateDataProvider(dataType); - if (db.ConnDb(SQLConnStr) == 1) - { - db.DelById(tableName, selectId.ToString()); - LvCbResult.RemoveObject(item); - } - } - - private void FrmView_Load(object sender, EventArgs e) - { - Text = "浏览"+ titleName; - 添加数据ToolStripMenuItem.Text = "添加"+ titleName; - 修改数据ToolStripMenuItem.Text = "修改" + titleName; - 删除数据ToolStripMenuItem.Text = "删除" + titleName; - rySearch1.PerformClick(); - } - - private void 添加数据ToolStripMenuItem_Click(object sender, EventArgs e) - { - btnAdd.PerformClick(); - } - - private void 修改数据ToolStripMenuItem_Click(object sender, EventArgs e) - { - btnEdit.PerformClick(); - } - - private void 删除数据ToolStripMenuItem_Click(object sender, EventArgs e) - { - btnDel.PerformClick(); - } - - private void 复制并添加数据ToolStripMenuItem_Click(object sender, EventArgs e) - { - if (LvCbResult.SelectedObject == null) { return; } - var item = (ViewInfo)LvCbResult.SelectedObject; - var selectId = item.Id; - var frm = new FrmAdd() - { - Text = "添加" + titleName, - Icon = Icon, - isAdd = 1 - }; - frm.GetInfo(selectId.ToString()); - frm.mr = new ModalForm(this, frm); - frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { - if (dg == DialogResult.OK) - { - rySearch1.PerformClick(); - } - }); - frm.mr.ShowModal(); - } - - private void LvCbResult_MouseDoubleClick(object sender, MouseEventArgs e) - { - if(e.Button== MouseButtons.Left) - { - if(SelectedMode) - { - SelectedItem = (ViewInfo)LvCbResult.SelectedObject; - DialogResult = DialogResult.OK; - } - } - } - } - public class ViewInfo - { - /// - /// id - /// - public int Id{ get; set; } - /// - /// 名称 - /// - public string Name { get; set; } - /// - /// 添加时间 - /// - public DateTime AddTime { get; set; } - /// - /// 添加时间字符串 - /// - public string AddTimeStr - { - get { return AddTime.ToString("yyyy-MM-dd dddd HH:mm:ss"); } - } - } -} +using Public.Fun; +using ryCommon; +using ryCommonDb; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Itrycn_Project2.DbOp +{ + public partial class FrmView : RySkins.SKinForm + { + readonly string orderSQL = "order by addTime desc"; + readonly string tableName = "MainTable1"; + readonly string titleName = "数据"; + readonly DataProvider.DataProviderType dataType =DataProvider.DataProviderType.SQLiteDataProvider; + readonly string SQLConnStr = Itrycn_Db.SQLConnStr; + /// + /// 是否启用选择模式 + /// + public bool SelectedMode { get; set; } = false; + /// + /// 选择的信息 + /// + public ViewInfo SelectedItem { get; set; }=null; + public FrmView() + { + InitializeComponent(); + OlvName.AspectGetter = delegate (object x) { return ((ViewInfo)x).Name; }; + OlvAddTime.AspectGetter = delegate (object x) { return ((ViewInfo)x).AddTimeStr; }; + } + #region 需要修改的内容 + private void RySearch1_OnSearch(object sender, EventArgs e) + { + //需要修改此处 + //LoadDb("(" + TableProject.name + " like @SearchText or " + TableProject.des + " like @SearchText)"); + } + + private void CtlMyPage1_OnPageChange(object sender, EventArgs e) + { + #region 重新载入数据 + LvCbResult.ClearObjects(); + IDbInterface db = DataProvider.CreateDataProvider(dataType); + List list = new List(); + if (db.ConnDb(SQLConnStr) == 1) + { + DataSet ds = db.ReadData(ctlMyPage1.GetSQLText, ctlMyPage1.T_Parameters); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + DataRow row = ds.Tables[0].Rows[i]; + list.Add(new ViewInfo() + { + Id=row["id"].ToInt(), + Name = row["Name"].ToString(), + AddTime = row["AddTime"].ToInt64().ToDateTime() + }) ; + } + } + db.Free(); + LvCbResult.AddObjects(list); + #endregion + } + private void GetRow(int id, int index) + { + #region 重新载入数据 + IDbInterface db = DataProvider.CreateDataProvider(dataType); + if (db.ConnDb(SQLConnStr) == 1) + { + DataSet ds = db.ReadData("select * from " + tableName + " where id=" + id); + if (ds.HaveData()) + { + DataRow row = ds.Tables[0].Rows[0]; + var item=(ViewInfo) LvCbResult.GetModelObject(index); + item.Name = row["Name"].ToString(); + //添加剩余的项目 + //添加完毕 + LvCbResult.UpdateObject(item); + } + } + db.Free(); + #endregion + } + #endregion + public void LoadDb(string whereSQL) + { + string _whereSQL = whereSQL; + IDbInterface db = DataProvider.CreateDataProvider(dataType); + if (db.ConnDb(SQLConnStr) == 1) + { + #region 重新载入数据 + db.AddParameter("SearchText", "%" + rySearch1.Text + "%"); + ctlMyPage1.RecordCount = db.GetCount(tableName, _whereSQL); + ctlMyPage1.T_Parameters = db.GetParameter(); + ctlMyPage1.SQLText= db.GetPageSQL(tableName, _whereSQL, orderSQL); + ctlMyPage1.SQLText2 = db.GetPageSQL2(tableName, _whereSQL, orderSQL); + ctlMyPage1.GotoPageIndex(1); + #endregion + } + db.Free(); + } + + private void BtnAdd_Click(object sender, EventArgs e) + { + var frm = new FrmAdd() + { + Text = "添加"+ titleName, + Icon = Icon, + isAdd = 1, + dataType = dataType, + SQLConnStr = SQLConnStr, + }; + frm.mr = new ModalForm(this, frm); + frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { + if (dg == DialogResult.OK) + { + rySearch1.PerformClick(); + } + }); + frm.mr.ShowModal(); + } + + private void BtnEdit_Click(object sender, EventArgs e) + { + if (LvCbResult.SelectedObject == null) { return; } + var item = (ViewInfo)LvCbResult.SelectedObject; + var selectId = item.Id; + var frm = new FrmAdd() + { + Text = "修改"+ titleName, + Icon = Icon, + isAdd = 0, + dataType = dataType, + SQLConnStr = SQLConnStr, + }; + frm.GetInfo(selectId.ToString()); + frm.mr = new ModalForm(this, frm); + frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { + if (dg == DialogResult.OK) + { + GetRow(selectId, LvCbResult.SelectedIndex); + } + }); + frm.mr.ShowModal(); + } + + private void BtnDel_Click(object sender, EventArgs e) + { + if (LvCbResult.SelectedObject == null) { MessageBox.Show("请先选择要删除的项。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } + var item = (ViewInfo)LvCbResult.SelectedObject; + var selectId = item.Id; + if (RySkins.Msg.ShowMsg("确定要删除该项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) + { + return; + } + IDbInterface db = DataProvider.CreateDataProvider(dataType); + if (db.ConnDb(SQLConnStr) == 1) + { + db.DelById(tableName, selectId.ToString()); + LvCbResult.RemoveObject(item); + } + } + + private void FrmView_Load(object sender, EventArgs e) + { + Text = "浏览"+ titleName; + 添加数据ToolStripMenuItem.Text = "添加"+ titleName; + 修改数据ToolStripMenuItem.Text = "修改" + titleName; + 删除数据ToolStripMenuItem.Text = "删除" + titleName; + rySearch1.PerformClick(); + } + + private void 添加数据ToolStripMenuItem_Click(object sender, EventArgs e) + { + btnAdd.PerformClick(); + } + + private void 修改数据ToolStripMenuItem_Click(object sender, EventArgs e) + { + btnEdit.PerformClick(); + } + + private void 删除数据ToolStripMenuItem_Click(object sender, EventArgs e) + { + btnDel.PerformClick(); + } + + private void 复制并添加数据ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (LvCbResult.SelectedObject == null) { return; } + var item = (ViewInfo)LvCbResult.SelectedObject; + var selectId = item.Id; + var frm = new FrmAdd() + { + Text = "添加" + titleName, + Icon = Icon, + isAdd = 1 + }; + frm.GetInfo(selectId.ToString()); + frm.mr = new ModalForm(this, frm); + frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { + if (dg == DialogResult.OK) + { + rySearch1.PerformClick(); + } + }); + frm.mr.ShowModal(); + } + + private void LvCbResult_MouseDoubleClick(object sender, MouseEventArgs e) + { + if(e.Button== MouseButtons.Left) + { + if(SelectedMode) + { + SelectedItem = (ViewInfo)LvCbResult.SelectedObject; + DialogResult = DialogResult.OK; + } + } + } + } + public class ViewInfo + { + /// + /// id + /// + public int Id{ get; set; } + /// + /// 名称 + /// + public string Name { get; set; } + /// + /// 添加时间 + /// + public DateTime AddTime { get; set; } + /// + /// 添加时间字符串 + /// + public string AddTimeStr + { + get { return AddTime.ToString("yyyy-MM-dd dddd HH:mm:ss"); } + } + } +} diff --git a/Source/Itrycn_Project2/DbOp/frmView.Designer.cs b/Source/Itrycn_Project2/OTools/DbOp/frmView.Designer.cs similarity index 98% rename from Source/Itrycn_Project2/DbOp/frmView.Designer.cs rename to Source/Itrycn_Project2/OTools/DbOp/frmView.Designer.cs index d3e289c..fe07c7f 100644 --- a/Source/Itrycn_Project2/DbOp/frmView.Designer.cs +++ b/Source/Itrycn_Project2/OTools/DbOp/frmView.Designer.cs @@ -1,232 +1,232 @@ -namespace Itrycn_Project2.DbOp -{ - partial class FrmView - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.rySearch1 = new ryControls.rySearch(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.复制并添加数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.添加数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.修改数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.删除数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ctlMyPage1 = new MyPage.ctlMyPage(); - this.btnDel = new ryControls.ButtonEx(); - this.btnEdit = new ryControls.ButtonEx(); - this.btnAdd = new ryControls.ButtonEx(); - this.LvCbResult = new BrightIdeasSoftware.FastObjectListView(); - this.OlvName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); - this.OlvAddTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); - this.contextMenuStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).BeginInit(); - this.SuspendLayout(); - // - // rySearch1 - // - this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.rySearch1.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); - this.rySearch1.EmptyText = "请输入搜索内容"; - this.rySearch1.Location = new System.Drawing.Point(12, 30); - this.rySearch1.Name = "rySearch1"; - this.rySearch1.Size = new System.Drawing.Size(329, 24); - this.rySearch1.TabIndex = 28; - this.rySearch1.OnSearch += new System.EventHandler(this.RySearch1_OnSearch); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.复制并添加数据ToolStripMenuItem, - this.添加数据ToolStripMenuItem, - this.修改数据ToolStripMenuItem, - this.删除数据ToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(161, 92); - // - // 复制并添加数据ToolStripMenuItem - // - this.复制并添加数据ToolStripMenuItem.Name = "复制并添加数据ToolStripMenuItem"; - this.复制并添加数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); - this.复制并添加数据ToolStripMenuItem.Text = "复制并添加数据"; - this.复制并添加数据ToolStripMenuItem.Click += new System.EventHandler(this.复制并添加数据ToolStripMenuItem_Click); - // - // 添加数据ToolStripMenuItem - // - this.添加数据ToolStripMenuItem.Name = "添加数据ToolStripMenuItem"; - this.添加数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); - this.添加数据ToolStripMenuItem.Text = "添加数据"; - this.添加数据ToolStripMenuItem.Click += new System.EventHandler(this.添加数据ToolStripMenuItem_Click); - // - // 修改数据ToolStripMenuItem - // - this.修改数据ToolStripMenuItem.Name = "修改数据ToolStripMenuItem"; - this.修改数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); - this.修改数据ToolStripMenuItem.Text = "修改数据"; - this.修改数据ToolStripMenuItem.Click += new System.EventHandler(this.修改数据ToolStripMenuItem_Click); - // - // 删除数据ToolStripMenuItem - // - this.删除数据ToolStripMenuItem.Name = "删除数据ToolStripMenuItem"; - this.删除数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); - this.删除数据ToolStripMenuItem.Text = "删除数据"; - this.删除数据ToolStripMenuItem.Click += new System.EventHandler(this.删除数据ToolStripMenuItem_Click); - // - // ctlMyPage1 - // - this.ctlMyPage1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.ctlMyPage1.Location = new System.Drawing.Point(12, 637); - this.ctlMyPage1.Name = "ctlMyPage1"; - this.ctlMyPage1.PageSize = 50; - this.ctlMyPage1.RecordCount = 0; - this.ctlMyPage1.Size = new System.Drawing.Size(506, 26); - this.ctlMyPage1.SQLText = ""; - this.ctlMyPage1.SQLText2 = ""; - this.ctlMyPage1.T_FirstCaption = "首页"; - this.ctlMyPage1.T_LastCaption = "末页"; - this.ctlMyPage1.T_NextCaption = "下一页"; - this.ctlMyPage1.T_Parameters = null; - this.ctlMyPage1.T_PreCaption = "上一页"; - this.ctlMyPage1.T_SkipCaption = "跳到"; - this.ctlMyPage1.T_TipCaption = "{pageindex}/{pagecount} 页,共 {recordcount} 条记录,每页 {pagesize} 条"; - this.ctlMyPage1.TabIndex = 30; - this.ctlMyPage1.OnPageChange += new System.EventHandler(this.CtlMyPage1_OnPageChange); - // - // btnDel - // - this.btnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnDel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.btnDel.Location = new System.Drawing.Point(978, 30); - this.btnDel.Name = "btnDel"; - this.btnDel.Size = new System.Drawing.Size(62, 24); - this.btnDel.TabIndex = 40; - this.btnDel.Text = "删除"; - this.btnDel.UseVisualStyleBackColor = true; - this.btnDel.Click += new System.EventHandler(this.BtnDel_Click); - // - // btnEdit - // - this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnEdit.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.btnEdit.Location = new System.Drawing.Point(910, 30); - this.btnEdit.Name = "btnEdit"; - this.btnEdit.Size = new System.Drawing.Size(62, 24); - this.btnEdit.TabIndex = 39; - this.btnEdit.Text = "修改"; - this.btnEdit.UseVisualStyleBackColor = true; - this.btnEdit.Click += new System.EventHandler(this.BtnEdit_Click); - // - // btnAdd - // - this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnAdd.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.btnAdd.Location = new System.Drawing.Point(842, 30); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size(62, 24); - this.btnAdd.TabIndex = 38; - this.btnAdd.Text = "添加"; - this.btnAdd.UseVisualStyleBackColor = true; - this.btnAdd.Click += new System.EventHandler(this.BtnAdd_Click); - // - // LvCbResult - // - this.LvCbResult.AllColumns.Add(this.OlvName); - this.LvCbResult.AllColumns.Add(this.OlvAddTime); - this.LvCbResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.LvCbResult.CellEditUseWholeCell = false; - this.LvCbResult.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.OlvName, - this.OlvAddTime}); - this.LvCbResult.ContextMenuStrip = this.contextMenuStrip1; - this.LvCbResult.Cursor = System.Windows.Forms.Cursors.Default; - this.LvCbResult.EmptyListMsg = "当前列表没有任何项"; - this.LvCbResult.FullRowSelect = true; - this.LvCbResult.HideSelection = false; - this.LvCbResult.IsSearchOnSortColumn = false; - this.LvCbResult.Location = new System.Drawing.Point(12, 60); - this.LvCbResult.Name = "LvCbResult"; - this.LvCbResult.RowHeight = 25; - this.LvCbResult.ShowGroups = false; - this.LvCbResult.ShowItemToolTips = true; - this.LvCbResult.Size = new System.Drawing.Size(1028, 575); - this.LvCbResult.TabIndex = 85; - this.LvCbResult.UseCompatibleStateImageBehavior = false; - this.LvCbResult.UseFiltering = true; - this.LvCbResult.View = System.Windows.Forms.View.Details; - this.LvCbResult.VirtualMode = true; - this.LvCbResult.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.LvCbResult_MouseDoubleClick); - // - // OlvName - // - this.OlvName.Text = "名称"; - this.OlvName.Width = 200; - // - // OlvAddTime - // - this.OlvAddTime.Text = "时间"; - this.OlvAddTime.Width = 200; - // - // FrmView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1052, 667); - this.Controls.Add(this.LvCbResult); - this.Controls.Add(this.btnDel); - this.Controls.Add(this.btnEdit); - this.Controls.Add(this.btnAdd); - this.Controls.Add(this.ctlMyPage1); - this.Controls.Add(this.rySearch1); - this.Location = new System.Drawing.Point(0, 0); - this.Name = "FrmView"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "浏览"; - this.Load += new System.EventHandler(this.FrmView_Load); - this.contextMenuStrip1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private ryControls.rySearch rySearch1; - private MyPage.ctlMyPage ctlMyPage1; - private ryControls.ButtonEx btnDel; - private ryControls.ButtonEx btnEdit; - private ryControls.ButtonEx btnAdd; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem 添加数据ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem 修改数据ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem 删除数据ToolStripMenuItem; - private BrightIdeasSoftware.FastObjectListView LvCbResult; - private BrightIdeasSoftware.OLVColumn OlvName; - private BrightIdeasSoftware.OLVColumn OlvAddTime; - private System.Windows.Forms.ToolStripMenuItem 复制并添加数据ToolStripMenuItem; - } +namespace Itrycn_Project2.DbOp +{ + partial class FrmView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.rySearch1 = new ryControls.rySearch(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.复制并添加数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.添加数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.修改数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.删除数据ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ctlMyPage1 = new MyPage.ctlMyPage(); + this.btnDel = new ryControls.ButtonEx(); + this.btnEdit = new ryControls.ButtonEx(); + this.btnAdd = new ryControls.ButtonEx(); + this.LvCbResult = new BrightIdeasSoftware.FastObjectListView(); + this.OlvName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); + this.OlvAddTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); + this.contextMenuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).BeginInit(); + this.SuspendLayout(); + // + // rySearch1 + // + this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); + this.rySearch1.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244))))); + this.rySearch1.EmptyText = "请输入搜索内容"; + this.rySearch1.Location = new System.Drawing.Point(12, 30); + this.rySearch1.Name = "rySearch1"; + this.rySearch1.Size = new System.Drawing.Size(329, 24); + this.rySearch1.TabIndex = 28; + this.rySearch1.OnSearch += new System.EventHandler(this.RySearch1_OnSearch); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.复制并添加数据ToolStripMenuItem, + this.添加数据ToolStripMenuItem, + this.修改数据ToolStripMenuItem, + this.删除数据ToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(161, 92); + // + // 复制并添加数据ToolStripMenuItem + // + this.复制并添加数据ToolStripMenuItem.Name = "复制并添加数据ToolStripMenuItem"; + this.复制并添加数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.复制并添加数据ToolStripMenuItem.Text = "复制并添加数据"; + this.复制并添加数据ToolStripMenuItem.Click += new System.EventHandler(this.复制并添加数据ToolStripMenuItem_Click); + // + // 添加数据ToolStripMenuItem + // + this.添加数据ToolStripMenuItem.Name = "添加数据ToolStripMenuItem"; + this.添加数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.添加数据ToolStripMenuItem.Text = "添加数据"; + this.添加数据ToolStripMenuItem.Click += new System.EventHandler(this.添加数据ToolStripMenuItem_Click); + // + // 修改数据ToolStripMenuItem + // + this.修改数据ToolStripMenuItem.Name = "修改数据ToolStripMenuItem"; + this.修改数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.修改数据ToolStripMenuItem.Text = "修改数据"; + this.修改数据ToolStripMenuItem.Click += new System.EventHandler(this.修改数据ToolStripMenuItem_Click); + // + // 删除数据ToolStripMenuItem + // + this.删除数据ToolStripMenuItem.Name = "删除数据ToolStripMenuItem"; + this.删除数据ToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.删除数据ToolStripMenuItem.Text = "删除数据"; + this.删除数据ToolStripMenuItem.Click += new System.EventHandler(this.删除数据ToolStripMenuItem_Click); + // + // ctlMyPage1 + // + this.ctlMyPage1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.ctlMyPage1.Location = new System.Drawing.Point(12, 637); + this.ctlMyPage1.Name = "ctlMyPage1"; + this.ctlMyPage1.PageSize = 50; + this.ctlMyPage1.RecordCount = 0; + this.ctlMyPage1.Size = new System.Drawing.Size(506, 26); + this.ctlMyPage1.SQLText = ""; + this.ctlMyPage1.SQLText2 = ""; + this.ctlMyPage1.T_FirstCaption = "首页"; + this.ctlMyPage1.T_LastCaption = "末页"; + this.ctlMyPage1.T_NextCaption = "下一页"; + this.ctlMyPage1.T_Parameters = null; + this.ctlMyPage1.T_PreCaption = "上一页"; + this.ctlMyPage1.T_SkipCaption = "跳到"; + this.ctlMyPage1.T_TipCaption = "{pageindex}/{pagecount} 页,共 {recordcount} 条记录,每页 {pagesize} 条"; + this.ctlMyPage1.TabIndex = 30; + this.ctlMyPage1.OnPageChange += new System.EventHandler(this.CtlMyPage1_OnPageChange); + // + // btnDel + // + this.btnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnDel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.btnDel.Location = new System.Drawing.Point(978, 30); + this.btnDel.Name = "btnDel"; + this.btnDel.Size = new System.Drawing.Size(62, 24); + this.btnDel.TabIndex = 40; + this.btnDel.Text = "删除"; + this.btnDel.UseVisualStyleBackColor = true; + this.btnDel.Click += new System.EventHandler(this.BtnDel_Click); + // + // btnEdit + // + this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnEdit.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.btnEdit.Location = new System.Drawing.Point(910, 30); + this.btnEdit.Name = "btnEdit"; + this.btnEdit.Size = new System.Drawing.Size(62, 24); + this.btnEdit.TabIndex = 39; + this.btnEdit.Text = "修改"; + this.btnEdit.UseVisualStyleBackColor = true; + this.btnEdit.Click += new System.EventHandler(this.BtnEdit_Click); + // + // btnAdd + // + this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnAdd.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.btnAdd.Location = new System.Drawing.Point(842, 30); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(62, 24); + this.btnAdd.TabIndex = 38; + this.btnAdd.Text = "添加"; + this.btnAdd.UseVisualStyleBackColor = true; + this.btnAdd.Click += new System.EventHandler(this.BtnAdd_Click); + // + // LvCbResult + // + this.LvCbResult.AllColumns.Add(this.OlvName); + this.LvCbResult.AllColumns.Add(this.OlvAddTime); + this.LvCbResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.LvCbResult.CellEditUseWholeCell = false; + this.LvCbResult.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.OlvName, + this.OlvAddTime}); + this.LvCbResult.ContextMenuStrip = this.contextMenuStrip1; + this.LvCbResult.Cursor = System.Windows.Forms.Cursors.Default; + this.LvCbResult.EmptyListMsg = "当前列表没有任何项"; + this.LvCbResult.FullRowSelect = true; + this.LvCbResult.HideSelection = false; + this.LvCbResult.IsSearchOnSortColumn = false; + this.LvCbResult.Location = new System.Drawing.Point(12, 60); + this.LvCbResult.Name = "LvCbResult"; + this.LvCbResult.RowHeight = 25; + this.LvCbResult.ShowGroups = false; + this.LvCbResult.ShowItemToolTips = true; + this.LvCbResult.Size = new System.Drawing.Size(1028, 575); + this.LvCbResult.TabIndex = 85; + this.LvCbResult.UseCompatibleStateImageBehavior = false; + this.LvCbResult.UseFiltering = true; + this.LvCbResult.View = System.Windows.Forms.View.Details; + this.LvCbResult.VirtualMode = true; + this.LvCbResult.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.LvCbResult_MouseDoubleClick); + // + // OlvName + // + this.OlvName.Text = "名称"; + this.OlvName.Width = 200; + // + // OlvAddTime + // + this.OlvAddTime.Text = "时间"; + this.OlvAddTime.Width = 200; + // + // FrmView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1052, 667); + this.Controls.Add(this.LvCbResult); + this.Controls.Add(this.btnDel); + this.Controls.Add(this.btnEdit); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.ctlMyPage1); + this.Controls.Add(this.rySearch1); + this.Location = new System.Drawing.Point(0, 0); + this.Name = "FrmView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "浏览"; + this.Load += new System.EventHandler(this.FrmView_Load); + this.contextMenuStrip1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private ryControls.rySearch rySearch1; + private MyPage.ctlMyPage ctlMyPage1; + private ryControls.ButtonEx btnDel; + private ryControls.ButtonEx btnEdit; + private ryControls.ButtonEx btnAdd; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem 添加数据ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 修改数据ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 删除数据ToolStripMenuItem; + private BrightIdeasSoftware.FastObjectListView LvCbResult; + private BrightIdeasSoftware.OLVColumn OlvName; + private BrightIdeasSoftware.OLVColumn OlvAddTime; + private System.Windows.Forms.ToolStripMenuItem 复制并添加数据ToolStripMenuItem; + } } \ No newline at end of file diff --git a/Source/Itrycn_Project2/DbOp/frmView.resx b/Source/Itrycn_Project2/OTools/DbOp/frmView.resx similarity index 97% rename from Source/Itrycn_Project2/DbOp/frmView.resx rename to Source/Itrycn_Project2/OTools/DbOp/frmView.resx index 9c13369..d3ab101 100644 --- a/Source/Itrycn_Project2/DbOp/frmView.resx +++ b/Source/Itrycn_Project2/OTools/DbOp/frmView.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 35, 26 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 35, 26 + \ No newline at end of file diff --git a/Source/Itrycn_Project2/OTools/FrmScan.Designer.cs b/Source/Itrycn_Project2/OTools/FrmScan.Designer.cs index ab3a6e5..b9cc368 100644 --- a/Source/Itrycn_Project2/OTools/FrmScan.Designer.cs +++ b/Source/Itrycn_Project2/OTools/FrmScan.Designer.cs @@ -39,13 +39,13 @@ this.OlvAddTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.TabLogs = new System.Windows.Forms.TabPage(); this.LvLogs = new BrightIdeasSoftware.FastObjectListView(); - this.OlvLogText = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.OlvLogTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); + this.OlvLogText = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.MenuLogs = new System.Windows.Forms.ContextMenuStrip(this.components); this.复制日志信息ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.导出日志ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.TsState = new System.Windows.Forms.ToolStripStatusLabel(); - this.导出日志ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.chromeTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).BeginInit(); @@ -65,14 +65,14 @@ this.chromeTabControl1.Controls.Add(this.tabPage1); this.chromeTabControl1.Controls.Add(this.TabLogs); this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default; + this.chromeTabControl1.DrawTabBorder = true; this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25); this.chromeTabControl1.Location = new System.Drawing.Point(1, 30); this.chromeTabControl1.Name = "chromeTabControl1"; this.chromeTabControl1.SelectedIndex = 0; this.chromeTabControl1.ShowAddButton = false; this.chromeTabControl1.ShowCloseButton = false; - this.chromeTabControl1.Size = new System.Drawing.Size(802, 538); - this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + this.chromeTabControl1.Size = new System.Drawing.Size(900, 547); this.chromeTabControl1.TabContextMenuStrip = null; this.chromeTabControl1.TabIndex = 0; this.chromeTabControl1.TabMaxWidth = 100; @@ -84,7 +84,7 @@ this.tabPage1.Location = new System.Drawing.Point(1, 29); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(800, 508); + this.tabPage1.Size = new System.Drawing.Size(898, 517); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "首页"; this.tabPage1.UseVisualStyleBackColor = true; @@ -117,10 +117,9 @@ this.LvCbResult.HideSelection = false; this.LvCbResult.Location = new System.Drawing.Point(3, 47); this.LvCbResult.Name = "LvCbResult"; - this.LvCbResult.RowHeight = 25; this.LvCbResult.ShowGroups = false; this.LvCbResult.ShowItemToolTips = true; - this.LvCbResult.Size = new System.Drawing.Size(794, 458); + this.LvCbResult.Size = new System.Drawing.Size(892, 467); this.LvCbResult.TabIndex = 84; this.LvCbResult.UseCompatibleStateImageBehavior = false; this.LvCbResult.UseFiltering = true; @@ -166,7 +165,6 @@ this.LvLogs.HideSelection = false; this.LvLogs.Location = new System.Drawing.Point(3, 3); this.LvLogs.Name = "LvLogs"; - this.LvLogs.RowHeight = 25; this.LvLogs.ShowGroups = false; this.LvLogs.ShowItemToolTips = true; this.LvLogs.Size = new System.Drawing.Size(794, 483); @@ -176,17 +174,16 @@ this.LvLogs.View = System.Windows.Forms.View.Details; this.LvLogs.VirtualMode = true; // - // OlvLogText - // - this.OlvLogText.DisplayIndex = 0; - this.OlvLogText.Text = "日志"; - this.OlvLogText.Width = 400; - // // OlvLogTime // this.OlvLogTime.Text = "日志时间"; this.OlvLogTime.Width = 180; // + // OlvLogText + // + this.OlvLogText.Text = "日志"; + this.OlvLogText.Width = 400; + // // MenuLogs // this.MenuLogs.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -202,13 +199,20 @@ this.复制日志信息ToolStripMenuItem.Text = "复制日志信息"; this.复制日志信息ToolStripMenuItem.Click += new System.EventHandler(this.复制日志信息ToolStripMenuItem_Click); // + // 导出日志ToolStripMenuItem + // + this.导出日志ToolStripMenuItem.Name = "导出日志ToolStripMenuItem"; + this.导出日志ToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.导出日志ToolStripMenuItem.Text = "导出日志"; + this.导出日志ToolStripMenuItem.Click += new System.EventHandler(this.导出日志ToolStripMenuItem_Click); + // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.TsState}); - this.statusStrip1.Location = new System.Drawing.Point(1, 573); + this.statusStrip1.Location = new System.Drawing.Point(1, 582); this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(802, 22); + this.statusStrip1.Size = new System.Drawing.Size(900, 22); this.statusStrip1.TabIndex = 3; this.statusStrip1.Text = "statusStrip1"; // @@ -218,18 +222,11 @@ this.TsState.Size = new System.Drawing.Size(83, 17); this.TsState.Text = "状态:准备就绪"; // - // 导出日志ToolStripMenuItem - // - this.导出日志ToolStripMenuItem.Name = "导出日志ToolStripMenuItem"; - this.导出日志ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.导出日志ToolStripMenuItem.Text = "导出日志"; - this.导出日志ToolStripMenuItem.Click += new System.EventHandler(this.导出日志ToolStripMenuItem_Click); - // // FrmScan // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(804, 596); + this.ClientSize = new System.Drawing.Size(902, 605); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.chromeTabControl1); this.Location = new System.Drawing.Point(0, 0); diff --git a/Source/Itrycn_Project2/OTools/FrmScan.cs b/Source/Itrycn_Project2/OTools/FrmScan.cs index 2d5a03b..36dcd71 100644 --- a/Source/Itrycn_Project2/OTools/FrmScan.cs +++ b/Source/Itrycn_Project2/OTools/FrmScan.cs @@ -24,10 +24,10 @@ namespace Itrycn_Project2 //配置软件信息 OlvGameName.AspectGetter = delegate (object x) { return ((ItemInfo)x).Name; }; OlvAddTime.AspectGetter = delegate (object x) { return ((ItemInfo)x).AddTime.ToDateTimeStr(); }; - OlvLogTime.AspectGetter = delegate (object x) { return ((LogInfo)x).LogTime.ToDateTimeStr(); }; - OlvLogText.AspectGetter = delegate (object x) { return ((LogInfo)x).LogText; }; + OlvLogTime.AspectGetter = delegate (object x) { return ((Public.Class.LogInfo)x).LogTime.ToDateTimeStr(); }; + OlvLogText.AspectGetter = delegate (object x) { return ((Public.Class.LogInfo)x).LogText; }; LvLogs.FormatRow += delegate (object x, BrightIdeasSoftware.FormatRowEventArgs e) { - LogInfo item = (LogInfo)e.Model; + Public.Class.LogInfo item = (Public.Class.LogInfo)e.Model; if (item.Color != Color.Black) { e.Item.ForeColor = item.Color; @@ -79,7 +79,7 @@ namespace Itrycn_Project2 { LvLogs.RemoveObject(LvLogs.GetModelObject(count - 1)); } - LvLogs.InsertObjects(0, new LogInfo[] { new LogInfo() { LogTime = DateTime.Now, LogText = log, LogTag = tag, Color = color } }); + LvLogs.InsertObjects(0, new Public.Class.LogInfo[] { new Public.Class.LogInfo() { LogTime = DateTime.Now, LogText = log, LogTag = tag, Color = color } }); OlvLogTime.Text = "时间(" + LvLogs.GetItemCount() + ")"; })); } @@ -133,31 +133,9 @@ namespace Itrycn_Project2 private void 复制日志信息ToolStripMenuItem_Click(object sender, EventArgs e) { if (LvLogs.SelectedObject == null) { return; } - var item = (LogInfo)LvLogs.SelectedObject; + var item = (Public.Class.LogInfo)LvLogs.SelectedObject; RyFiles.CopyToClip(item.LogText); } - /// - /// 日志信息 - /// - class LogInfo - { - /// - /// 日志时间 - /// - public DateTime LogTime { get; set; } = DateTime.Now; - /// - /// 日志内容 - /// - public string LogText { get; set; } - /// - /// 日志Tag - /// - public string LogTag { get; set; } - /// - /// 日志文字颜色 - /// - public Color Color { get; set; } = Color.Black; - } class ItemInfo { public string Name { get; set; } = ""; diff --git a/Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.Designer.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.Designer.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.Designer.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.Designer.cs diff --git a/Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.cs diff --git a/Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.resx b/Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.resx similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmFileBrowser_New.resx rename to Source/Itrycn_Project2/OTools/MdiForm/FrmFileBrowser_New.resx diff --git a/Source/Itrycn_Project2/MdiForm/FrmMainEditor.Designer.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.Designer.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmMainEditor.Designer.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.Designer.cs diff --git a/Source/Itrycn_Project2/MdiForm/FrmMainEditor.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.cs similarity index 99% rename from Source/Itrycn_Project2/MdiForm/FrmMainEditor.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.cs index 93b0696..1352cb6 100644 --- a/Source/Itrycn_Project2/MdiForm/FrmMainEditor.cs +++ b/Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using Public.Fun; using ryCommon; using System; using System.Drawing; @@ -271,7 +272,7 @@ namespace Itrycn_Project2 { if (EditorState.Length == 0) { - EditorState = Itrycn_Db.GetSetting("EditorState", ""); + EditorState =Itrycn_Db.GetSetting("EditorState", ""); } if (EditorState.Length == 0) { return 0; } JObject jo = EditorState.Length == 0 ? new JObject() : JObject.Parse(EditorState); diff --git a/Source/Itrycn_Project2/MdiForm/FrmMainEditor.resx b/Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.resx similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmMainEditor.resx rename to Source/Itrycn_Project2/OTools/MdiForm/FrmMainEditor.resx diff --git a/Source/Itrycn_Project2/MdiForm/FrmTitle.Designer.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.Designer.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmTitle.Designer.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.Designer.cs diff --git a/Source/Itrycn_Project2/MdiForm/FrmTitle.cs b/Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmTitle.cs rename to Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.cs diff --git a/Source/Itrycn_Project2/MdiForm/FrmTitle.resx b/Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.resx similarity index 100% rename from Source/Itrycn_Project2/MdiForm/FrmTitle.resx rename to Source/Itrycn_Project2/OTools/MdiForm/FrmTitle.resx diff --git a/Source/Itrycn_Project2/MdiForm/MyFileSystemInfo.cs b/Source/Itrycn_Project2/OTools/MdiForm/MyFileSystemInfo.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/MyFileSystemInfo.cs rename to Source/Itrycn_Project2/OTools/MdiForm/MyFileSystemInfo.cs diff --git a/Source/Itrycn_Project2/MdiForm/ShellUtilities.cs b/Source/Itrycn_Project2/OTools/MdiForm/ShellUtilities.cs similarity index 100% rename from Source/Itrycn_Project2/MdiForm/ShellUtilities.cs rename to Source/Itrycn_Project2/OTools/MdiForm/ShellUtilities.cs diff --git a/Source/Itrycn_Project2/OTools/RegSoft/frmLogin.cs b/Source/Itrycn_Project2/OTools/RegSoft/frmLogin.cs index 5cd3d6c..273c7b6 100644 --- a/Source/Itrycn_Project2/OTools/RegSoft/frmLogin.cs +++ b/Source/Itrycn_Project2/OTools/RegSoft/frmLogin.cs @@ -1,4 +1,5 @@ -using Itrycn_Project2; +using Config; +using Itrycn_Project2; using ryCommon; using RyHardWare; using System; diff --git a/Source/Itrycn_Project2/Properties/AssemblyInfo.cs b/Source/Itrycn_Project2/Properties/AssemblyInfo.cs index 9c82e17..e25a1bf 100644 --- a/Source/Itrycn_Project2/Properties/AssemblyInfo.cs +++ b/Source/Itrycn_Project2/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.2406.1101")] -[assembly: AssemblyFileVersion("1.0.2406.1101")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.2606.0401")] +[assembly: AssemblyFileVersion("1.0.2606.0401")] \ No newline at end of file diff --git a/Source/Itrycn_Project2/Properties/Resources.Designer.cs b/Source/Itrycn_Project2/Properties/Resources.Designer.cs index 10a64e3..43feadc 100644 --- a/Source/Itrycn_Project2/Properties/Resources.Designer.cs +++ b/Source/Itrycn_Project2/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace Itrycn_Project2.Properties { // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { diff --git a/Source/Itrycn_Project2/Properties/Settings.Designer.cs b/Source/Itrycn_Project2/Properties/Settings.Designer.cs index 0c0ef99..3b22769 100644 --- a/Source/Itrycn_Project2/Properties/Settings.Designer.cs +++ b/Source/Itrycn_Project2/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace Itrycn_Project2.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Source/Itrycn_Project2/Public/Class/LogInfo.cs b/Source/Itrycn_Project2/Public/Class/LogInfo.cs new file mode 100644 index 0000000..8ea9efb --- /dev/null +++ b/Source/Itrycn_Project2/Public/Class/LogInfo.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Public.Class +{ + /// + /// 日志信息 + /// + public class LogInfo + { + /// + /// 日志时间 + /// + public DateTime LogTime { get; set; } = DateTime.Now; + /// + /// 日志内容 + /// + public string LogText { get; set; } + /// + /// 日志Tag + /// + public string LogTag { get; set; } + /// + /// 日志对象(可选) + /// + public object LogObject { get; set; } = null; + /// + /// 日志文字颜色 + /// + public Color Color { get; set; } = Color.Black; + } +} diff --git a/Source/Itrycn_Project2/Config/Itrycn_Db.cs b/Source/Itrycn_Project2/Public/Fun/Itrycn_Db.cs similarity index 96% rename from Source/Itrycn_Project2/Config/Itrycn_Db.cs rename to Source/Itrycn_Project2/Public/Fun/Itrycn_Db.cs index dcbc713..f79506d 100644 --- a/Source/Itrycn_Project2/Config/Itrycn_Db.cs +++ b/Source/Itrycn_Project2/Public/Fun/Itrycn_Db.cs @@ -1,126 +1,126 @@ -using ryCommon; -using ryCommonDb; -using System; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Text; -using static ryCommonDb.DataProvider; - -namespace Itrycn_Project2 -{ - public static class Itrycn_Db - { - public static string SQLConnStr = "\\UserDb\\myDb.dat|"; - public static ryCommonDb.DataProvider.DataProviderType dataType = ryCommonDb.DataProvider.DataProviderType.SQLiteDataProvider; - public static IDbInterface CreateDataProvider() - { - return CreateDataProvider(dataType); - } - - public static IDbInterface CreateDataProvider(DataProviderType dataProviderType) - { - switch (dataProviderType) - { - //case DataProviderType.OdbcDataProvider: - // return new OdbcDataProvider(); - //case DataProviderType.OleDbDataProvider: - // return new OleDbDataProvider(); - //case DataProviderType.OracleDataProvider: - // return new OracleDataProvider(); - case DataProviderType.SQLiteDataProvider: - return new SQLiteDataProvider(); - default: - return null; - } - } - private static void CreateTable(ryCommonDb.DataProvider.DataProviderType dataType, string ConnStr) - { - IDbInterface db = CreateDataProvider(dataType); - if (db.ConnDb(ConnStr) == 1) - { - #region 表1 - RyQuickSQL mySQL = new RyQuickSQL("test1"); - //mySQL.AddField("", ""); - mySQL.AddField("addTime", DateTime.Now); - mySQL.AddField("editTime", DateTime.Now); - db.CreateDb(mySQL); - #endregion - // - #region 设置表 - mySQL.Clear(); - mySQL.TableName = "Setting"; - mySQL.AddField("name", ""); - mySQL.AddField("info", ""); - db.CreateDb(mySQL); - #endregion - } - db.Free(); - } - /// - /// 保存设置 - /// - /// 返回大于0的数,表示设置成功,否则表示失败 - public static int SetSetting(string name ,string info) - { - IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); - if (db.ConnDb(Itrycn_Db.SQLConnStr) == 1) - { - RyQuickSQL mySQL = new RyQuickSQL("Setting"); - mySQL.AddField("name", name); - mySQL.AddField("info", info); - var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where name='" + name + "'", mySQL); - if (result == 0) - { - result=db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); - } - return result; - } - db.Free(); - return -1000; - } - /// - ///获取设置 - /// - /// - public static string GetSetting(string name, string defValue) - { - DataProvider mydb = new DataProvider(); - IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); - var result = defValue; - if (db.ConnDb(Itrycn_Db.SQLConnStr) == 1) - { - DataSet ds = db.ReadData("select * from Setting where name='"+ name + "'"); - if (mydb.HaveData(ds)) - { - DataRow reader = ds.Tables[0].Rows[0]; - #region 读取信息 - result = reader["Name"].ToString(); - #endregion - } - } - db.Free(); - return result; - } - /// - /// 获取数据库版本 - /// - /// - public static int GetDbVer() - { - return GetSetting("dbVer","1").ToInt(); - } - /// - /// 设置数据库版本 - /// - /// - public static int SetDbVer(int DbVer) - { - return SetSetting("dbVer", DbVer.ToString()); - } - public static void CreateTable() - { - CreateTable(dataType, SQLConnStr); - } - } -} +using ryCommon; +using ryCommonDb; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using static ryCommonDb.DataProvider; + +namespace Public.Fun +{ + public static class Itrycn_Db + { + public static string SQLConnStr = "\\UserDb\\myDb.dat|"; + public static ryCommonDb.DataProvider.DataProviderType dataType = ryCommonDb.DataProvider.DataProviderType.SQLiteDataProvider; + public static IDbInterface CreateDataProvider() + { + return CreateDataProvider(dataType); + } + + public static IDbInterface CreateDataProvider(DataProviderType dataProviderType) + { + switch (dataProviderType) + { + //case DataProviderType.OdbcDataProvider: + // return new OdbcDataProvider(); + //case DataProviderType.OleDbDataProvider: + // return new OleDbDataProvider(); + //case DataProviderType.OracleDataProvider: + // return new OracleDataProvider(); + case DataProviderType.SQLiteDataProvider: + return new SQLiteDataProvider(); + default: + return null; + } + } + private static void CreateTable(ryCommonDb.DataProvider.DataProviderType dataType, string ConnStr) + { + IDbInterface db = CreateDataProvider(dataType); + if (db.ConnDb(ConnStr) == 1) + { + #region 表1 + RyQuickSQL mySQL = new RyQuickSQL("test1"); + //mySQL.AddField("", ""); + mySQL.AddField("addTime", DateTime.Now); + mySQL.AddField("editTime", DateTime.Now); + db.CreateDb(mySQL); + #endregion + // + #region 设置表 + mySQL.Clear(); + mySQL.TableName = "Setting"; + mySQL.AddField("name", ""); + mySQL.AddField("info", ""); + db.CreateDb(mySQL); + #endregion + } + db.Free(); + } + /// + /// 保存设置 + /// + /// 返回大于0的数,表示设置成功,否则表示失败 + public static int SetSetting(string name ,string info) + { + IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); + if (db.ConnDb(Itrycn_Db.SQLConnStr) == 1) + { + RyQuickSQL mySQL = new RyQuickSQL("Setting"); + mySQL.AddField("name", name); + mySQL.AddField("info", info); + var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where name='" + name + "'", mySQL); + if (result == 0) + { + result=db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); + } + return result; + } + db.Free(); + return -1000; + } + /// + ///获取设置 + /// + /// + public static string GetSetting(string name, string defValue) + { + DataProvider mydb = new DataProvider(); + IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); + var result = defValue; + if (db.ConnDb(Itrycn_Db.SQLConnStr) == 1) + { + DataSet ds = db.ReadData("select * from Setting where name='"+ name + "'"); + if (mydb.HaveData(ds)) + { + DataRow reader = ds.Tables[0].Rows[0]; + #region 读取信息 + result = reader["Name"].ToString(); + #endregion + } + } + db.Free(); + return result; + } + /// + /// 获取数据库版本 + /// + /// + public static int GetDbVer() + { + return GetSetting("dbVer","1").ToInt(); + } + /// + /// 设置数据库版本 + /// + /// + public static int SetDbVer(int DbVer) + { + return SetSetting("dbVer", DbVer.ToString()); + } + public static void CreateTable() + { + CreateTable(dataType, SQLConnStr); + } + } +} diff --git a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.Designer.cs b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.Designer.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/FrmMessageBox.Designer.cs rename to Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.Designer.cs index c5b99ca..bd67ab8 100644 --- a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.Designer.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.Designer.cs @@ -1,99 +1,99 @@ - -namespace RySkins -{ - partial class FrmMessageBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox)); - this.lblMsg = new ryControls.LabelTx(); - this.btnCancel = new ryControls.ButtonEx(); - this.btnYes = new ryControls.ButtonEx(); - this.SuspendLayout(); - // - // lblMsg - // - this.lblMsg.BackColor = System.Drawing.Color.Transparent; - this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lblMsg.LineDistance = 5; - this.lblMsg.Location = new System.Drawing.Point(11, 39); - this.lblMsg.Name = "lblMsg"; - this.lblMsg.Size = new System.Drawing.Size(339, 21); - this.lblMsg.TabIndex = 85; - this.lblMsg.Text = "提示"; - this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.btnCancel.Location = new System.Drawing.Point(312, 180); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(65, 27); - this.btnCancel.TabIndex = 84; - this.btnCancel.Text = "取消"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click); - // - // btnYes - // - this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnYes.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); - this.btnYes.Location = new System.Drawing.Point(241, 180); - this.btnYes.Name = "btnYes"; - this.btnYes.Size = new System.Drawing.Size(65, 27); - this.btnYes.TabIndex = 83; - this.btnYes.Text = "确定"; - this.btnYes.UseVisualStyleBackColor = true; - this.btnYes.Click += new System.EventHandler(this.BtnYes_Click); - // - // FrmMessageBox - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(382, 211); - this.Controls.Add(this.lblMsg); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnYes); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Location = new System.Drawing.Point(0, 0); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FrmMessageBox"; - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmMessageBox_FormClosing); - this.ResumeLayout(false); - - } - - #endregion - - public ryControls.ButtonEx btnCancel; - public ryControls.ButtonEx btnYes; - public ryControls.LabelTx lblMsg; - } + +namespace RySkins +{ + partial class FrmMessageBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox)); + this.lblMsg = new ryControls.LabelTx(); + this.btnCancel = new ryControls.ButtonEx(); + this.btnYes = new ryControls.ButtonEx(); + this.SuspendLayout(); + // + // lblMsg + // + this.lblMsg.BackColor = System.Drawing.Color.Transparent; + this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblMsg.LineDistance = 5; + this.lblMsg.Location = new System.Drawing.Point(11, 39); + this.lblMsg.Name = "lblMsg"; + this.lblMsg.Size = new System.Drawing.Size(339, 21); + this.lblMsg.TabIndex = 85; + this.lblMsg.Text = "提示"; + this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.btnCancel.Location = new System.Drawing.Point(312, 180); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(65, 27); + this.btnCancel.TabIndex = 84; + this.btnCancel.Text = "取消"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click); + // + // btnYes + // + this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnYes.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95))))); + this.btnYes.Location = new System.Drawing.Point(241, 180); + this.btnYes.Name = "btnYes"; + this.btnYes.Size = new System.Drawing.Size(65, 27); + this.btnYes.TabIndex = 83; + this.btnYes.Text = "确定"; + this.btnYes.UseVisualStyleBackColor = true; + this.btnYes.Click += new System.EventHandler(this.BtnYes_Click); + // + // FrmMessageBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(382, 211); + this.Controls.Add(this.lblMsg); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnYes); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Location = new System.Drawing.Point(0, 0); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FrmMessageBox"; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmMessageBox_FormClosing); + this.ResumeLayout(false); + + } + + #endregion + + public ryControls.ButtonEx btnCancel; + public ryControls.ButtonEx btnYes; + public ryControls.LabelTx lblMsg; + } } \ No newline at end of file diff --git a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.cs b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.cs similarity index 96% rename from Source/Itrycn_Project2/SkinForms/FrmMessageBox.cs rename to Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.cs index 0dd1ab7..c391092 100644 --- a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.cs @@ -1,69 +1,69 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace RySkins -{ - public partial class FrmMessageBox : SKinForm - { - public FrmMessageBox() - { - InitializeComponent(); - } - private bool ProcUse = false; - public MessageBoxButtons ResultDg { get; set; } = MessageBoxButtons.OKCancel; - private void BtnYes_Click(object sender, EventArgs e) - { - ProcUse = true; - if (this.Modal) - { - switch (ResultDg) - { - case MessageBoxButtons.YesNo: - this.DialogResult = DialogResult.Yes; - break; - default: - this.DialogResult = DialogResult.OK; - break; - } - } - else - { - Close(); - } - } - - private void BtnCancel_Click(object sender, EventArgs e) - { - ProcUse = true; - switch (ResultDg) - { - case MessageBoxButtons.YesNo: - this.DialogResult = DialogResult.No; - break; - default: - this.DialogResult = DialogResult.Cancel; - break; - } - } - - private void LblMsg_TextChanged(object sender, EventArgs e) - { - lblMsg.UpdateInfo(); - lblMsg.Refresh(); - } - - private void FrmMessageBox_FormClosing(object sender, FormClosingEventArgs e) - { - if (e.CloseReason == CloseReason.UserClosing && !ProcUse) - { - this.DialogResult = DialogResult.Cancel; - } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace RySkins +{ + public partial class FrmMessageBox : SKinForm + { + public FrmMessageBox() + { + InitializeComponent(); + } + private bool ProcUse = false; + public MessageBoxButtons ResultDg { get; set; } = MessageBoxButtons.OKCancel; + private void BtnYes_Click(object sender, EventArgs e) + { + ProcUse = true; + if (this.Modal) + { + switch (ResultDg) + { + case MessageBoxButtons.YesNo: + this.DialogResult = DialogResult.Yes; + break; + default: + this.DialogResult = DialogResult.OK; + break; + } + } + else + { + Close(); + } + } + + private void BtnCancel_Click(object sender, EventArgs e) + { + ProcUse = true; + switch (ResultDg) + { + case MessageBoxButtons.YesNo: + this.DialogResult = DialogResult.No; + break; + default: + this.DialogResult = DialogResult.Cancel; + break; + } + } + + private void LblMsg_TextChanged(object sender, EventArgs e) + { + lblMsg.UpdateInfo(); + lblMsg.Refresh(); + } + + private void FrmMessageBox_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing && !ProcUse) + { + this.DialogResult = DialogResult.Cancel; + } + } + } +} diff --git a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.resx b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.resx similarity index 98% rename from Source/Itrycn_Project2/SkinForms/FrmMessageBox.resx rename to Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.resx index 35a15c9..96b61ab 100644 --- a/Source/Itrycn_Project2/SkinForms/FrmMessageBox.resx +++ b/Source/Itrycn_Project2/Public/SkinForms/FrmMessageBox.resx @@ -1,1324 +1,1324 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAIAgIAAAAEAIAAoCAEAJgAAACAgAAABACAAqBAAAE4IAQAoAAAAgAAAAAABAAABACAAAAAAAAAI - AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///wT///8K////EP///xz///8o////Lf///yv///8o////Hv///xP///8I////Bf// - /wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Dv///x7///8y////Vv// - /3r///+J////gv///3r///9c////Of///xn///8P////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8X////Mv///1P///+Q////zP///+T////Y////zP///5r///9f////Kf// - /xn///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yD///9G////b/// - /6j////g////+P///+/////m////wP///5P///9p////Uf///zj///8m////G////xD///8K////BQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////Kv///1r///+K////uP///+b////7////9/////P////h////y/// - /7P///+T////cv///1X///89////Jf///xf///8Lp6enAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8y////bP// - /6L////H////7P////7////8////+/////r////6////9f///8////+p////hf///2P///9B////LP// - /xz///8N////Df///wz///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// - /wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// - /wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// - /wv///8L////C////wv///8L////C////wr///8J////B////wb///8E////AgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zL///9t////o////8f////s////9////+n////b////4v// - /+/////3////4P///8r///+0////oP///4v///9+////df///2v///9r////a////2r///9q////av// - /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av// - /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av// - /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////af///2j///9j////Xf// - /1b///9H////N////yj///8X////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// - /23///+k////yP///+z////x////1v///7v////K////4/////n////y////6////+T////c////1f// - /9D////N////yv///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// - /8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// - /8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// - /8n////J////yf///8j////H////xf///7z///+w////o////4b///9p////S////yz///8MAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///+r////C////mf// - /6f////B////2f///+T////u////9f////j////7/////f////7///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////v////z////6////8P// - /+P////W////t////5n///92////TP///yL///8O////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zP///9u////pP///8j////s////4////6z///91////df///4H///+Q////rf///8r////f////6v// - //T////5/////P////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////+/////f////z////3////7////+j////X////xv///6v///97////S/// - /yz///8W////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////c////l/// - /1H///9D////Qf///0b///92////pv///8r////b////7f////X////6//////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////7////+/////v// - //3////7////+v////f////z////4P///6r///91////Sv///yb///8CAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8z////bv///6T////I////7P///9r///+R////SP///zL///8p////Jf///0v///9x////jf// - /5v///+q////sP///7T///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// - /7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// - /7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// - /7f///+3////t////7f///+3////uP///7j///+5////v////8f////Q////4f////P////x////xv// - /5v///9q////Nv///wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// - /5H///9I////Lf///x3///8S////JP///zf///9E////S////1L///9V////V////1j///9Y////WP// - /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP// - /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP// - /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Z////W/// - /13///9r////fv///5H///+6////4/////b////b////wP///4v///9H////BAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgF/f38D3NzcBv///xv///84////VP///5P////S////+v// - /+7////j////qv///1j///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// - /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5O - TgKIiIgE////Ef///yL///80////ev///8D////v////7f///+v///+1////Xv///whBQUEBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NAH///8G////Df///xT///9g////rf// - /+T////s////9P///7////9l////Cn9/fwM2NjYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// - /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0////+f////2v///+r////5////xf///2r///8O////Bf// - /wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////TP// - /5n////U////5v////j////G////bP///xL///8I////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// - /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9K////lP///83////i////9////8f///9v////F/// - /wv///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// - /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// - /xj///8M////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// - /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// - /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// - /3D///8Y////DP///wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// - /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////B/// - /wv///8M////Dv///w7///8O////Dv///w7///8O////Dv///w7///8O////Dv///w7///8O////Dv// - /w7///8O////Cf///wX///8C////AQAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// - /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A////wj///8L////CP// - /wX///8D////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// - /0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////8g////L////zX///87////Pv///z7///8+////Pv// - /z7///8+////Pv///z7///8+////Pv///z7///89////PP///zr///8p////F////wr///8F////AQAA - AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8Q////Iv///y////8j////Fv///w3///8H////AQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Gv// - /zn///9T////Xv///2j///9u////bv///27///9u////bv///27///9u////bv///27///9u////bv// - /2z///9r////Z////0j///8p////Ev///wr///8CAAAAAAAAAAAAAAAA////Sf///5L////L////4f// - //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz///89////U/// - /z3///8o////F////wz///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// - /5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8o////Vv///33///+K////l////53///+d////nf// - /53///+d////nf///53///+d////nf///53///+d////nP///5v///+X////bf///0P///8j////E/// - /wQAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA - AAAAAAAA////Av///wf///8L////Nf///2P///+E////Z////0r///8x////Gv///wQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zf///92////q////7n////G////zP///8z////M////zP///8z////M////zP///8z////M////zP// - /8z////M////y////8f///+U////Yf///zj///8g////BwAAAAAAAAAAAAAAAP///0n///+S////y/// - /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8G////Ev///x////9V////kf// - /7z///+a////d////1P///8t////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// - /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Rv///5b////Z////5/////X////8/////P// - //z////8/////P////z////8/////P////z////8/////P////z////7////+P///7z///+A////Tv// - /yz///8KAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAA - AAAAAAAAAAAAAP///wv///8e////Mv///3X///+/////9P///8z///+l////dv///0D///8KAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8x////av///5r///+o////tf///7z///+8////vP///7z///+8////vP///7z///+8////vP// - /7z///+8////u////7r///+2////h////1n///80////Hf///wcAAAAAAAAAAAAAAAD///9J////kv// - /8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////C////yD///81////eP// - /8L////3////0f///6r///97////Qv///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// - /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xr///85////VP///2H///9u////df// - /3X///91////df///3X///91////df///3X///91////df///3X///9z////cP///2z///9N////Lv// - /xb///8N////AwAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP// - /wUAAAAAAAAAAAAAAAD///8M////If///zf///96////w/////f////S////rf///33///9E////CgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////CP///xL///8d////KP///zT///86////Ov///zr///86////Ov///zr///86////Ov// - /zr///86////Ov///zf///80////L////x3///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf// - /5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of// - /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// - /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F////C////xH///8Y////Hv// - /yL///8i////Iv///yL///8i////Iv///yL///8i////Iv///yL///8i////IP///x7///8c////Ef// - /wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP// - /wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// - /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///wH///8D////Bf///wf///8J////Cv///wr///8K////Cv///wr///8K////Cv// - /wr///8K////Cv///wr///8J////Cf///wj///8F////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv// - /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// - /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// - /xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// - /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// - /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP// - /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// - /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// - /3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// - /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// - /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP// - /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// - /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// - /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// - /0j///8p////EwAAAAAAAAAAAAAAAP///wL///8I////Dv///xD///8R////Ef///xH///8R////Ef// - /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef// - /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef// - /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8M////CP///wT///8CAAAAAAAA - AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA - AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAA////EP// - /zb///9b////aP///2z///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// - /3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// - /3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// - /3D///9v////bf///1D///8z////HP///xD///8DAAAAAAAAAAAAAAAA////Sf///5L////L////4f// - //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// - /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// - /5H///9I////Kf///xMAAAAAAAAAAAAAAAD///8e////Y////6n////A////yP///8/////P////z/// - /8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z/// - /8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z/// - /8/////P////z////8/////P////z////8/////P////zv///83////I////k////17///81////Hv// - /wcAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA - AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAP// - /yL///9y////wv///97////p////8/////P////z////8/////P////z////8/////P////z////8/// - //P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/// - //P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/// - //P////x////7////+r///+r////bP///zv///8i////CAAAAAAAAAAAAAAAAP///0n///+S////y/// - /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP// - //j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// - /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAA////Hv///2L///+n////wv///8/////b////2/// - /9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2/// - /9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2/// - /9v////b////2////9v////b////2////9v////b////2////9n////X////0P///5f///9d////Mf// - /xv///8GAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAA - AAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA - AAD///8Z////U////43///+m////tv///8T////E////xP///8T////E////xP///8T////E////xP// - /8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP// - /8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP// - /8T////E////wf///77///+3////gv///03///8m////Ff///wUAAAAAAAAAAAAAAAD///9J////kv// - /8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e/// - /8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// - /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAP///xH///83////Xv///3D///97////hf// - /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf// - /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf// - /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+E////gf///3z///9Y////NP// - /xn///8O////AwAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP// - /wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA - AAAAAAAA////B////xr///8s////NP///zn///8+////Pv///z7///8+////Pv///z7///8+////Pv// - /z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv// - /z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv// - /z7///8+////Pv///z3///88////Ov///yn///8Y////C////wb///8BAAAAAAAAAAAAAAAA////Sf// - /5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of// - /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// - /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP// - /wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// - /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv// - /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// - /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// - /xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// - /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// - /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP// - /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// - /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// - /3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// - /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// - /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP// - /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// - /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// - /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// - /0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA - AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f// - //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// - /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// - /5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA - AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y/// - /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP// - //j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bf///6P////I////7P// - /9r///+S////Sv///yr///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////Sf///5P////M////4v////f////H////b////xf///8L////BAAA - AAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///zL///9s////of///8f////s////2////5X///9P////Lv///xUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9L////lv// - /9D////j////9////8f///9t////E////wn///8EAAAAAAAAAAAAAAAA////DP///yL///85////e/// - /8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Mf///2r///+f////xf// - /+v////d////mf///1X///8y////FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0z///+Z////0////+X////4////xv///2v///8Q////B/// - /wMAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8t////YP///5L///+9////6f///+L///+p////cP///0f///8iPj4+ASUl - JQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///wb///8K////WP// - /6X////e////6f////X////B////Z////w3///8E////AgAAAAAAAAAAAAAAAP///wz///8i////Of// - /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yb///9S////gP// - /7L////l////6v///8D///+W////ZP///zGYmJgEXV1dAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8G////EP///xn///9o////tv///+3////v////8f///7r///9h////Cf// - /wL///8BAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// - /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////IP///0X///9t////p////+H////x////1v///7z///+B////QP// - /wb///8E////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr///8Z////Kf// - /3j////H////+/////T////s////s////1z///8FAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////Iv// - /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8U////LP// - /0z///+O////0P///+v////f////1P///67///+D////XP///1T///9M////R////0f///9H////R/// - /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// - /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// - /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// - /0f///9H////R////0j///9J////Vf///2f///94////qv///9z////3////4P///8r///+V////TP// - /wQAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// - /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wn///8T////Kv///3T///+/////5f///+j////r////2/// - /8b///+y////pP///5b///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// - /47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// - /47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// - /47///+O////jv///47///+O////jv///47///+O////jv///47///+P////kf///5P///+h////tP// - /8f////c////8P////P////N////qP///3b///89////AwAAAAAAAAAAAAAAAAAAAAAAAAAA////DP// - /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASUlJAZ2d - nQL///8Q////WP///6D////M////3v////D////y////8P///+z////e////z////8f////H////x/// - /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// - /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// - /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// - /8f////H////x////8j////K////zP///9j////o////+P////T////w////3////7D///+B////Vv// - /yz///8CAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// - /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAf///wr///83////Y////4r///+q////y/// - /9j////i////6v///+X////h////3v///97////e////3v///97////e////3v///97////e////3v// - /97////e////3v///97////e////3v///97////e////3v///97////e////3v///97////e////3v// - /97////e////3v///97////e////3v///97////e////3v///97////e////3v///97////e////3v// - /97////e////3v///97////e////3v///97////e////3v///97////e////3v///9/////f////4f// - /+T////n////1f///8P///+p////ff///1H///8y////Gf///wEAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////A////xX///8n////R////3b///+l////v////9T////o////7f////P////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////1////9P////P////r////4P///9X///+1////lf///3L///9K////If// - /w7///8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// - /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////B////w3///8k////TP// - /3T///+L////n////7H///+4////v////8P////D////w////8P////D////w////8P////D////w/// - /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w/// - /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w/// - /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////B////wP// - /7f///+r////nv///4L///9l////SP///yr///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8D////Bv///xL///8n////O////0f///9S////W////1////9i////ZP// - /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// - /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// - /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// - /2T///9k////ZP///2T///9k////ZP///2P///9j////Xv///1j///9R////Q////zT///8l////Ff// - /wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// - /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af// - /wL///8D////BP///wT///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// - /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// - /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// - /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// - /wX///8F////Bf///wT///8D////A////wL///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8P////Kv///0b///+E////yP// - //f////Q////qf///3r///9C////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///xL///8z////VP///47////M////9////83///+k////dP///z////8JAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Fv///z7///9m////m/// - /9L////2////yf///5v///9s////Ov///wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8c////T////4L///+v////2/////X///+/////iv///1v///8x////BwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///9h////n/// - /8P////k////8////7b///95////Sv///yj///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////B/// - /wv///8M////DP///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// - /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// - /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// - /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// - /w////8R////FP///xz///8k////SP///4L///+8////1P///+j////r////qP///2T///81////Hf// - /wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///8U////H////yH///8j////Jf///yX///8l////Jf// - /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// - /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// - /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// - /yX///8l////Jf///yX///8l////Jf///yX///8l////Kv///zD///86////T////2X///+G////sP// - /9r////k////6f///9////+V////S////x////8Q////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Dv// - /yH///8z////N////zr///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// - /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// - /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// - /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// - /z3///9G////T////1////+D////pv///8T////e////+P////P////p////0////4L///8y////CP// - /wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////Tf///3b///95////fP///37///9+////fv// - /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// - /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// - /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// - /37///9+////fv///37///9+////fv///37///9+////fv///4T///+L////lv///6/////I////2/// - /+j////0////3v///8L///+g////Yv///yOLi4sDS0tLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18BoaGhAf// - /zf///99////wP///8L////E////xf///8X////F////xf///8X////F////xf///8X////F////xf// - /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// - /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// - /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// - /8X////F////yP///8v////Q////2////+b////r////7P///+z////E////lv///2j///8/////Fj4+ - PgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5+fgHX19cC////Rf///57////x////8/////X////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// - //b////2////9v////b////2////9v////b////2////9v////b////1////9f////T////z////8v// - /+z////h////1v///6P///9q////N////yH///8LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGB - gQH///80////eP///7n///++////w////8b////G////xv///8b////G////xv///8b////G////xv// - /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// - /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// - /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// - /8b////G////xv///8T////B////vv///7j///+y////pv///5b///+F////ZP///0D///8h////E/// - /wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yT///9T////gP///4n///+S////l/// - /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// - /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// - /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// - /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////k////47///+H////fP// - /3L///9g////Sv///zP///8l////F////wv///8G////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Fv///zX///9R////Wv///2L///9o////aP///2j///9o////aP///2j///9o////aP// - /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// - /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// - /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// - /2j///9o////aP///2j///9j////Xv///1j///9N////Qv///zL///8d////CYuLiwQ+Pj4BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////HP///yz///8x////Nf// - /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// - /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// - /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// - /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zb///8z////MP// - /yr///8k////G////xD///8ES0tLAiIiIgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///wH///8E////B////wf///8I////CP///wj///8I////CP///wj///8I////CP// - /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// - /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// - /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// - /wj///8I////CP///wj///8I////CP///wj///8H////Bv///wX///8E////AgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////4AD//////////////////+AA/////////////////// - gAP//////////////////4AAH/////////////////+AAA//////////////////gAAAAAAAAAAAH/// - /////4AAAAAAAAAAAA////////+AAAAAAAAAAAAP////////gAAAAAAAAAAAA////////4AAAAAAAAAA - AAH///////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+AH/// - /////4AB////////gB/////////AAP///////4Af////////4AB///////+AH/////////4Af/////// - gB/////////+AH///////4Af/////////gB///////+AH/////////4Af///////gB/////////+AH// - /////4Af/////////gB///////+AH/////////4Af///////gB/////////+AH///////4Af////8AAA - HgB+A/////+AH/////AAAA4AfgH/////gB/////wAAAOAH4B/////4Af////8AAADgBwAf////+AH/// - //AAAA4AcAH/////gB/////wAAAOAHAB/////4Af////8AAADgBwAf////+AH/////AAAA4AcAH///// - gB/////wAAB+AHAB/////4Af////8AAAfgBwAf////+AH/////AAAH4AcAH/////gB/////////+AHAB - /////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af//////// - /gBwAf////+AHAAAAAAAAB4AcAH/////gBwAAAAAAAAOAHAB/////4AcAAAAAAAADgBwAf////+AHAAA - AAAAAA4AcAH/////gBwAAAAAAAAOAHAB/////4AcAAAAAAAADgBwAf////+AHAAAAAAAAA4AcAH///// - gBwAAAAAAAAOAHAB/////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB - /////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af//////// - /gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af/////////gBwAf////+AH/// - //////4AcAH/////gB/////////+AHAB/////4Af/////////gBwAf////+AH/////////4AcAH///// - gAf////////wAHAB/////4AH////////8ABwAf////+AA/////////AB8AH/////gAAAAAAAAAAAAfAB - /////4AAAAAAAAAAAAHwAf////+AAAAAAAAAAAAB8AH/////wAAAAAAAAAAAAfAB/////+AAAAAAAAAA - AAPwAf/////gAAAAAAAAAAAP8AH/////8AAAAAAAAAAAD/AB//////wAAAAAAAAAAB/wAf////////// - ////////8AH///////////////////AB///////////////////wAf//////////////////8AH///// - //////////////AB////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAD - ////////gAAAAAAAAAAAA////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAP////////AAAAAAAA - AAAAD////////4AAAAAAAAAAAA////////+AAAAAAAAAAAB/////////gAAAAAAAAAAAf////////4AA - AAAAAAAAA/////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////KAAAACAAAABAAAAAAQAgAAAA - AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8i////y////7////9G////CgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////1P///+T///+0////qv// - /6r///+q////qv///6r///+q////qv///6r///+q////qv///6r///+o////k////zAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8x////Xf// - /6P///+q////qv///6r///+q////qv///6r///+q////qv///6r///+q////qv///6r///++////2v// - /zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///80////3v// - /ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /xT////q////VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///9j///9hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////NP///97///8nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////2P///2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///80////3v///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /1r///+q////qv///6r///+o////HwAAAAD////Y////YQAAAAD///8M////fv///xgAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Pf///3////9/////f////3v///8VAAAAAP///9j///9hAAAAAP///yb////d////MwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8nAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////2P///2EAAAAA////KP// - /97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///80////3v///ycAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////Y////YQAA - AAD///8o////3v///zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////JwAA - AAD////V////6v///+r////q////6v///+r////q////6v///+r////q////6v///+b///8rAAAAAP// - /9j///9hAAAAAP///yj////e////NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP// - /97///8nAAAAAP///zb///9A////QP///0D///9A////QP///0D///9A////QP///0D///9A////Pf// - /wkAAAAA////2P///2EAAAAA////KP///97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///80////3v///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD////Y////YQAAAAD///8o////3v///zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP///zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///9j///9hAAAAAP///yj////e////NAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////2v///18AAAAA////KP///97///80AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8m////0P///2P///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL////v////UgAAAAD///8o////3v// - /zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9m////5P///9z////V////1f// - /9X////V////1f///9X////V////1f///9X////V////1f///9X////W////5v///6X///8cAAAAAP// - /yj////e////NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///89////Uv// - /1X///9V////Vf///1X///9V////Vf///1X///9V////Vf///1X///9V////Vf///1T///9J////FwAA - AAAAAAAA////KP///97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///9U////0f///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD///8M////KP///yr///8q////Kv///yr///8q////Kv///yr///8q////Kv// - /yr///8q////Kv///yr///8q////Uv///8P///+n////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0T////Q////1P///9T////U////1P///9T////U////1P// - /9T////U////1P///9T////U////1P///9T////L////qP///xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////yf///8q////Kv///yr///8q////Kv// - /yr///8q////Kv///yr///8q////Kv///yr///8q////Kv///yH///8KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////// - ///wf///8AAB//AAAP/x//j/8f/8//H//P/x/gSP8f4Ej/H//I/x//yP8QAEj/EABI/x//yP8f/8j/H/ - /I/w//iP+AAAj/gAAY////+P/wAAD/8AAB//AAA//////////////////////w== - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAgIAAAAEAIAAoCAEAJgAAACAgAAABACAAqBAAAE4IAQAoAAAAgAAAAAABAAABACAAAAAAAAAI + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wT///8K////EP///xz///8o////Lf///yv///8o////Hv///xP///8I////Bf// + /wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Dv///x7///8y////Vv// + /3r///+J////gv///3r///9c////Of///xn///8P////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8X////Mv///1P///+Q////zP///+T////Y////zP///5r///9f////Kf// + /xn///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yD///9G////b/// + /6j////g////+P///+/////m////wP///5P///9p////Uf///zj///8m////G////xD///8K////BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Kv///1r///+K////uP///+b////7////9/////P////h////y/// + /7P///+T////cv///1X///89////Jf///xf///8Lp6enAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8y////bP// + /6L////H////7P////7////8////+/////r////6////9f///8////+p////hf///2P///9B////LP// + /xz///8N////Df///wz///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// + /wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// + /wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C////wv///8L////C/// + /wv///8L////C////wv///8L////C////wr///8J////B////wb///8E////AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zL///9t////o////8f////s////9////+n////b////4v// + /+/////3////4P///8r///+0////oP///4v///9+////df///2v///9r////a////2r///9q////av// + /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av// + /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////av// + /2r///9q////av///2r///9q////av///2r///9q////av///2r///9q////af///2j///9j////Xf// + /1b///9H////N////yj///8X////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// + /23///+k////yP///+z////x////1v///7v////K////4/////n////y////6////+T////c////1f// + /9D////N////yv///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// + /8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// + /8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf///8n////J////yf// + /8n////J////yf///8j////H////xf///7z///+w////o////4b///9p////S////yz///8MAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///+r////C////mf// + /6f////B////2f///+T////u////9f////j////7/////f////7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v////z////6////8P// + /+P////W////t////5n///92////TP///yL///8O////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zP///9u////pP///8j////s////4////6z///91////df///4H///+Q////rf///8r////f////6v// + //T////5/////P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////+/////f////z////3////7////+j////X////xv///6v///97////S/// + /yz///8W////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////c////l/// + /1H///9D////Qf///0b///92////pv///8r////b////7f////X////6//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////7////+/////v// + //3////7////+v////f////z////4P///6r///91////Sv///yb///8CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8z////bv///6T////I////7P///9r///+R////SP///zL///8p////Jf///0v///9x////jf// + /5v///+q////sP///7T///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// + /7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// + /7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t////7f///+3////t/// + /7f///+3////t////7f///+3////uP///7j///+5////v////8f////Q////4f////P////x////xv// + /5v///9q////Nv///wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// + /5H///9I////Lf///x3///8S////JP///zf///9E////S////1L///9V////V////1j///9Y////WP// + /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP// + /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP// + /1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Y////WP///1j///9Z////W/// + /13///9r////fv///5H///+6////4/////b////b////wP///4v///9H////BAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgF/f38D3NzcBv///xv///84////VP///5P////S////+v// + /+7////j////qv///1j///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// + /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5O + TgKIiIgE////Ef///yL///80////ev///8D////v////7f///+v///+1////Xv///whBQUEBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NAH///8G////Df///xT///9g////rf// + /+T////s////9P///7////9l////Cn9/fwM2NjYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// + /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0////+f////2v///+r////5////xf///2r///8O////Bf// + /wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////TP// + /5n////U////5v////j////G////bP///xL///8I////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// + /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9K////lP///83////i////9////8f///9v////F/// + /wv///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// + /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// + /xj///8M////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// + /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// + /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// + /3D///8Y////DP///wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// + /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////B/// + /wv///8M////Dv///w7///8O////Dv///w7///8O////Dv///w7///8O////Dv///w7///8O////Dv// + /w7///8O////Cf///wX///8C////AQAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// + /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A////wj///8L////CP// + /wX///8D////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// + /0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////8g////L////zX///87////Pv///z7///8+////Pv// + /z7///8+////Pv///z7///8+////Pv///z7///89////PP///zr///8p////F////wr///8F////AQAA + AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Q////Iv///y////8j////Fv///w3///8H////AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Gv// + /zn///9T////Xv///2j///9u////bv///27///9u////bv///27///9u////bv///27///9u////bv// + /2z///9r////Z////0j///8p////Ev///wr///8CAAAAAAAAAAAAAAAA////Sf///5L////L////4f// + //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz///89////U/// + /z3///8o////F////wz///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// + /5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8o////Vv///33///+K////l////53///+d////nf// + /53///+d////nf///53///+d////nf///53///+d////nP///5v///+X////bf///0P///8j////E/// + /wQAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA + AAAAAAAA////Av///wf///8L////Nf///2P///+E////Z////0r///8x////Gv///wQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zf///92////q////7n////G////zP///8z////M////zP///8z////M////zP///8z////M////zP// + /8z////M////y////8f///+U////Yf///zj///8g////BwAAAAAAAAAAAAAAAP///0n///+S////y/// + /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8G////Ev///x////9V////kf// + /7z///+a////d////1P///8t////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// + /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Rv///5b////Z////5/////X////8/////P// + //z////8/////P////z////8/////P////z////8/////P////z////7////+P///7z///+A////Tv// + /yz///8KAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAA + AAAAAAAAAAAAAP///wv///8e////Mv///3X///+/////9P///8z///+l////dv///0D///8KAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8x////av///5r///+o////tf///7z///+8////vP///7z///+8////vP///7z///+8////vP// + /7z///+8////u////7r///+2////h////1n///80////Hf///wcAAAAAAAAAAAAAAAD///9J////kv// + /8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////C////yD///81////eP// + /8L////3////0f///6r///97////Qv///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// + /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xr///85////VP///2H///9u////df// + /3X///91////df///3X///91////df///3X///91////df///3X///9z////cP///2z///9N////Lv// + /xb///8N////AwAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP// + /wUAAAAAAAAAAAAAAAD///8M////If///zf///96////w/////f////S////rf///33///9E////CgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////CP///xL///8d////KP///zT///86////Ov///zr///86////Ov///zr///86////Ov// + /zr///86////Ov///zf///80////L////x3///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf// + /5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of// + /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// + /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F////C////xH///8Y////Hv// + /yL///8i////Iv///yL///8i////Iv///yL///8i////Iv///yL///8i////IP///x7///8c////Ef// + /wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP// + /wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// + /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wH///8D////Bf///wf///8J////Cv///wr///8K////Cv///wr///8K////Cv// + /wr///8K////Cv///wr///8J////Cf///wj///8F////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv// + /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// + /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// + /xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// + /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// + /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP// + /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// + /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// + /3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// + /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// + /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP// + /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// + /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// + /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// + /0j///8p////EwAAAAAAAAAAAAAAAP///wL///8I////Dv///xD///8R////Ef///xH///8R////Ef// + /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef// + /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8R////Ef// + /xH///8R////Ef///xH///8R////Ef///xH///8R////Ef///xH///8M////CP///wT///8CAAAAAAAA + AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA + AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAA////EP// + /zb///9b////aP///2z///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// + /3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// + /3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP///3D///9w////cP// + /3D///9v////bf///1D///8z////HP///xD///8DAAAAAAAAAAAAAAAA////Sf///5L////L////4f// + //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// + /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// + /5H///9I////Kf///xMAAAAAAAAAAAAAAAD///8e////Y////6n////A////yP///8/////P////z/// + /8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z/// + /8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z/// + /8/////P////z////8/////P////z////8/////P////zv///83////I////k////17///81////Hv// + /wcAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA + AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAP// + /yL///9y////wv///97////p////8/////P////z////8/////P////z////8/////P////z////8/// + //P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/// + //P////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z////8/// + //P////x////7////+r///+r////bP///zv///8i////CAAAAAAAAAAAAAAAAP///0n///+S////y/// + /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP// + //j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P// + /9r///+R////SP///yn///8TAAAAAAAAAAAAAAAA////Hv///2L///+n////wv///8/////b////2/// + /9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2/// + /9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2/// + /9v////b////2////9v////b////2////9v////b////2////9n////X////0P///5f///9d////Mf// + /xv///8GAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAA + AAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAA + AAD///8Z////U////43///+m////tv///8T////E////xP///8T////E////xP///8T////E////xP// + /8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP// + /8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP///8T////E////xP// + /8T////E////wf///77///+3////gv///03///8m////Ff///wUAAAAAAAAAAAAAAAD///9J////kv// + /8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e/// + /8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP// + /+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAP///xH///83////Xv///3D///97////hf// + /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf// + /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+F////hf// + /4X///+F////hf///4X///+F////hf///4X///+F////hf///4X///+E////gf///3z///9Y////NP// + /xn///8O////AwAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP// + /wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAA + AAAAAAAA////B////xr///8s////NP///zn///8+////Pv///z7///8+////Pv///z7///8+////Pv// + /z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv// + /z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv///z7///8+////Pv// + /z7///8+////Pv///z3///88////Ov///yn///8Y////C////wb///8BAAAAAAAAAAAAAAAA////Sf// + /5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of// + /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP// + /8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP// + /wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// + /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv// + /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv// + /6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f////b////I////cP// + /xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// + /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v///5H///9I////Kf// + /xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP// + /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// + /27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y////+H////2////yP// + /3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// + /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bv///6T////I////7P///9r///+R////SP// + /yn///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Sf///5L////L////4f////b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP// + /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zP///9u////pP///8j////s////2v///5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v// + /8j///9w////GP///wz///8FAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// + /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M////27///+k////yP///+z////a////kf// + /0j///8p////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///0n///+S////y////+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAA + AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8z////bv///6T////I////7P///9r///+R////SP///yn///8TAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf///5L////L////4f// + //b////I////cP///xj///8M////BQAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// + /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP///9u////pP///8j////s////2v// + /5H///9I////Kf///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9J////kv///8v////h////9v///8j///9w////GP///wz///8FAAAAAAAA + AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////M////27///+k////yP///+z////a////kf///0j///8p////EwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0n///+S////y/// + /+H////2////yP///3D///8Y////DP///wUAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP// + //j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////bf///6P////I////7P// + /9r///+S////Sv///yr///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Sf///5P////M////4v////f////H////b////xf///8L////BAAA + AAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zL///9s////of///8f////s////2////5X///9P////Lv///xUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9L////lv// + /9D////j////9////8f///9t////E////wn///8EAAAAAAAAAAAAAAAA////DP///yL///85////e/// + /8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Mf///2r///+f////xf// + /+v////d////mf///1X///8y////FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0z///+Z////0////+X////4////xv///2v///8Q////B/// + /wMAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8t////YP///5L///+9////6f///+L///+p////cP///0f///8iPj4+ASUl + JQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///wb///8K////WP// + /6X////e////6f////X////B////Z////w3///8E////AgAAAAAAAAAAAAAAAP///wz///8i////Of// + /3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yb///9S////gP// + /7L////l////6v///8D///+W////ZP///zGYmJgEXV1dAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8G////EP///xn///9o////tv///+3////v////8f///7r///9h////Cf// + /wL///8BAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf// + /woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////IP///0X///9t////p////+H////x////1v///7z///+B////QP// + /wb///8E////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr///8Z////Kf// + /3j////H////+/////T////s////s////1z///8FAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////Iv// + /zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8U////LP// + /0z///+O////0P///+v////f////1P///67///+D////XP///1T///9M////R////0f///9H////R/// + /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// + /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// + /0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R////0f///9H////R/// + /0f///9H////R////0j///9J////Vf///2f///94////qv///9z////3////4P///8r///+V////TP// + /wQAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P///9P///+v////f/// + /0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wn///8T////Kv///3T///+/////5f///+j////r////2/// + /8b///+y////pP///5b///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// + /47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// + /47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv///47///+O////jv// + /47///+O////jv///47///+O////jv///47///+O////jv///47///+P////kf///5P///+h////tP// + /8f////c////8P////P////N////qP///3b///89////AwAAAAAAAAAAAAAAAAAAAAAAAAAA////DP// + /yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASUlJAZ2d + nQL///8Q////WP///6D////M////3v////D////y////8P///+z////e////z////8f////H////x/// + /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// + /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// + /8f////H////x////8f////H////x////8f////H////x////8f////H////x////8f////H////x/// + /8f////H////x////8j////K////zP///9j////o////+P////T////w////3////7D///+B////Vv// + /yz///8CAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////Iv///zn///97////xP////j////T////r/// + /3////9F////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAf///wr///83////Y////4r///+q////y/// + /9j////i////6v///+X////h////3v///97////e////3v///97////e////3v///97////e////3v// + /97////e////3v///97////e////3v///97////e////3v///97////e////3v///97////e////3v// + /97////e////3v///97////e////3v///97////e////3v///97////e////3v///97////e////3v// + /97////e////3v///97////e////3v///97////e////3v///97////e////3v///9/////f////4f// + /+T////n////1f///8P///+p////ff///1H///8y////Gf///wEAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wz///8i////Of///3v////E////+P///9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////A////xX///8n////R////3b///+l////v////9T////o////7f////P////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////1////9P////P////r////4P///9X///+1////lf///3L///9K////If// + /w7///8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DP///yL///85////e////8T////4////0/// + /6////9/////Rf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////B////w3///8k////TP// + /3T///+L////n////7H///+4////v////8P////D////w////8P////D////w////8P////D////w/// + /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w/// + /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w/// + /8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////B////wP// + /7f///+r////nv///4L///9l////SP///yr///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8M////Iv///zn///97////xP////j////T////r////3////9F////CgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8D////Bv///xL///8n////O////0f///9S////W////1////9i////ZP// + /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// + /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// + /2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP///2T///9k////ZP// + /2T///9k////ZP///2T///9k////ZP///2P///9j////Xv///1j///9R////Q////zT///8l////Ff// + /wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///8i////Of///3v////E////+P// + /9P///+v////f////0X///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af// + /wL///8D////BP///wT///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// + /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// + /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// + /wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf///wX///8F////Bf// + /wX///8F////Bf///wT///8D////A////wL///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////DP///yL///85////e////8T////4////0////6////9/////Rf///woAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8P////Kv///0b///+E////yP// + //f////Q////qf///3r///9C////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xL///8z////VP///47////M////9////83///+k////dP///z////8JAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Fv///z7///9m////m/// + /9L////2////yf///5v///9s////Ov///wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8c////T////4L///+v////2/////X///+/////iv///1v///8x////BwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///9h////n/// + /8P////k////8////7b///95////Sv///yj///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////B/// + /wv///8M////DP///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// + /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// + /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// + /w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df///w3///8N////Df// + /w////8R////FP///xz///8k////SP///4L///+8////1P///+j////r////qP///2T///81////Hf// + /wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///8U////H////yH///8j////Jf///yX///8l////Jf// + /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// + /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// + /yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf///yX///8l////Jf// + /yX///8l////Jf///yX///8l////Jf///yX///8l////Kv///zD///86////T////2X///+G////sP// + /9r////k////6f///9////+V////S////x////8Q////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Dv// + /yH///8z////N////zr///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// + /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// + /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// + /z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf///z3///89////Pf// + /z3///9G////T////1////+D////pv///8T////e////+P////P////p////0////4L///8y////CP// + /wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////Tf///3b///95////fP///37///9+////fv// + /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// + /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// + /37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv///37///9+////fv// + /37///9+////fv///37///9+////fv///37///9+////fv///4T///+L////lv///6/////I////2/// + /+j////0////3v///8L///+g////Yv///yOLi4sDS0tLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18BoaGhAf// + /zf///99////wP///8L////E////xf///8X////F////xf///8X////F////xf///8X////F////xf// + /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// + /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// + /8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf///8X////F////xf// + /8X////F////yP///8v////Q////2////+b////r////7P///+z////E////lv///2j///8/////Fj4+ + PgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5+fgHX19cC////Rf///57////x////8/////X////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v// + //b////2////9v////b////2////9v////b////2////9v////b////1////9f////T////z////8v// + /+z////h////1v///6P///9q////N////yH///8LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGB + gQH///80////eP///7n///++////w////8b////G////xv///8b////G////xv///8b////G////xv// + /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// + /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// + /8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv///8b////G////xv// + /8b////G////xv///8T////B////vv///7j///+y////pv///5b///+F////ZP///0D///8h////E/// + /wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yT///9T////gP///4n///+S////l/// + /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// + /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// + /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////l/// + /5f///+X////l////5f///+X////l////5f///+X////l////5f///+X////k////47///+H////fP// + /3L///9g////Sv///zP///8l////F////wv///8G////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Fv///zX///9R////Wv///2L///9o////aP///2j///9o////aP///2j///9o////aP// + /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// + /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// + /2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP///2j///9o////aP// + /2j///9o////aP///2j///9j////Xv///1j///9N////Qv///zL///8d////CYuLiwQ+Pj4BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////HP///yz///8x////Nf// + /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// + /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// + /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP// + /zj///84////OP///zj///84////OP///zj///84////OP///zj///84////OP///zb///8z////MP// + /yr///8k////G////xD///8ES0tLAiIiIgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wH///8E////B////wf///8I////CP///wj///8I////CP///wj///8I////CP// + /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// + /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// + /wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP///wj///8I////CP// + /wj///8I////CP///wj///8I////CP///wj///8H////Bv///wX///8E////AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////4AD//////////////////+AA/////////////////// + gAP//////////////////4AAH/////////////////+AAA//////////////////gAAAAAAAAAAAH/// + /////4AAAAAAAAAAAA////////+AAAAAAAAAAAAP////////gAAAAAAAAAAAA////////4AAAAAAAAAA + AAH///////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+AH/// + /////4AB////////gB/////////AAP///////4Af////////4AB///////+AH/////////4Af/////// + gB/////////+AH///////4Af/////////gB///////+AH/////////4Af///////gB/////////+AH// + /////4Af/////////gB///////+AH/////////4Af///////gB/////////+AH///////4Af////8AAA + HgB+A/////+AH/////AAAA4AfgH/////gB/////wAAAOAH4B/////4Af////8AAADgBwAf////+AH/// + //AAAA4AcAH/////gB/////wAAAOAHAB/////4Af////8AAADgBwAf////+AH/////AAAA4AcAH///// + gB/////wAAB+AHAB/////4Af////8AAAfgBwAf////+AH/////AAAH4AcAH/////gB/////////+AHAB + /////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af//////// + /gBwAf////+AHAAAAAAAAB4AcAH/////gBwAAAAAAAAOAHAB/////4AcAAAAAAAADgBwAf////+AHAAA + AAAAAA4AcAH/////gBwAAAAAAAAOAHAB/////4AcAAAAAAAADgBwAf////+AHAAAAAAAAA4AcAH///// + gBwAAAAAAAAOAHAB/////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB + /////4Af/////////gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af//////// + /gBwAf////+AH/////////4AcAH/////gB/////////+AHAB/////4Af/////////gBwAf////+AH/// + //////4AcAH/////gB/////////+AHAB/////4Af/////////gBwAf////+AH/////////4AcAH///// + gAf////////wAHAB/////4AH////////8ABwAf////+AA/////////AB8AH/////gAAAAAAAAAAAAfAB + /////4AAAAAAAAAAAAHwAf////+AAAAAAAAAAAAB8AH/////wAAAAAAAAAAAAfAB/////+AAAAAAAAAA + AAPwAf/////gAAAAAAAAAAAP8AH/////8AAAAAAAAAAAD/AB//////wAAAAAAAAAAB/wAf////////// + ////////8AH///////////////////AB///////////////////wAf//////////////////8AH///// + //////////////AB////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAD + ////////gAAAAAAAAAAAA////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAP////////AAAAAAAA + AAAAD////////4AAAAAAAAAAAA////////+AAAAAAAAAAAB/////////gAAAAAAAAAAAf////////4AA + AAAAAAAAA/////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////KAAAACAAAABAAAAAAQAgAAAA + AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8i////y////7////9G////CgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////1P///+T///+0////qv// + /6r///+q////qv///6r///+q////qv///6r///+q////qv///6r///+o////k////zAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8x////Xf// + /6P///+q////qv///6r///+q////qv///6r///+q////qv///6r///+q////qv///6r///++////2v// + /zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///80////3v// + /ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xT////q////VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///9j///9hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////NP///97///8nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////2P///2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///80////3v///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /1r///+q////qv///6r///+o////HwAAAAD////Y////YQAAAAD///8M////fv///xgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Pf///3////9/////f////3v///8VAAAAAP///9j///9hAAAAAP///yb////d////MwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////2P///2EAAAAA////KP// + /97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///80////3v///ycAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////Y////YQAA + AAD///8o////3v///zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////e////JwAA + AAD////V////6v///+r////q////6v///+r////q////6v///+r////q////6v///+b///8rAAAAAP// + /9j///9hAAAAAP///yj////e////NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////NP// + /97///8nAAAAAP///zb///9A////QP///0D///9A////QP///0D///9A////QP///0D///9A////Pf// + /wkAAAAA////2P///2EAAAAA////KP///97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///80////3v///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////Y////YQAAAAD///8o////3v///zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zT////e////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///9j///9hAAAAAP///yj////e////NAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////NP///97///8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////2v///18AAAAA////KP///97///80AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8m////0P///2P///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL////v////UgAAAAD///8o////3v// + /zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9m////5P///9z////V////1f// + /9X////V////1f///9X////V////1f///9X////V////1f///9X////W////5v///6X///8cAAAAAP// + /yj////e////NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///89////Uv// + /1X///9V////Vf///1X///9V////Vf///1X///9V////Vf///1X///9V////Vf///1T///9J////FwAA + AAAAAAAA////KP///97///80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9U////0f///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8M////KP///yr///8q////Kv///yr///8q////Kv///yr///8q////Kv// + /yr///8q////Kv///yr///8q////Uv///8P///+n////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0T////Q////1P///9T////U////1P///9T////U////1P// + /9T////U////1P///9T////U////1P///9T////L////qP///xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////yf///8q////Kv///yr///8q////Kv// + /yr///8q////Kv///yr///8q////Kv///yr///8q////Kv///yH///8KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////// + ///wf///8AAB//AAAP/x//j/8f/8//H//P/x/gSP8f4Ej/H//I/x//yP8QAEj/EABI/x//yP8f/8j/H/ + /I/w//iP+AAAj/gAAY////+P/wAAD/8AAB//AAA//////////////////////w== + + \ No newline at end of file diff --git a/Source/Itrycn_Project2/SkinForms/Msg.cs b/Source/Itrycn_Project2/Public/SkinForms/Msg.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/Msg.cs rename to Source/Itrycn_Project2/Public/SkinForms/Msg.cs index cd8979f..adbf776 100644 --- a/Source/Itrycn_Project2/SkinForms/Msg.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/Msg.cs @@ -1,104 +1,104 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace RySkins -{ - public static class Msg - { - /// - /// 显示对话框 - /// - /// - /// - /// - public static DialogResult ShowMsg(string msgText, string title) - { - return ShowMsg(msgText, title, MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// 显示对话框 - /// - /// - /// - /// - /// - public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button) - { - return ShowMsg(msgText, title, button, MessageBoxIcon.Information); - } - /// - /// 显示对话框 - /// - /// - /// - /// - /// - /// - /// - public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button, MessageBoxIcon Icon,MessageBoxDefaultButton defaultButton) - { - return ShowMsg(msgText, title, button, Icon); - } - /// - /// 显示对话框 - /// - /// - /// - /// - /// - /// - public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button, MessageBoxIcon Icon) - { -#pragma warning disable CA2000 // 丢失范围之前释放对象 - FrmMessageBox frm = new FrmMessageBox - { - Text = title - }; -#pragma warning restore CA2000 // 丢失范围之前释放对象 - frm.lblMsg.Text = msgText; - frm.lblMsg.UpdateInfo(); - frm.ResultDg = button; - switch (button) - { - case MessageBoxButtons.OK: - frm.btnYes.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); - frm.btnCancel.Visible = false; - break; - case MessageBoxButtons.OKCancel: - case MessageBoxButtons.YesNo: - frm.btnCancel.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); - frm.btnYes.Location = new System.Drawing.Point(frm.btnCancel.Left - frm.btnYes.Width - 8, frm.btnCancel.Top); - break; - case MessageBoxButtons.RetryCancel: - frm.btnCancel.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); - frm.btnYes.Location = new System.Drawing.Point(frm.btnCancel.Left - frm.btnYes.Width - 8, frm.btnCancel.Top); - frm.btnYes.Text = "重试"; - break; - default: - frm.btnYes.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); - frm.btnCancel.Visible = false; - break; - } - frm.TopMost = true; - var handle= WinAPI.User32.GetActiveWindow(); - var have_owner = false; - for (int i = 0; i < Application.OpenForms.Count; i++) - { - if(Application.OpenForms[i].Handle==handle) - { - var owner = Application.OpenForms[i]; - frm.Location = new System.Drawing.Point(owner.Left + (owner.Width - frm.Width) / 2, owner.Top + (owner.Height - frm.Height) / 2); - have_owner = true; - } - } - //WinAPI.User32.GetWindowRect(handle,out var rectangle); - //var title2= ryCommon.RyForm.GetWinText(handle); - //frm.Location = new System.Drawing.Point(rectangle.X + (rectangle.Width - frm.Width) / 2, rectangle.Y + (rectangle.Height - frm.Height) / 2); - if (!have_owner) { frm.StartPosition = FormStartPosition.CenterScreen; } - return frm.ShowDialog(); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace RySkins +{ + public static class Msg + { + /// + /// 显示对话框 + /// + /// + /// + /// + public static DialogResult ShowMsg(string msgText, string title) + { + return ShowMsg(msgText, title, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + /// + /// 显示对话框 + /// + /// + /// + /// + /// + public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button) + { + return ShowMsg(msgText, title, button, MessageBoxIcon.Information); + } + /// + /// 显示对话框 + /// + /// + /// + /// + /// + /// + /// + public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button, MessageBoxIcon Icon,MessageBoxDefaultButton defaultButton) + { + return ShowMsg(msgText, title, button, Icon); + } + /// + /// 显示对话框 + /// + /// + /// + /// + /// + /// + public static DialogResult ShowMsg(string msgText, string title, MessageBoxButtons button, MessageBoxIcon Icon) + { +#pragma warning disable CA2000 // 丢失范围之前释放对象 + FrmMessageBox frm = new FrmMessageBox + { + Text = title + }; +#pragma warning restore CA2000 // 丢失范围之前释放对象 + frm.lblMsg.Text = msgText; + frm.lblMsg.UpdateInfo(); + frm.ResultDg = button; + switch (button) + { + case MessageBoxButtons.OK: + frm.btnYes.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); + frm.btnCancel.Visible = false; + break; + case MessageBoxButtons.OKCancel: + case MessageBoxButtons.YesNo: + frm.btnCancel.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); + frm.btnYes.Location = new System.Drawing.Point(frm.btnCancel.Left - frm.btnYes.Width - 8, frm.btnCancel.Top); + break; + case MessageBoxButtons.RetryCancel: + frm.btnCancel.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); + frm.btnYes.Location = new System.Drawing.Point(frm.btnCancel.Left - frm.btnYes.Width - 8, frm.btnCancel.Top); + frm.btnYes.Text = "重试"; + break; + default: + frm.btnYes.Location = new System.Drawing.Point(frm.ClientSize.Width - frm.btnYes.Width - 8, frm.ClientSize.Height - frm.btnYes.Height - 8); + frm.btnCancel.Visible = false; + break; + } + frm.TopMost = true; + var handle= WinAPI.User32.GetActiveWindow(); + var have_owner = false; + for (int i = 0; i < Application.OpenForms.Count; i++) + { + if(Application.OpenForms[i].Handle==handle) + { + var owner = Application.OpenForms[i]; + frm.Location = new System.Drawing.Point(owner.Left + (owner.Width - frm.Width) / 2, owner.Top + (owner.Height - frm.Height) / 2); + have_owner = true; + } + } + //WinAPI.User32.GetWindowRect(handle,out var rectangle); + //var title2= ryCommon.RyForm.GetWinText(handle); + //frm.Location = new System.Drawing.Point(rectangle.X + (rectangle.Width - frm.Width) / 2, rectangle.Y + (rectangle.Height - frm.Height) / 2); + if (!have_owner) { frm.StartPosition = FormStartPosition.CenterScreen; } + return frm.ShowDialog(); + } + } +} diff --git a/Source/Itrycn_Project2/SkinForms/SKinForm.Designer.cs b/Source/Itrycn_Project2/Public/SkinForms/SKinForm.Designer.cs similarity index 96% rename from Source/Itrycn_Project2/SkinForms/SKinForm.Designer.cs rename to Source/Itrycn_Project2/Public/SkinForms/SKinForm.Designer.cs index b75e517..b9af362 100644 --- a/Source/Itrycn_Project2/SkinForms/SKinForm.Designer.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/SKinForm.Designer.cs @@ -1,49 +1,49 @@ - -namespace RySkins -{ - partial class SKinForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // SKinForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(594, 521); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "SKinForm"; - this.Text = "SKinForm"; - this.Load += new System.EventHandler(this.SKinForm_Load); - this.ResumeLayout(false); - - } - - #endregion - } + +namespace RySkins +{ + partial class SKinForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // SKinForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(594, 521); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "SKinForm"; + this.Text = "SKinForm"; + this.Load += new System.EventHandler(this.SKinForm_Load); + this.ResumeLayout(false); + + } + + #endregion + } } \ No newline at end of file diff --git a/Source/Itrycn_Project2/SkinForms/SKinForm.cs b/Source/Itrycn_Project2/Public/SkinForms/SKinForm.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/SKinForm.cs rename to Source/Itrycn_Project2/Public/SkinForms/SKinForm.cs index deb86c5..7ef7079 100644 --- a/Source/Itrycn_Project2/SkinForms/SKinForm.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/SKinForm.cs @@ -1,213 +1,213 @@ -using MGdu.WinFormUI; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Windows.Forms; - -namespace RySkins -{ - [ComVisible(true)] - public partial class SKinForm : GMForm - { - /// - /// 无参数启动 - /// - public SKinForm() : base() - { - InitializeComponent(); - } - private IntPtr ActiveHandle = IntPtr.Zero; - protected override void OnCreateControl() - { - //ActiveHandle= ryCommon.RyForm.GetActiveWindow(); - base.OnCreateControl(); - InitForm(); - } - protected override void OnHandleCreated(EventArgs e) - { - ActiveHandle = ryCommon.RyForm.GetActiveWindow(); - base.OnHandleCreated(e); - } - /// - /// 以参数方式启动 - /// - /// - public SKinForm(string[] args) : base() - { - InitializeComponent(); - } - /// - /// 以单参数方式启动 - /// - /// - public SKinForm(string arg) : base() - { - InitializeComponent(); - } - private void InitForm() - { - if (this.Parent == null) - { - if (this.StartPosition == FormStartPosition.CenterParent) - { - var handle = ActiveHandle; - var parent_handle = WinAPI.User32.GetParent(Handle); - //var dd= this.ParentForm; - if (parent_handle == IntPtr.Zero) { parent_handle = handle; } - var forms = Application.OpenForms; - for (int i = 0; i < forms.Count; i++) - { - if (forms[i].Handle == handle) - { - ShowInCenter(forms[i]); - break; - } - } - } - else if (this.StartPosition == FormStartPosition.CenterScreen) - { - ShowInCenter(null); - } - } - } - /// - /// 显示在父窗体中间,如果没有父窗体,则显示在显示器中间 - /// - /// - public void ShowInCenter(Form parent) - { - ShowInCenter(this, parent); - } - /// - /// 显示在父窗体中间,如果没有父窗体,则显示在显示器中间 - /// - /// - /// - public static void ShowInCenter(Form CurForm, Form parent) - { - CurForm.StartPosition = FormStartPosition.Manual; - var screen = Screen.FromControl(CurForm); - if (parent == null) //如果没有父窗体,则显示在显示器中间 - { - CurForm.Location = new Point((screen.WorkingArea.Width - CurForm.Width) / 2, (screen.WorkingArea.Height - CurForm.Height) / 2); - return; - } - var x = parent.Left + (parent.Width - CurForm.Width) / 2; - var y = parent.Top + (parent.Height - CurForm.Height) / 2; - if ((x + CurForm.Width) > screen.WorkingArea.X + screen.WorkingArea.Width) - { - x = screen.WorkingArea.X + screen.WorkingArea.Width - CurForm.Width; - } - if ((y + CurForm.Height) > screen.WorkingArea.Y + screen.WorkingArea.Height) - { - y = screen.WorkingArea.Y + screen.WorkingArea.Height - CurForm.Height; - } - CurForm.Location = new Point(x, y); - } - /// - /// 激活窗体 - /// - public void ActiveSkinForm() - { - ryCommon.RyForm.BringToTop(Handle); - ryCommon.RyForm.SetActiveWindow(Handle); - } - /// - /// 显示窗体 - /// - /// 指定要显示的窗体类型名 - public static void ShowForm(Type type) - { - RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type); - form.Show(); - } - /// - /// 显示窗体 - /// - /// 指定要显示的窗体类型名 - /// 参数 - public static void ShowForm(Type type, string arg) - { - RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, new object[] { arg }); - form.Show(); - } - /// - /// 显示窗体 - /// - /// 指定要显示的窗体类型名 - /// 参数 - public static void ShowForm(Type type, string[] arg) - { - RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, arg); - form.Show(); - } - /// - /// 显示模式窗体 - /// - /// 指定要显示的窗体类型名 - /// 参数 - public static void ShowDialogForm(Type type, string[] arg) - { - RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, arg); - form.ShowDialog(); - form.Dispose(); - } - /// - /// 显示窗体,如果当前已经显示过,则激活窗体。 - /// - /// 指定要显示的窗体类型名 - public static void ShowFormOne(Form parent, Type type) - { - ShowFormOne(parent, type, null); - } - /// - /// 显示窗体,如果当前已经显示过,则激活窗体。 - /// - /// 指定要显示的窗体类型名 - /// 参数 - public static void ShowFormOne(Form parent, Type type, string[] arg) - { - var forms = Application.OpenForms; - for (int i = 0; i < forms.Count; i++) - { - if (forms[i].GetType() == type) - { - if (forms[i] is RySkins.SKinForm) - { - var skin_form = (RySkins.SKinForm)forms[i]; - skin_form.ShowInCenter(parent); - skin_form.ActiveSkinForm(); - skin_form.Show(); - return; - } - else - { - forms[i].Show(); - } - } - } - Form form; - if (arg == null) - { form = (Form)Activator.CreateInstance(type); } - else - { - form = (Form)Activator.CreateInstance(type, arg); - } - ShowInCenter(form, parent); - ryCommon.RyForm.BringToTop(form.Handle); - ryCommon.RyForm.SetActiveWindow(form.Handle); - form.Show(); - } - private void SKinForm_Load(object sender, EventArgs e) - { - if (!this.DesignMode) - { base.XTheme = new ThemeForm(); } - //Opacity = 0.97; - } - } -} +using MGdu.WinFormUI; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; + +namespace RySkins +{ + [ComVisible(true)] + public partial class SKinForm : GMForm + { + /// + /// 无参数启动 + /// + public SKinForm() : base() + { + InitializeComponent(); + } + private IntPtr ActiveHandle = IntPtr.Zero; + protected override void OnCreateControl() + { + //ActiveHandle= ryCommon.RyForm.GetActiveWindow(); + base.OnCreateControl(); + InitForm(); + } + protected override void OnHandleCreated(EventArgs e) + { + ActiveHandle = ryCommon.RyForm.GetActiveWindow(); + base.OnHandleCreated(e); + } + /// + /// 以参数方式启动 + /// + /// + public SKinForm(string[] args) : base() + { + InitializeComponent(); + } + /// + /// 以单参数方式启动 + /// + /// + public SKinForm(string arg) : base() + { + InitializeComponent(); + } + private void InitForm() + { + if (this.Parent == null) + { + if (this.StartPosition == FormStartPosition.CenterParent) + { + var handle = ActiveHandle; + var parent_handle = WinAPI.User32.GetParent(Handle); + //var dd= this.ParentForm; + if (parent_handle == IntPtr.Zero) { parent_handle = handle; } + var forms = Application.OpenForms; + for (int i = 0; i < forms.Count; i++) + { + if (forms[i].Handle == handle) + { + ShowInCenter(forms[i]); + break; + } + } + } + else if (this.StartPosition == FormStartPosition.CenterScreen) + { + ShowInCenter(null); + } + } + } + /// + /// 显示在父窗体中间,如果没有父窗体,则显示在显示器中间 + /// + /// + public void ShowInCenter(Form parent) + { + ShowInCenter(this, parent); + } + /// + /// 显示在父窗体中间,如果没有父窗体,则显示在显示器中间 + /// + /// + /// + public static void ShowInCenter(Form CurForm, Form parent) + { + CurForm.StartPosition = FormStartPosition.Manual; + var screen = Screen.FromControl(CurForm); + if (parent == null) //如果没有父窗体,则显示在显示器中间 + { + CurForm.Location = new Point((screen.WorkingArea.Width - CurForm.Width) / 2, (screen.WorkingArea.Height - CurForm.Height) / 2); + return; + } + var x = parent.Left + (parent.Width - CurForm.Width) / 2; + var y = parent.Top + (parent.Height - CurForm.Height) / 2; + if ((x + CurForm.Width) > screen.WorkingArea.X + screen.WorkingArea.Width) + { + x = screen.WorkingArea.X + screen.WorkingArea.Width - CurForm.Width; + } + if ((y + CurForm.Height) > screen.WorkingArea.Y + screen.WorkingArea.Height) + { + y = screen.WorkingArea.Y + screen.WorkingArea.Height - CurForm.Height; + } + CurForm.Location = new Point(x, y); + } + /// + /// 激活窗体 + /// + public void ActiveSkinForm() + { + ryCommon.RyForm.BringToTop(Handle); + ryCommon.RyForm.SetActiveWindow(Handle); + } + /// + /// 显示窗体 + /// + /// 指定要显示的窗体类型名 + public static void ShowForm(Type type) + { + RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type); + form.Show(); + } + /// + /// 显示窗体 + /// + /// 指定要显示的窗体类型名 + /// 参数 + public static void ShowForm(Type type, string arg) + { + RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, new object[] { arg }); + form.Show(); + } + /// + /// 显示窗体 + /// + /// 指定要显示的窗体类型名 + /// 参数 + public static void ShowForm(Type type, string[] arg) + { + RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, arg); + form.Show(); + } + /// + /// 显示模式窗体 + /// + /// 指定要显示的窗体类型名 + /// 参数 + public static void ShowDialogForm(Type type, string[] arg) + { + RySkins.SKinForm form = (RySkins.SKinForm)Activator.CreateInstance(type, arg); + form.ShowDialog(); + form.Dispose(); + } + /// + /// 显示窗体,如果当前已经显示过,则激活窗体。 + /// + /// 指定要显示的窗体类型名 + public static void ShowFormOne(Form parent, Type type) + { + ShowFormOne(parent, type, null); + } + /// + /// 显示窗体,如果当前已经显示过,则激活窗体。 + /// + /// 指定要显示的窗体类型名 + /// 参数 + public static void ShowFormOne(Form parent, Type type, string[] arg) + { + var forms = Application.OpenForms; + for (int i = 0; i < forms.Count; i++) + { + if (forms[i].GetType() == type) + { + if (forms[i] is RySkins.SKinForm) + { + var skin_form = (RySkins.SKinForm)forms[i]; + skin_form.ShowInCenter(parent); + skin_form.ActiveSkinForm(); + skin_form.Show(); + return; + } + else + { + forms[i].Show(); + } + } + } + Form form; + if (arg == null) + { form = (Form)Activator.CreateInstance(type); } + else + { + form = (Form)Activator.CreateInstance(type, arg); + } + ShowInCenter(form, parent); + ryCommon.RyForm.BringToTop(form.Handle); + ryCommon.RyForm.SetActiveWindow(form.Handle); + form.Show(); + } + private void SKinForm_Load(object sender, EventArgs e) + { + if (!this.DesignMode) + { base.XTheme = new ThemeForm(); } + //Opacity = 0.97; + } + } +} diff --git a/Source/Itrycn_Project2/FormTest.resx b/Source/Itrycn_Project2/Public/SkinForms/SKinForm.resx similarity index 100% rename from Source/Itrycn_Project2/FormTest.resx rename to Source/Itrycn_Project2/Public/SkinForms/SKinForm.resx diff --git a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.Designer.cs b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.Designer.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/SkinMdiForm.Designer.cs rename to Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.Designer.cs index c753c88..7102e29 100644 --- a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.Designer.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.Designer.cs @@ -1,51 +1,51 @@ - -namespace RySkins -{ - partial class SkinMdiForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // SkinMdiForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1035, 719); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.IsMdiContainer = true; - this.Location = new System.Drawing.Point(0, 0); - this.Name = "SkinMdiForm"; - this.Text = "SkinMdiForm"; - this.Load += new System.EventHandler(this.SkinMdiForm_Load); - this.ResumeLayout(false); - - } - - #endregion - } + +namespace RySkins +{ + partial class SkinMdiForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // SkinMdiForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1035, 719); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.IsMdiContainer = true; + this.Location = new System.Drawing.Point(0, 0); + this.Name = "SkinMdiForm"; + this.Text = "SkinMdiForm"; + this.Load += new System.EventHandler(this.SkinMdiForm_Load); + this.ResumeLayout(false); + + } + + #endregion + } } \ No newline at end of file diff --git a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.cs b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/SkinMdiForm.cs rename to Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.cs index 3582b13..f3156dc 100644 --- a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.cs @@ -1,256 +1,256 @@ -using MGdu.WinFormUI; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading; -using System.Windows.Forms; - -namespace RySkins -{ - public partial class SkinMdiForm : GMForm - { - /// - /// 顶部栏 - /// - [Description("顶部栏")] - public Panel TopPanel { get; set; } = null; - /// - /// 左侧栏 - /// - [Description("左侧栏")] - public Panel LeftPanel { get; set; } = null; - public SkinMdiForm() - { - InitializeComponent(); - InitMdiSkin(); - } - public SkinMdiForm(string[] args) - { - InitializeComponent(); - InitMdiSkin(); - } - #region 加载皮肤 - /// - /// 加载皮肤 - /// - public void InitMdiSkin() - { - _mdiClient = FindMdiClient(); - base.SizeChanged += new EventHandler((object sender, EventArgs e) => - { - if (base.WindowState == FormWindowState.Maximized) - { - base.ControlBoxOffset = new Point(4, base.BorderWidth); - } - else - { - base.ControlBoxOffset = new Point(4, 1); - } - SetFormItemLocation(TopPanel); - }); - base.Load += new EventHandler((object sender, EventArgs e) => - { - base.XTheme = new RySkins.ThemeForm(); - base.XTheme.Mdi_TabMinWidth = 70; - base.XTheme.Mdi_TabNormalWidth = 100; - base.XTheme.Mdi_TabMaxWidth = 145; - base.XTheme.Mdi_ShowNewTabBtn = false; - base.XTheme.Mdi_AlwaysShowListAllBtn = false; - base.XTheme.Mdi_BarBottomRegionHeight = 0; - base.XTheme.Mdi_ShowTabCloseIcon = true; - base.XTheme.Mdi_TabShowBorder = false; - base.XTheme.Mdi_BarMargin = new Padding(6, 0, 100, 0); - base.XTheme.Mdi_TabActiveBackColorTop = Color.White; - base.XTheme.Mdi_ShowTabIcon = false; - base.XTheme.Mdi_TabActiveBackColorBottom = Color.FromArgb(248, 248, 248); - base.XTheme.Mdi_TabDeactiveBackColorTop = Color.FromArgb(230, 230, 230); - base.XTheme.Mdi_TabDeactiveBackColorBottom = Color.FromArgb(230, 230, 230); - //base.XTheme.Mdi_UseMsgToActivateChild - base.MdiNewTabButtonClick += new EventHandler(NewFormClick); - base.MdiTabCloseButtonClick += new EventHandler(ChildFormClose); - //base.XTheme.Mdi_TabTopSpace += 80; - if (_mdiClient != null) - { - _mdiClient.Dock = DockStyle.None; - _mdiClient.BackColor = Color.White; - } - this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - Height) / 2); - }); - base.MdiBarCreated += new EventHandler((object sender, EventArgs e) => - { - SetFormItemLocation(TopPanel); - Application.DoEvents(); - Thread th = new Thread(Start); - th.Start(); - void Start() - { - Thread.Sleep(10); - this.Invoke(new Action(() => - { - this.SuspendLayout(); - //CreateNewChild(typeof(DYun.OTools.FrmGZ)); - for (int i = 0; i < MdiForms.Count; i++) - { - CreateNewChild(MdiForms[i]); - } - this.ResumeLayout(false); - //CreateNewChild(typeof(DbOp.FrmCaijiView)); - //Application.DoEvents(); - if (this.MdiChildren.Length > 0) - { - this.ActivateMdiChildForm(this.MdiChildren[0]); - } - })); - } - }); - } - /// - /// 要初始化加载的Form列表 - /// - public List
MdiForms { get; set; } = new List(); - /// - /// 创建子窗体 - /// - /// - public void CreateNewChild(Form form) - { - //form.SuspendLayout(); - form.FormClosed += new FormClosedEventHandler(base.MdiChildClosed); - form.VisibleChanged += new EventHandler(base.MdiChildVisibleChange); - form.MdiParent = this; - //f.BackColor = Color.White; - //form.FormBorderStyle = FormBorderStyle.SizableToolWindow; - form.SizeGripStyle = SizeGripStyle.Show; - form.WindowState = FormWindowState.Maximized; - form.Show(); - //form.Refresh(); - // form.ResumeLayout(false); - //f.Focus(); - } - private void CreateNewChild(Type form) - { - Form f = (Form)Activator.CreateInstance(form); - f.FormClosed += new FormClosedEventHandler(base.MdiChildClosed); - f.VisibleChanged += new EventHandler(base.MdiChildVisibleChange); - f.MdiParent = this; - //f.BackColor = Color.White; - f.FormBorderStyle = FormBorderStyle.SizableToolWindow; - f.SizeGripStyle = SizeGripStyle.Show; - f.WindowState = FormWindowState.Maximized; - f.Show(); - //f.Focus(); - } - - MdiClient _mdiClient; - private int PanelTopHeight - { - get - { - return TopPanel == null ? 0 : TopPanel.Height; - } - - } - - private void NewFormClick(object sender, EventArgs e) - { - // CreateNewChild(); - } - /// - /// 至少保留一个子窗体 - /// - public bool AleastOneChild { get; set; } = true; - private void ChildFormClose(object sender, EventArgs e) - { - if (sender is Form f) - { - if (AleastOneChild) - { - if (this.GetCurrentMdiChildren().Count == 1) { return; } - } - f.Close(); - } - this.Invalidate(); - } - private MdiClient FindMdiClient() - { - MdiClient mdi = null; - foreach (Control c in Controls) - { - if ((mdi = c as MdiClient) != null) - { - break; - } - } - return mdi; - } - private void SetMdiBarLocation() - { - Padding newMargin = Padding.Empty; - //if (WindowState == FormWindowState.Maximized) - // newMargin = new Padding(BorderWidth, BorderWidth, BorderWidth, 0); - //else - //PnlMenu.Top = BorderWidth + base.XTheme.CaptionHeight; - int left_bar_width = 0; - if (LeftPanel != null) { left_bar_width = LeftPanel.Width; } - newMargin = new Padding(BorderWidth + left_bar_width, BorderWidth + base.XTheme.CaptionHeight + PanelTopHeight, BorderWidth, 0); - if (base.XTheme.Mdi_BarMargin != newMargin) - { - base.XTheme.Mdi_BarMargin = newMargin; - Invalidate(); - } - } - private void SetPanelTopLocation(Panel PnlTop) - { - //Point newLocation = new Point(base.MdiBarBounds.Left, base.XTheme.CaptionHeight + BorderWidth); - //var size = new Size(base.MdiBarBounds.Width, PanelTopHeight); - //if (PnlTop != null) - //{ - // //PnlTop.Anchor = AnchorStyles.None; - // PnlTop.Location = newLocation; - // PnlTop.Size = size; - // //PnlTop.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; - //} - } - private void SetFormItemLocation(Panel PnlTop) - { - if (DesignMode) { return; } - SetMdiBarLocation(); - SetPanelTopLocation(PnlTop); - SetMdiClientLocation(PnlTop); - } - private void SetMdiClientLocation(Panel PnlTop) - { - if (_mdiClient == null) - return; - int left_bar_width = 0; - if (LeftPanel != null) { left_bar_width = LeftPanel.Width; } - Point newLocation = new Point(BorderWidth, base.XTheme.CaptionHeight + base.XTheme.Mdi_TabHeight); - var size = new Size(ClientRectangle.Width - BorderWidth - BorderWidth, ClientRectangle.Height - base.XTheme.CaptionHeight - base.XTheme.Mdi_TabHeight - BorderWidth); - if (PnlTop != null) - { - newLocation = new Point(PnlTop.Left + left_bar_width, PnlTop.Bottom + base.XTheme.Mdi_TabHeight); - if (_mdiClient.Location == newLocation) - return; - - int height = base.Height - newLocation.Y - BorderWidth - BorderWidth; - - size = new Size(PnlTop.Width - left_bar_width, height); - } - _mdiClient.Anchor = AnchorStyles.None; - _mdiClient.Location = newLocation; - _mdiClient.Size = size; - _mdiClient.Anchor = - AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; - } - #endregion - - private void SkinMdiForm_Load(object sender, EventArgs e) - { - - } - } -} +using MGdu.WinFormUI; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace RySkins +{ + public partial class SkinMdiForm : GMForm + { + /// + /// 顶部栏 + /// + [Description("顶部栏")] + public Panel TopPanel { get; set; } = null; + /// + /// 左侧栏 + /// + [Description("左侧栏")] + public Panel LeftPanel { get; set; } = null; + public SkinMdiForm() + { + InitializeComponent(); + InitMdiSkin(); + } + public SkinMdiForm(string[] args) + { + InitializeComponent(); + InitMdiSkin(); + } + #region 加载皮肤 + /// + /// 加载皮肤 + /// + public void InitMdiSkin() + { + _mdiClient = FindMdiClient(); + base.SizeChanged += new EventHandler((object sender, EventArgs e) => + { + if (base.WindowState == FormWindowState.Maximized) + { + base.ControlBoxOffset = new Point(4, base.BorderWidth); + } + else + { + base.ControlBoxOffset = new Point(4, 1); + } + SetFormItemLocation(TopPanel); + }); + base.Load += new EventHandler((object sender, EventArgs e) => + { + base.XTheme = new RySkins.ThemeForm(); + base.XTheme.Mdi_TabMinWidth = 70; + base.XTheme.Mdi_TabNormalWidth = 100; + base.XTheme.Mdi_TabMaxWidth = 145; + base.XTheme.Mdi_ShowNewTabBtn = false; + base.XTheme.Mdi_AlwaysShowListAllBtn = false; + base.XTheme.Mdi_BarBottomRegionHeight = 0; + base.XTheme.Mdi_ShowTabCloseIcon = true; + base.XTheme.Mdi_TabShowBorder = false; + base.XTheme.Mdi_BarMargin = new Padding(6, 0, 100, 0); + base.XTheme.Mdi_TabActiveBackColorTop = Color.White; + base.XTheme.Mdi_ShowTabIcon = false; + base.XTheme.Mdi_TabActiveBackColorBottom = Color.FromArgb(248, 248, 248); + base.XTheme.Mdi_TabDeactiveBackColorTop = Color.FromArgb(230, 230, 230); + base.XTheme.Mdi_TabDeactiveBackColorBottom = Color.FromArgb(230, 230, 230); + //base.XTheme.Mdi_UseMsgToActivateChild + base.MdiNewTabButtonClick += new EventHandler(NewFormClick); + base.MdiTabCloseButtonClick += new EventHandler(ChildFormClose); + //base.XTheme.Mdi_TabTopSpace += 80; + if (_mdiClient != null) + { + _mdiClient.Dock = DockStyle.None; + _mdiClient.BackColor = Color.White; + } + this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - Height) / 2); + }); + base.MdiBarCreated += new EventHandler((object sender, EventArgs e) => + { + SetFormItemLocation(TopPanel); + Application.DoEvents(); + Thread th = new Thread(Start); + th.Start(); + void Start() + { + Thread.Sleep(10); + this.Invoke(new Action(() => + { + this.SuspendLayout(); + //CreateNewChild(typeof(DYun.OTools.FrmGZ)); + for (int i = 0; i < MdiForms.Count; i++) + { + CreateNewChild(MdiForms[i]); + } + this.ResumeLayout(false); + //CreateNewChild(typeof(DbOp.FrmCaijiView)); + //Application.DoEvents(); + if (this.MdiChildren.Length > 0) + { + this.ActivateMdiChildForm(this.MdiChildren[0]); + } + })); + } + }); + } + /// + /// 要初始化加载的Form列表 + /// + public List MdiForms { get; set; } = new List(); + /// + /// 创建子窗体 + /// + /// + public void CreateNewChild(Form form) + { + //form.SuspendLayout(); + form.FormClosed += new FormClosedEventHandler(base.MdiChildClosed); + form.VisibleChanged += new EventHandler(base.MdiChildVisibleChange); + form.MdiParent = this; + //f.BackColor = Color.White; + //form.FormBorderStyle = FormBorderStyle.SizableToolWindow; + form.SizeGripStyle = SizeGripStyle.Show; + form.WindowState = FormWindowState.Maximized; + form.Show(); + //form.Refresh(); + // form.ResumeLayout(false); + //f.Focus(); + } + private void CreateNewChild(Type form) + { + Form f = (Form)Activator.CreateInstance(form); + f.FormClosed += new FormClosedEventHandler(base.MdiChildClosed); + f.VisibleChanged += new EventHandler(base.MdiChildVisibleChange); + f.MdiParent = this; + //f.BackColor = Color.White; + f.FormBorderStyle = FormBorderStyle.SizableToolWindow; + f.SizeGripStyle = SizeGripStyle.Show; + f.WindowState = FormWindowState.Maximized; + f.Show(); + //f.Focus(); + } + + MdiClient _mdiClient; + private int PanelTopHeight + { + get + { + return TopPanel == null ? 0 : TopPanel.Height; + } + + } + + private void NewFormClick(object sender, EventArgs e) + { + // CreateNewChild(); + } + /// + /// 至少保留一个子窗体 + /// + public bool AleastOneChild { get; set; } = true; + private void ChildFormClose(object sender, EventArgs e) + { + if (sender is Form f) + { + if (AleastOneChild) + { + if (this.GetCurrentMdiChildren().Count == 1) { return; } + } + f.Close(); + } + this.Invalidate(); + } + private MdiClient FindMdiClient() + { + MdiClient mdi = null; + foreach (Control c in Controls) + { + if ((mdi = c as MdiClient) != null) + { + break; + } + } + return mdi; + } + private void SetMdiBarLocation() + { + Padding newMargin = Padding.Empty; + //if (WindowState == FormWindowState.Maximized) + // newMargin = new Padding(BorderWidth, BorderWidth, BorderWidth, 0); + //else + //PnlMenu.Top = BorderWidth + base.XTheme.CaptionHeight; + int left_bar_width = 0; + if (LeftPanel != null) { left_bar_width = LeftPanel.Width; } + newMargin = new Padding(BorderWidth + left_bar_width, BorderWidth + base.XTheme.CaptionHeight + PanelTopHeight, BorderWidth, 0); + if (base.XTheme.Mdi_BarMargin != newMargin) + { + base.XTheme.Mdi_BarMargin = newMargin; + Invalidate(); + } + } + private void SetPanelTopLocation(Panel PnlTop) + { + //Point newLocation = new Point(base.MdiBarBounds.Left, base.XTheme.CaptionHeight + BorderWidth); + //var size = new Size(base.MdiBarBounds.Width, PanelTopHeight); + //if (PnlTop != null) + //{ + // //PnlTop.Anchor = AnchorStyles.None; + // PnlTop.Location = newLocation; + // PnlTop.Size = size; + // //PnlTop.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; + //} + } + private void SetFormItemLocation(Panel PnlTop) + { + if (DesignMode) { return; } + SetMdiBarLocation(); + SetPanelTopLocation(PnlTop); + SetMdiClientLocation(PnlTop); + } + private void SetMdiClientLocation(Panel PnlTop) + { + if (_mdiClient == null) + return; + int left_bar_width = 0; + if (LeftPanel != null) { left_bar_width = LeftPanel.Width; } + Point newLocation = new Point(BorderWidth, base.XTheme.CaptionHeight + base.XTheme.Mdi_TabHeight); + var size = new Size(ClientRectangle.Width - BorderWidth - BorderWidth, ClientRectangle.Height - base.XTheme.CaptionHeight - base.XTheme.Mdi_TabHeight - BorderWidth); + if (PnlTop != null) + { + newLocation = new Point(PnlTop.Left + left_bar_width, PnlTop.Bottom + base.XTheme.Mdi_TabHeight); + if (_mdiClient.Location == newLocation) + return; + + int height = base.Height - newLocation.Y - BorderWidth - BorderWidth; + + size = new Size(PnlTop.Width - left_bar_width, height); + } + _mdiClient.Anchor = AnchorStyles.None; + _mdiClient.Location = newLocation; + _mdiClient.Size = size; + _mdiClient.Anchor = + AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + } + #endregion + + private void SkinMdiForm_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.resx b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.resx similarity index 97% rename from Source/Itrycn_Project2/SkinForms/SkinMdiForm.resx rename to Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.resx index 29dcb1b..1af7de1 100644 --- a/Source/Itrycn_Project2/SkinForms/SkinMdiForm.resx +++ b/Source/Itrycn_Project2/Public/SkinForms/SkinMdiForm.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Source/Itrycn_Project2/SkinForms/ThemeForm.cs b/Source/Itrycn_Project2/Public/SkinForms/ThemeForm.cs similarity index 97% rename from Source/Itrycn_Project2/SkinForms/ThemeForm.cs rename to Source/Itrycn_Project2/Public/SkinForms/ThemeForm.cs index 462a2a5..ceb2ff1 100644 --- a/Source/Itrycn_Project2/SkinForms/ThemeForm.cs +++ b/Source/Itrycn_Project2/Public/SkinForms/ThemeForm.cs @@ -1,77 +1,77 @@ -using MGdu.WinFormUI; -using MGdu.WinFormUI.MyGraphics; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace RySkins -{ - - public class ThemeForm : ThemeFormBase - { - /// - /// DevExpress风格皮肤 - /// - public ThemeForm() - : base() - { - ThemeName = "Default"; - ryControls.Skin.SkinCommon.ButtonSkin.BackColor = Color.MidnightBlue; - ryControls.Skin.SkinCommon.ButtonSkin.ColorGradient = true; - IconSize = new Size(16, 16); - IconLeftMargin = 8; - BorderWidth = 1; - FormBorderInnerColor = Color.Gray; - FormBorderOutterColor = Color.Gray; - CaptionHeight = 26; - CaptionBackColorTop = Color.Gray; - CaptionBackColorBottom = Color.SlateGray; - FormBackColor = Color.FromArgb(242, 242, 242); - CaptionTextColor = Color.White; - Mdi_UseMsgToActivateChild = true; - // shadow - SideResizeWidth = 3; - ShowShadow = false; - ShadowWidth = 4; - ShadowColor = Color.Gray; - ShadowAValueDark = 50; - ShadowAValueLight = 0; - UseShadowToResize = true; - base.Mdi_TabActiveBackColorTop = Color.White; - base.Mdi_TabActiveBackColorBottom = Color.FromArgb(248, 248, 248); - base.Mdi_TabDeactiveBackColorTop = Color.FromArgb(230, 230, 230); - base.Mdi_TabDeactiveBackColorBottom = Color.FromArgb(230, 230, 230); - //base.Mdi_TabDeactiveForeColor = Color.FromArgb(244, 246, 247); - CloseBoxSize = MaxBoxSize = MinBoxSize = new Size(30, 23); - ControlBoxOffset = new Point(0, 0); - ControlBoxSpace = 0; - RoundedStyle = RoundStyle.All; - Radius = 5; - ButtonColorTable closeTable = new ButtonColorTable(); - closeTable.ForeColorNormal = closeTable.ForeColorHover - = closeTable.ForeColorPressed = Color.FromArgb(249, 240, 223); - closeTable.BackColorHover = Color.FromArgb(217, 71, 71); - closeTable.BackColorPressed = Color.FromArgb(188, 52, 52); - CloseBoxColor = closeTable; - - ButtonColorTable minTable = new ButtonColorTable(); - minTable.ForeColorNormal = minTable.ForeColorHover - = minTable.ForeColorPressed = Color.FromArgb(249, 240, 223); - minTable.BackColorHover = Color.FromArgb(67, 139, 221); - minTable.BackColorPressed = Color.FromArgb(50, 125, 210); - MinBoxColor = MaxBoxColor = minTable; - base.Mdi_TabMinWidth = 70; - base.Mdi_TabNormalWidth = 100; - base.Mdi_TabMaxWidth = 145; - base.Mdi_ShowNewTabBtn = false; - base.Mdi_AlwaysShowListAllBtn = false; - base.Mdi_BarBottomRegionHeight = 0; - base.Mdi_ShowTabCloseIcon = false; - base.Mdi_TabShowBorder = false; - base.Mdi_BarMargin = new Padding(6, 0, 100, 0); - } - } -} +using MGdu.WinFormUI; +using MGdu.WinFormUI.MyGraphics; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace RySkins +{ + + public class ThemeForm : ThemeFormBase + { + /// + /// DevExpress风格皮肤 + /// + public ThemeForm() + : base() + { + ThemeName = "Default"; + ryControls.Skin.SkinCommon.ButtonSkin.BackColor = Color.MidnightBlue; + ryControls.Skin.SkinCommon.ButtonSkin.ColorGradient = true; + IconSize = new Size(16, 16); + IconLeftMargin = 8; + BorderWidth = 1; + FormBorderInnerColor = Color.Gray; + FormBorderOutterColor = Color.Gray; + CaptionHeight = 26; + CaptionBackColorTop = Color.Gray; + CaptionBackColorBottom = Color.SlateGray; + FormBackColor = Color.FromArgb(242, 242, 242); + CaptionTextColor = Color.White; + Mdi_UseMsgToActivateChild = true; + // shadow + SideResizeWidth = 3; + ShowShadow = false; + ShadowWidth = 4; + ShadowColor = Color.Gray; + ShadowAValueDark = 50; + ShadowAValueLight = 0; + UseShadowToResize = true; + base.Mdi_TabActiveBackColorTop = Color.White; + base.Mdi_TabActiveBackColorBottom = Color.FromArgb(248, 248, 248); + base.Mdi_TabDeactiveBackColorTop = Color.FromArgb(230, 230, 230); + base.Mdi_TabDeactiveBackColorBottom = Color.FromArgb(230, 230, 230); + //base.Mdi_TabDeactiveForeColor = Color.FromArgb(244, 246, 247); + CloseBoxSize = MaxBoxSize = MinBoxSize = new Size(30, 23); + ControlBoxOffset = new Point(0, 0); + ControlBoxSpace = 0; + RoundedStyle = RoundStyle.All; + Radius = 5; + ButtonColorTable closeTable = new ButtonColorTable(); + closeTable.ForeColorNormal = closeTable.ForeColorHover + = closeTable.ForeColorPressed = Color.FromArgb(249, 240, 223); + closeTable.BackColorHover = Color.FromArgb(217, 71, 71); + closeTable.BackColorPressed = Color.FromArgb(188, 52, 52); + CloseBoxColor = closeTable; + + ButtonColorTable minTable = new ButtonColorTable(); + minTable.ForeColorNormal = minTable.ForeColorHover + = minTable.ForeColorPressed = Color.FromArgb(249, 240, 223); + minTable.BackColorHover = Color.FromArgb(67, 139, 221); + minTable.BackColorPressed = Color.FromArgb(50, 125, 210); + MinBoxColor = MaxBoxColor = minTable; + base.Mdi_TabMinWidth = 70; + base.Mdi_TabNormalWidth = 100; + base.Mdi_TabMaxWidth = 145; + base.Mdi_ShowNewTabBtn = false; + base.Mdi_AlwaysShowListAllBtn = false; + base.Mdi_BarBottomRegionHeight = 0; + base.Mdi_ShowTabCloseIcon = false; + base.Mdi_TabShowBorder = false; + base.Mdi_BarMargin = new Padding(6, 0, 100, 0); + } + } +} diff --git a/Source/Itrycn_Project2/SkinForms/SKinForm.resx b/Source/Itrycn_Project2/SkinForms/SKinForm.resx deleted file mode 100644 index 29dcb1b..0000000 --- a/Source/Itrycn_Project2/SkinForms/SKinForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Source/Itrycn_Project2/app.config b/Source/Itrycn_Project2/app.config index 03e1793..01399a1 100644 --- a/Source/Itrycn_Project2/app.config +++ b/Source/Itrycn_Project2/app.config @@ -1,6 +1,6 @@ - + diff --git a/Source/Itrycn_Project2/clsForm.cs b/Source/Itrycn_Project2/clsForm.cs deleted file mode 100644 index 83cf0be..0000000 --- a/Source/Itrycn_Project2/clsForm.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Windows.Forms; - -namespace Itrycn -{ - public static class MDIClientSupport - { - [DllImport("user32.dll")] - private static extern int GetWindowLong(IntPtr hWnd, int nIndex); - [DllImport("user32.dll")] - private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); - [DllImport("user32.dll", ExactSpelling = true)] - private static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); - private const int GWL_EXSTYLE = -20; - private const int WS_EX_CLIENTEDGE = 0x200; - private const uint SWP_NOSIZE = 0x0001; - private const uint SWP_NOMOVE = 0x0002; - private const uint SWP_NOZORDER = 0x0004; - private const uint SWP_NOREDRAW = 0x0008; - private const uint SWP_NOACTIVATE = 0x0010; - private const uint SWP_FRAMECHANGED = 0x0020; - private const uint SWP_SHOWWINDOW = 0x0040; - private const uint SWP_HIDEWINDOW = 0x0080; - private const uint SWP_NOCOPYBITS = 0x0100; - private const uint SWP_NOOWNERZORDER = 0x0200; - private const uint SWP_NOSENDCHANGING = 0x0400; - public static bool SetBevel(this Form form, bool show) - { - foreach (Control c in form.Controls) - { - switch (c) - { - case MdiClient client: - if (client != null) - { - int windowLong = GetWindowLong(c.Handle, GWL_EXSTYLE); - if (show) - { - windowLong |= WS_EX_CLIENTEDGE; - } - else - { - windowLong &= ~WS_EX_CLIENTEDGE; - } - SetWindowLong(c.Handle, GWL_EXSTYLE, windowLong); - // Update the non-client area. - SetWindowPos(client.Handle, IntPtr.Zero, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | - SWP_NOOWNERZORDER | SWP_FRAMECHANGED); - return true; - } - break; - } - } - return false; - } - } -} diff --git a/Source/Itrycn_Project2/frmSetting.cs b/Source/Itrycn_Project2/frmSetting.cs index 706741e..ddbe32d 100644 --- a/Source/Itrycn_Project2/frmSetting.cs +++ b/Source/Itrycn_Project2/frmSetting.cs @@ -1,4 +1,5 @@ -using RaUI.UI.LayeredForm; +using Config; +using RaUI.UI.LayeredForm; using System; using System.Collections.Generic; using System.ComponentModel; @@ -34,7 +35,7 @@ namespace Itrycn_Project2 ryCommon.RyRegedit.SetAutoRun(ChkAutoRun.Checked, Soft_ConstInfo.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" "+ Soft_ConstInfo.Soft_Pram); DialogResult = DialogResult.OK; } - ryControls.RySetting mySetting = new ryControls.RySetting(); + private ryControls.RySetting mySetting = new ryControls.RySetting(); private void FrmSetting_Load(object sender, EventArgs e) { mySetting.FilePath = Soft_ConstInfo.UserDataFolder + "\\Setting.xml"; diff --git a/Source/Itrycn_Project2/结构说明.txt b/Source/Itrycn_Project2/结构说明.txt new file mode 100644 index 0000000..68ee4dd --- /dev/null +++ b/Source/Itrycn_Project2/结构说明.txt @@ -0,0 +1,2 @@ + +Public文件夹:表示公共部分,建议不要修改,后续如果存在新版项目底层,可以直接复制替换。 \ No newline at end of file diff --git a/Source/OnLineUpgradeConfig/Config/clsPram.cs b/Source/OnLineUpgradeConfig/Config/clsPram.cs index 7099e26..f0b121e 100644 --- a/Source/OnLineUpgradeConfig/Config/clsPram.cs +++ b/Source/OnLineUpgradeConfig/Config/clsPram.cs @@ -15,7 +15,7 @@ namespace Config /// /// sql连接字符串 /// - public static string SQLConnStr = "Data Source=192.168.1.193;Initial Catalog=qoData;Persist Security Info=False;User ID=sa;Password=DYdy123;pooling=false"; + public static string SQLConnStr { get { return "Data Source="+DyAPI.API.Static_Config.MsSQL_Host+";Initial Catalog=qoData;Persist Security Info=False;User ID=sa;Password=DYdy123;pooling=false"; } } //public static string SQLConnStr = "Data Source=192.168.1.191;Initial Catalog=qoData;Persist Security Info=False;User ID=sa;Password=123"; public static string HeadUrl = "http://192.168.1.191/headPic/"; public static string FileUrl = "http://192.168.1.191/UploadFiles/"; diff --git a/Source/OnLineUpgradeConfig/frmUpdateFile.cs b/Source/OnLineUpgradeConfig/frmUpdateFile.cs index 4520489..c02a8a5 100644 --- a/Source/OnLineUpgradeConfig/frmUpdateFile.cs +++ b/Source/OnLineUpgradeConfig/frmUpdateFile.cs @@ -146,6 +146,7 @@ namespace LiveUpdate } private void frmUpdateFile_Load(object sender, EventArgs e) { + DyAPI.API.Static_Config.InitConfig(); //var aa= ProcessExt.GetPath(3424); UpdateFilesDir = Application.StartupPath + "\\"; GetSetting(); @@ -238,9 +239,16 @@ namespace LiveUpdate switch (MessageBox.Show("是否要马上向选择的用户进行定向推送?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)) { case DialogResult.Yes: + var ProcUpdateUrl = cmbProcUpdateUrl.Text; + var iPos = ProcUpdateUrl.LastIndexOf("/"); + var root_url = "http://192.168.1.191/OnlineUpgrade"; + if (iPos > 0) + { + root_url = ProcUpdateUrl.Substring(0, iPos); + } QuickWeb web = new QuickWeb(); - web.Post("http://gs2.dangyou.com:1881/process", "a=send&touser=" +web.UrlEncode(user.UserList.Replace(",",";")) + "&type="+ ryMessageConst.MsType.MustUpdate + - "&msg=" + web.UrlEncode("http://192.168.1.191/OnlineUpgrade/" + System.IO.Path.GetFileName(update_fullpath))); + web.Post(DyAPI.API.Static_Config.WinServerSite+ "/process", "a=send&touser=" +web.UrlEncode(user.UserList.Replace(",",";")) + "&type="+ ryMessageConst.MsType.MustUpdate + + "&msg=" + web.UrlEncode(root_url+"/" + System.IO.Path.GetFileName(update_fullpath))); break; } } diff --git a/Source/RaUI/Common/FileFuns/Hosts.cs b/Source/RaUI/Common/FileFuns/Hosts.cs index 582a7be..7dd804d 100644 --- a/Source/RaUI/Common/FileFuns/Hosts.cs +++ b/Source/RaUI/Common/FileFuns/Hosts.cs @@ -11,6 +11,7 @@ namespace ryCommon ///
public static class Hosts { + private static readonly string Paddings = " "; /// /// 获取并转换hosts内容 /// @@ -144,7 +145,7 @@ namespace ryCommon } else { - sys_content += sys_list[i].IP + "\t" + sys_list[i].Domain; + sys_content += sys_list[i].IP + Paddings + sys_list[i].Domain; } } target_list = sys_content; @@ -183,7 +184,7 @@ namespace ryCommon /// 0表示无需新增,-1表示添加失败,1表示追加成功 public static int AddHosts(HostInfo item) { - return AddHosts(item.IP + "\t" + item.Domain); + return AddHosts(item.IP + Paddings + item.Domain); } /// /// 追加内容到hosts里 @@ -193,7 +194,7 @@ namespace ryCommon /// 0表示无需新增,-1表示添加失败,1表示追加成功 public static int AddHosts(string ip,string domain) { - return AddHosts(ip + "\t" + domain); + return AddHosts(ip + Paddings + domain); } /// /// 从hosts文件里删除内容 @@ -229,7 +230,7 @@ namespace ryCommon } else { - text += from_list[i].IP+"\t"+ from_list[i].Domain; + text += from_list[i].IP+ Paddings + from_list[i].Domain; } } if (IsDel) diff --git a/Source/RaUI/Common/FileFuns/Pram.cs b/Source/RaUI/Common/FileFuns/Pram.cs index c7bcd57..92b196d 100644 --- a/Source/RaUI/Common/FileFuns/Pram.cs +++ b/Source/RaUI/Common/FileFuns/Pram.cs @@ -62,7 +62,11 @@ namespace ryCommon.Pram /// /// XML /// - XML + XML, + /// + /// Json + /// + Json } /// ///对象值 diff --git a/Source/RaUI/Common/FileFuns/RyImage.cs b/Source/RaUI/Common/FileFuns/RyImage.cs index fa15507..7af4de7 100644 --- a/Source/RaUI/Common/FileFuns/RyImage.cs +++ b/Source/RaUI/Common/FileFuns/RyImage.cs @@ -810,7 +810,10 @@ namespace ryCommon Bitmap bitmap = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(bitmap)) { - g.InterpolationMode = mode; + g.InterpolationMode = InterpolationMode.HighQualityBicubic; + g.CompositingQuality = CompositingQuality.HighQuality; + g.TextRenderingHint = TextRenderingHint.AntiAlias; + g.SmoothingMode= SmoothingMode.HighQuality; g.Clear(Color.Empty); g.DrawImage(i, new Rectangle(0, 0, width, height), new Rectangle(0, 0, i.Width, i.Height), GraphicsUnit.Pixel); } @@ -831,6 +834,9 @@ namespace ryCommon using (Graphics g = Graphics.FromImage(bitmap)) { g.InterpolationMode = InterpolationMode.HighQualityBicubic; + g.CompositingQuality= CompositingQuality.HighQuality; + g.TextRenderingHint = TextRenderingHint.AntiAlias; + g.SmoothingMode = SmoothingMode.HighQuality; g.Clear(Color.Empty); g.DrawImage(i, new Rectangle(0, 0, width, height), new Rectangle(0, 0, i.Width, i.Height), GraphicsUnit.Pixel); } @@ -882,10 +888,17 @@ namespace ryCommon /// 操作失败 private static System.Drawing.Image CropOrFill(this System.Drawing.Image image, int width, int height, Color background, InterpolationMode mode) { + if (Math.Abs((image.Width/(float)image.Height)-(width/(float)height))<=0.01) + { + return (Image)image.Clone(); + } Bitmap bitmap = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(bitmap)) { g.InterpolationMode = mode; + g.CompositingQuality = CompositingQuality.HighQuality; + g.TextRenderingHint = TextRenderingHint.AntiAlias; + g.SmoothingMode = SmoothingMode.HighQuality; int srcX = GetSrc(image.Width, width); int srcY = GetSrc(image.Height, height); g.Clear(background); diff --git a/Source/RaUI/Common/FileFuns/RySetting.cs b/Source/RaUI/Common/FileFuns/RySetting.cs index c39cf69..23b5c9e 100644 --- a/Source/RaUI/Common/FileFuns/RySetting.cs +++ b/Source/RaUI/Common/FileFuns/RySetting.cs @@ -1,4 +1,5 @@ -using ryCommon.Pram; +using Newtonsoft.Json.Linq; +using ryCommon.Pram; using ryControls; using System; using System.Collections.Generic; @@ -11,6 +12,7 @@ namespace ryCommon /// /// 设置管理类,快速添加设置。 /// + [Obsolete("当前类已经过期")] public class RySetting { /// @@ -34,11 +36,26 @@ namespace ryCommon /// /// 配置存储路径 /// - public string FilePath = ""; + public string FilePath { get; set; } = ""; /// /// 设置XML内容 /// - public string SettingXML = ""; + [Obsolete("当前属性已过期,请使用SettingContent代替")] + public string SettingXML + { + get + { + return SettingContent; + } + set + { + SettingContent = value; + } + } + /// + /// 获取/设置配置的内容(适用于xml和json) + /// + public string SettingContent { get; set; } = ""; private string Section = "Setting"; private List list = new List(); /// @@ -47,19 +64,19 @@ namespace ryCommon /// /// /// - public int Add(string _id,Control ctl) + public int Add(string _id, Control ctl) { - return Add(_id, ctl, CValueType.Default,""); + return Add(_id, ctl, CValueType.Default, ""); } - /// - /// 设置值 - /// - /// - /// - /// - public int Add(string _id,string value) + /// + /// 设置值 + /// + /// + /// + /// + public int Add(string _id, string value) { - return Add(_id, null, CValueType.Default,value); + return Add(_id, null, CValueType.Default, value); } /// /// 添加控件 @@ -69,10 +86,10 @@ namespace ryCommon /// /// /// - public int Add(string _id, Control ctl,CValueType valuetype,object _defValue) + public int Add(string _id, Control ctl, CValueType valuetype, object _defValue) { - if(_id.ToLower()== Section.ToLower()) { return -1; } - list.Add(new Control_Info() { id = _id, control = ctl, value_type= valuetype, defValue= _defValue }); + if (_id.ToLower() == Section.ToLower()) { return -1; } + list.Add(new Control_Info() { id = _id, control = ctl, value_type = valuetype, defValue = _defValue }); return 1; } /// @@ -147,25 +164,25 @@ namespace ryCommon public void Read() { string filepath = FilePath; - if (FileType==SettingType.XML) + if (FileType == SettingType.XML) { ryCommon.Storage myXML = new Storage(); if (filepath == "") { - myXML.LoadFromXMLText(SettingXML); + myXML.LoadFromXMLText(SettingContent); } else { myXML.LoadFromFile(filepath); } myXML.SelectNode2("id", Section); - for(int i=0;i value && value >= 0) + { + cbb.SelectedIndex = value; + } + else + { + if (cbb.Items.Count > def_value && def_value >= 0) + cbb.SelectedIndex = def_value; + else + cbb.SelectedIndex = 0; + } + } + else if (item.value_type == CValueType.ItemText) + { + try + { + cbb.Text = myJson.GetJsonValue(item.id, item.defValue.ToString()); + } + catch { cbb.Text = item.defValue.ToString(); } + } + else if (item.value_type == CValueType.ObjectItem) + { + #region ObjectItem + string _id = myJson.GetJsonValue(item.id, item.defValue.ToString()); + bool haveRecord = false; + for (int m = 0; m < cbb.Items.Count; m++) + { + switch (cbb.Items[m]) + { + case ObjectItem c_item: + if (c_item.Id == _id) + { + cbb.SelectedIndex = m; + haveRecord = true; + break; + } + break; + } + } + if (!haveRecord) + { + cbb.SelectedIndex = 0; + } + #endregion + } + break; + #endregion + default: + var type = item.control.GetType().Name; + if (type == "HotkeyTextBox") + { + dynamic cc = item.control; + cc.HotKey = myJson.GetJsonValue(item.id, item.defValue.ToString()); + } + else + { + item.control.Text = myJson.GetJsonValue(item.id, item.defValue.ToString()); + } + break; + } + } + } } /// /// 保存配置 @@ -358,7 +482,7 @@ namespace ryCommon ryCommon.Storage myXML = new Storage(); if (filepath == "") { - myXML.LoadFromXMLText(SettingXML); + myXML.LoadFromXMLText(SettingContent); } else { @@ -420,11 +544,8 @@ namespace ryCommon break; } } - if (filepath == "") - { - SettingXML=myXML.XMLText; - } - else + SettingContent = myXML.XMLText; + if (filepath.Length > 0) { myXML.SaveToFile(filepath); } @@ -489,6 +610,107 @@ namespace ryCommon } } } + else if (FileType == SettingType.Json) + { + JObject myJson = new JObject(); + try + { + if (filepath == "") + { + myJson = JObject.Parse(SettingContent); + } + else + { + myJson = JObject.Parse(RyFiles.ReadAllText(filepath)); + } + } + catch { } + for (int i = 0; i < list.Count; i++) + { + Control_Info item = list[i]; + switch (item.control) + { + case CheckBox chk: + myJson[item.id] = chk.Checked; + break; + case TextBox txt: + myJson[item.id] = txt.Text; + break; + case NumericUpDown num: + myJson[item.id] = num.Value; + break; + case DateTimePicker dt_picker: + myJson[item.id] = RyDate.DateTimeToUnixTime(dt_picker.Value).ToString(); + break; + case ComboBox cbb: + #region ComboBox + if (item.value_type == CValueType.ItemIndex || item.value_type == CValueType.Default) + { + myJson[item.id] = cbb.SelectedIndex; + } + else if (item.value_type == CValueType.ItemText) + { + myJson[item.id] = cbb.Text; + } + else if (item.value_type == CValueType.ObjectItem) + { + switch (cbb.SelectedItem) + { + case ObjectItem c_item: + myJson[item.id] = c_item.Id; + break; + } + } + break; + #endregion + case null: + myJson[item.id] = item.defValue.ToString(); + break; + default: + var type = item.control.GetType().Name; + if (type == "HotkeyTextBox") + { + dynamic cc = item.control; + myJson[item.id] = cc.HotKey; + } + else + { + myJson[item.id] = item.control.Text; + } + break; + } + } + SettingContent = myJson.ToString(); + if (filepath.Length > 0) + { + RyFiles.WriteAllText(filepath, myJson.ToString()); + } + } + } + /// + /// 保存到内存中的对象 + /// + private object MemObject { get; set; } = null; + /// + /// 读取内容到内存中 + /// + public void ReadToMem() + { + string filepath = FilePath; + if (FileType == SettingType.XML) + { + ryCommon.Storage myXML = new Storage(); + if (filepath.Length == 0) + { + myXML.LoadFromXMLText(SettingContent); + } + else + { + myXML.LoadFromFile(filepath); + } + myXML.SelectNode2("id", Section); + MemObject = myXML; + } } } } diff --git a/Source/RaUI/Common/FileFuns/RySoft.cs b/Source/RaUI/Common/FileFuns/RySoft.cs index b037e7f..63a02ef 100644 --- a/Source/RaUI/Common/FileFuns/RySoft.cs +++ b/Source/RaUI/Common/FileFuns/RySoft.cs @@ -85,8 +85,8 @@ namespace ryCommon { if (oldVer == newVer) { return 0; } if(oldVer==null || newVer == null) { return -1000; } - var _oldVer = oldVer; - var _newVer = newVer; + var _oldVer = oldVer.Replace("-","."); + var _newVer = newVer.Replace("-", "."); if (_oldVer.StartsWith("v", StringComparison.OrdinalIgnoreCase)) { _oldVer = _oldVer.Substring(1); } if (_newVer.StartsWith("v", StringComparison.OrdinalIgnoreCase)) { _newVer = _newVer.Substring(1); } //var have_ts = false; @@ -132,24 +132,63 @@ namespace ryCommon public static string GetVer(string text) { if (string.IsNullOrEmpty(text)) { return ""; } - var end=text.Length-1; - if(text.IndexOfEx("patch")>0) + var m_text = text; + var m_ver = ""; + List ver_list = new List(); + while(true) { - end = text.LastIndexOf("patch",StringComparison.OrdinalIgnoreCase); - } - var start = false; - var ver = ""; - for (int i = end; i >= 0; i--) - { - var word = text[i]; - if (!start && word >= '0' && word <= '9') { ver = word.ToString(); start = true; } - else if (start) + var mver = get_ver(m_text, out var m_iPos); + if (mver.Length > 0) { - if ((word >= '0' && word <= '9') || word == '.') { ver = word.ToString() + ver; } - else { break; } + ver_list.Add(mver); + } + else + { + break; + } + if(m_iPos>0) + { + m_text = m_text.Substring(0, m_iPos); + } + else + { + break; } } - return ver; + if(ver_list.Count==1) + { + return ver_list[0]; + } + else if (ver_list.Count>1) + { + if (ver_list[1].IndexOfEx(".")>0) + { + return ver_list[1]+"."+ver_list[0]; + } + else + { + return ver_list[0]; + } + } + return m_ver; + string get_ver(string txt,out int iPos) + { + iPos = -1; + var end = txt.Length - 1; + var start = false; + var ver = ""; + for (int i = end; i >= 0; i--) + { + var word = txt[i]; + if (!start && word >= '0' && word <= '9') { ver = word.ToString(); start = true; } + else if (start) + { + if ((word >= '0' && word <= '9') || word == '.') { ver = word.ToString() + ver; } + else { iPos = i; break; } + } + } + return ver; + } } /// /// 比较版本号 diff --git a/Source/RaUI/Common/FileFuns/SuperFileSearch.cs b/Source/RaUI/Common/FileFuns/SuperFileSearch.cs new file mode 100644 index 0000000..2348c0d --- /dev/null +++ b/Source/RaUI/Common/FileFuns/SuperFileSearch.cs @@ -0,0 +1,246 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ryCommon +{ + /// + /// 超级文件搜索 + /// + public class SuperFileSearch + { + /// + /// 取消选项 + /// + public enum CancelActions + { + /// + /// 不取消,继续 + /// + No //不取消,继续 + , + /// + /// 只取消当前目录 + /// + CurrentDirectory //只取消当前目录 + , + /// + /// 取消后面的所有搜索 + /// + AllDirectories //取消后面的所有搜索 + } + private CancelActions _Cancel; //取消 + /// + /// 是否取消 + /// + public CancelActions Cancel + { + get + { + return _Cancel; + } + set + { + _Cancel = value; + } + } + /// + /// + /// + /// + /// + /// 是否将该文件添加到结果 + + public delegate void SearchFileHandler(SuperFileSearch sender,FileInfo Fileinfo,ref bool AddToResult); + /// + /// 搜索文件事件 + /// + public event SearchFileHandler OnSearchFile; + /// + /// + /// + /// + /// + /// + public delegate void SearchDirHandler(SuperFileSearch sender, DirectoryInfo DirInfo,ref CancelActions Cancel); + /// + /// 搜索目录事件 + /// + public event SearchDirHandler OnSearchDir; + /// + /// + /// + /// + /// + /// + public delegate void SearchErrorHandler(SuperFileSearch sender,int id, Exception ex); + /// + /// 错误事件 + /// + public event SearchErrorHandler OnError; + /// + /// 是否查找搜索子目录 + /// + public bool GetSubFolder { get; set; } = true; + /// + /// 查找发现的文件列表 + /// + public List ResultFiles = []; + /// + /// 查找发现的目录列表 + /// + public List ResultDirs = []; + /// + /// 结果对应的文件数量 + /// + public int ResultFilesCount + { + get {return ResultFiles.Count; } + } + /// + /// 结果对应的目录数量 + /// + public int ResultDirsCount + { + get { return ResultDirs.Count; } + } + /// + /// 结果对应的文件+目录数量 + /// + public int ResultCount + { + get { return ResultFiles.Count+ResultDirs.Count; } + } + /// + /// + /// + public object Tag { get; set; } = null; + /// + /// 搜索查找文件 + /// + /// + /// + public List Search(string SearchPath, string SearchExts) + { + return Search(new List() { SearchPath }, SearchExts); + } + /// + /// 搜索查找文件 + /// + /// + /// + public List Search(List SearchPaths, string SearchExts) + { + ResultFiles.Clear(); + ResultDirs.Clear(); + _Cancel = CancelActions.No; + List list_files = []; + for (int i = 0; i < SearchPaths.Count; i++) + { + list_files.AddRange(GetFiles(SearchPaths[i],SearchExts, GetSubFolder)); + } + ResultFiles.AddRange(list_files); + return list_files; + } + /// + /// 获取指定文件夹下的文件列表,支持多个扩展名获取,支持获取子文件夹的数据 + /// + /// + /// + /// 是否获取子文件夹数据 + /// + private List GetFiles(string folder, string exts,bool GetSubFolder) + { + if(GetSubFolder) + { + var result= GetFiles(folder, exts); + try + { + DirectoryInfo dir = new(folder); + var dirs = dir.GetDirectories(); + if (dirs != null && dirs.Length > 0) + { + for (int i = 0; i < dirs.Length; i++) + { + if (_Cancel == CancelActions.AllDirectories) { break; } + if (OnSearchDir != null) + { + CancelActions cancel = CancelActions.No; + OnSearchDir?.Invoke(this, dirs[i], ref cancel); + if (cancel == CancelActions.CurrentDirectory) { continue; } + else if (cancel == CancelActions.AllDirectories) { Cancel = CancelActions.AllDirectories; break; } + } + ResultDirs.Add(dirs[i]); + result.AddRange(GetFiles(dirs[i].FullName, exts, true)); + } + } + } + catch (Exception ex) + { + OnError?.Invoke(this,1000,ex); + } + return result; + } + else + { + return GetFiles(folder,exts); + } + } + /// + /// 获取指定文件夹下的文件列表,支持多个扩展名获取(子文件夹里的文件不会去获取)。如果 + /// 文件夹不存在,则获取空列表(本函数不会返回null值) + /// + /// 要获取的文件夹路径 + /// 要获取的扩展名列表(例如:*.mp3;*.wav) + /// + private List GetFiles(string folder, string exts) + { + if (!System.IO.Directory.Exists(folder)) + { + return []; + } + else + { + var result = new List(); + var ext_split = exts.Split(';'); + for (int i = 0; i < ext_split.Length; i++) + { + if (ext_split[i].Length == 0) { continue; } + try + { + DirectoryInfo dir = new(folder); + var files = dir.GetFiles(ext_split[i]); + if (files != null && files.Length > 0) + { + if (OnSearchFile != null) + { + for (int j = 0; j < files.Length; j++) + { + if (_Cancel == CancelActions.AllDirectories) { break; } + var AddToResult = true; + OnSearchFile?.Invoke(this, files[j], ref AddToResult); + if (AddToResult) + { + result.Add(files[j]); + } + } + } + else + { + result.AddRange(files); + } + } + } + catch(Exception ex) { + OnError?.Invoke(this,1001, ex); + } + } + return result; + } + } + } +} diff --git a/Source/RaUI/Common/HardWare/HardWare.cs b/Source/RaUI/Common/HardWare/HardWare.cs index 9b2582b..e733923 100644 --- a/Source/RaUI/Common/HardWare/HardWare.cs +++ b/Source/RaUI/Common/HardWare/HardWare.cs @@ -84,25 +84,43 @@ namespace RyHardWare var ddr = ObjToStr(item["PartNumber"].Value); if (ddr.IndexOfEx("DDR3") >= 0) { ddr = "DDR3"; } else if (ddr.IndexOfEx("DDR4") >= 0) { ddr = "DDR4"; } + else if (Manufacturer == "Corsair") + { + var _s = ddr.GetStr("GD", "C"); + if (_s.IsInt()) + { + Speed = _s.ToInt(); + } + if (ddr.StartsWith("CM5")) { ddr = "DDR5"; } + else if (ddr.StartsWith("CM4")) { ddr = "DDR4"; } + else if (ddr.StartsWith("CM3")) { ddr = "DDR3"; } + } else if (ddr.IndexOfEx("D4") >= 0) { ddr = "DDR4"; } else if (ddr.IndexOfEx("D3") >= 0) { ddr = "DDR3"; } - else if (Speed == 266 || Speed == 333 || Speed == 400) + if (!ddr.Length.IsInRange(3,4)) { - ddr = "DDR"; + if (Speed == 266 || Speed == 333 || Speed == 400) + { + ddr = "DDR"; + } + else if (Speed == 533 || Speed == 667 || Speed == 800) + { + ddr = "DDR2"; + } + else if (Speed == 1066 || Speed == 1333 || Speed == 1600) + { + ddr = "DDR3"; + } + else if (Speed == 2400 || Speed == 2133 || Speed == 2666 || Speed == 2667 || Speed == 3200) + { + ddr = "DDR4"; + } + else if (Speed >= 4000) + { + ddr = "DDR5"; + } + else { ddr = "未知"; } } - else if (Speed == 533 || Speed == 667 || Speed == 800) - { - ddr = "DDR2"; - } - else if (Speed == 1066 || Speed == 1333 || Speed == 1600) - { - ddr = "DDR3"; - } - else if (Speed == 2400 || Speed == 2133 || Speed == 2666 || Speed == 2667 || Speed == 3200) - { - ddr = "DDR4"; - } - else { ddr = "未知"; } if (Manufacturer == "Kingston") { Manufacturer = "金士顿"; } else if (Manufacturer == "A-DATA Technology") { Manufacturer = "威刚"; } else { Manufacturer = GetManufacturer(Manufacturer); } @@ -275,6 +293,72 @@ namespace RyHardWare } return result; } + private static string BytesToString(byte[] bytes) + { + if (bytes == null) return ""; + try + { + return System.Text.Encoding.UTF8.GetString(bytes).Replace("\0", "").Trim(); + } + catch + { + return ""; + } + } + /// + /// + /// + /// + /// + /// + public static List> GetWMI(string scope, string sql) + { + var list_result = new List>(); + try + { + System.Management.ManagementObjectSearcher mos = scope.Length == 0 ? new System.Management.ManagementObjectSearcher(sql) : + new System.Management.ManagementObjectSearcher(scope, sql); + System.Management.ManagementObjectCollection.ManagementObjectEnumerator moe = mos.Get().GetEnumerator(); + //注意 + //Properties["Manufacturer"].Value 可能为Null,意味着没有厂商信息 + while (moe.MoveNext()) + { + Dictionary item_result = new Dictionary(); + foreach (var item in moe.Current.Properties) + { + if (item.Value != null) + { + if (item.Value is string[]) + { + var list = (string[])item.Value; + for (int i = 0; i < list.Length; i++) + { + item_result[item.Name+"_"+i] = list[i]; + } + } + else if (item.Value is UInt16[]) + { + var list = (UInt16[])item.Value; + var bytes = new byte[list.Length]; + for (int i = 0; i < list.Length; i++) + { + bytes[i] = (byte)list[i]; + //result += "\r\n" + item.Name + "=>数组" + i + "=>" + list[i]; + } + item_result[item.Name] = BytesToString(bytes); + } + else + { + item_result[item.Name] = item.Value.ToString(); + } + } + } + list_result.Add(item_result); + } + } + catch { } + return list_result; + } private static string GetManufacturer(string Manufacturer) { var ini_path = Application.StartupPath + "\\UserDb\\Manufacturer.ini"; @@ -390,15 +474,82 @@ namespace RyHardWare return GetMainHardware(false); } /// + /// 获取显示器的相关硬件ID + /// + /// + public static List GetMonitorPnpDeviceId() + { + List monitors = new List(); + var result = GetWMI("root\\WMI", "SELECT * FROM WmiMonitorID"); + for (int i = 0; i < result.Count; i++) + { + var item = result[i]; + var txt = ""; + var ManufacturerName = GetValue("ManufacturerName"); + var UserFriendlyName = GetValue("UserFriendlyName"); + var YearOfManufacture = GetValue("YearOfManufacture").ToInt(); + var WeekOfManufacture = GetValue("WeekOfManufacture").ToInt(); + if(ManufacturerName.Length>0 && UserFriendlyName.Length>0) + { + if (UserFriendlyName.StartsWith(ManufacturerName)) + { + txt = UserFriendlyName; + } + else + { + txt = ManufacturerName + " " + UserFriendlyName; + } + if(txt== "LIX RuiTian2310P") + { + txt = "联想瑞天23.8寸(2310P)"; + } + } + if (YearOfManufacture > 0 && WeekOfManufacture>0) { + var month = new DateTime(YearOfManufacture, 1, 1).AddDays(WeekOfManufacture*7).Month; + txt += "(" + YearOfManufacture + "年" + month + "月)"; + } + if(txt.Length>0) + { + monitors.Add(txt); + } + string GetValue(string name) + { + if(item.ContainsKey(name)) + { + return item[name]; + } + else + { + return ""; + } + } + } + return monitors; + } + /// /// 获取主要硬件信息 /// /// 是否获取XML格式 /// public static string GetMainHardware(bool getbyXML) { + var Monitor = GetMonitorPnpDeviceId(); + var Monitor_list = ""; + if (Monitor.Count > 0) + { + for (int i = 0; i < Monitor.Count; i++) + { + if (Monitor_list.Length > 0) { Monitor_list += "/"; } + Monitor_list += Monitor[i]; + } + } if (getbyXML) { ryCommon.Storage mStor = new Storage(); + if(Monitor_list.Length>0) + { + addValue("显示器", Monitor_list); + } addValue("主板", GetBaseBoardInfo()); addValue("处理器", GetCPU()); addValue("显卡", GetVideoInfo()); @@ -417,7 +568,12 @@ namespace RyHardWare } else { - var content = "主板 " + HardWare.GetBaseBoardInfo(); + string content=""; + if (Monitor_list.Length > 0) + { + content = "显示器 " + Monitor_list+"\r\n"; + } + content += "主板 " + HardWare.GetBaseBoardInfo(); content += "\r\n处理器 " + HardWare.GetCPU(); content += "\r\n显卡 " + HardWare.GetVideoInfo(); content += "\r\n内存 " + HardWare.GetMemoryInfo(); diff --git a/Source/RaUI/Common/MyDb/DbInterface.cs b/Source/RaUI/Common/MyDb/DbInterface.cs index f5a5738..cb3727d 100644 --- a/Source/RaUI/Common/MyDb/DbInterface.cs +++ b/Source/RaUI/Common/MyDb/DbInterface.cs @@ -211,5 +211,9 @@ namespace ryCommonDb /// /// string GetLastError(); + /// + /// 用时 + /// + long UseTime { get; } } } diff --git a/Source/RaUI/Common/MyDb/MSSQL/SqlDataProvider.cs b/Source/RaUI/Common/MyDb/MSSQL/SqlDataProvider.cs index 28d7dd1..6e7d2bb 100644 --- a/Source/RaUI/Common/MyDb/MSSQL/SqlDataProvider.cs +++ b/Source/RaUI/Common/MyDb/MSSQL/SqlDataProvider.cs @@ -7,6 +7,7 @@ using DataParameter = System.Data.SqlClient.SqlParameter; using DataCommand = System.Data.SqlClient.SqlCommand; using DataAdapter = System.Data.SqlClient.SqlDataAdapter; using ryCommon; +using System.Diagnostics; namespace ryCommonDb { @@ -214,8 +215,14 @@ namespace ryCommonDb /// public System.Data.DataSet ReadData(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); try { + if (myDb.SQL_cn.State == System.Data.ConnectionState.Closed) + { + myDb.SQL_cn.Open(); + } error_text = ""; DataCommand cmd = myDb.SQL_cn.CreateCommand(); cmd.Parameters.Clear(); @@ -228,9 +235,16 @@ namespace ryCommonDb ad.Dispose(); cmd.Parameters.Clear(); cmd.Dispose(); + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return ds; } - catch(Exception ex) { error_text = ex.Message; return new System.Data.DataSet(); } + catch(Exception ex) { + error_text = ex.Message; + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; + return new System.Data.DataSet(); + } } /// /// @@ -282,8 +296,14 @@ namespace ryCommonDb /// public int ExecuteNonQuery(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); try { + if(myDb.SQL_cn.State== System.Data.ConnectionState.Closed) + { + myDb.SQL_cn.Open(); + } error_text = ""; DataCommand cmd = myDb.SQL_cn.CreateCommand(); cmd.Parameters.Clear(); @@ -293,9 +313,15 @@ namespace ryCommonDb int i = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); cmd.Dispose(); + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return i; } - catch(Exception ex) { error_text = ex.Message; return -1; } + catch(Exception ex) { + error_text = ex.Message; + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; + return -1; } } /// /// 执行SQL语句 @@ -440,5 +466,9 @@ namespace ryCommonDb list_param.Clear(); myDb.CloseDb(); } + /// + /// 用时 + /// + public long UseTime { get;private set; } = 0; } } diff --git a/Source/RaUI/Common/MyDb/MySQL/mySqlDataProvider.cs b/Source/RaUI/Common/MyDb/MySQL/mySqlDataProvider.cs index 81a3fc9..80b7cec 100644 --- a/Source/RaUI/Common/MyDb/MySQL/mySqlDataProvider.cs +++ b/Source/RaUI/Common/MyDb/MySQL/mySqlDataProvider.cs @@ -9,6 +9,7 @@ using DataAdapter = MySql.Data.MySqlClient.MySqlDataAdapter; using ryCommonDb; using ryCommon; using Newtonsoft.Json.Linq; +using System.Diagnostics; namespace ryCommonDb { @@ -226,6 +227,8 @@ namespace ryCommonDb /// public System.Data.DataSet ReadData(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); try { error_text = ""; @@ -247,9 +250,16 @@ namespace ryCommonDb ad.Dispose(); cmd.Parameters.Clear(); cmd.Dispose(); + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return ds; } - catch(Exception ex) { error_text = ex.Message; return new System.Data.DataSet(); } + catch(Exception ex) { + error_text = ex.Message; + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; + return new System.Data.DataSet(); + } } /// /// @@ -302,6 +312,8 @@ namespace ryCommonDb /// public int ExecuteNonQuery(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); error_text = ""; try { @@ -318,16 +330,20 @@ namespace ryCommonDb { retry_index = 0; } + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return i; } catch(Exception ex) { - if(ex.Message.IndexOfEx("Connection must be valid and open.")>=0) + swt.Stop(); + if (ex.Message.IndexOfEx("Connection must be valid and open.")>=0) { retry_index++; ConnDb(myDb.fv_ConnStr); return ExecuteNonQuery(sql, Parameter); } error_text = ex.Message; + UseTime = swt.ElapsedMilliseconds; return -1; } } /// @@ -474,5 +490,9 @@ namespace ryCommonDb list_param.Clear(); myDb.CloseDb(); } + /// + /// 用时 + /// + public long UseTime { get;private set; } = 0; } } diff --git a/Source/RaUI/Common/MyDb/SQLite/SQLiteDataProvider.cs b/Source/RaUI/Common/MyDb/SQLite/SQLiteDataProvider.cs index 053f9bd..1ae5b68 100644 --- a/Source/RaUI/Common/MyDb/SQLite/SQLiteDataProvider.cs +++ b/Source/RaUI/Common/MyDb/SQLite/SQLiteDataProvider.cs @@ -8,6 +8,7 @@ using DataCommand = System.Data.SQLite.SQLiteCommand; using DataAdapter = System.Data.SQLite.SQLiteDataAdapter; using System.Windows.Forms; using ryCommon; +using System.Diagnostics; namespace ryCommonDb { @@ -220,6 +221,8 @@ namespace ryCommonDb /// public System.Data.DataSet ReadData(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); try { error_text = ""; @@ -233,9 +236,16 @@ namespace ryCommonDb ad.Fill(ds); ad.Dispose(); cmd.Dispose(); + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return ds; } - catch(Exception ex) { error_text = ex.Message;return new System.Data.DataSet(); } + catch(Exception ex) { + error_text = ex.Message; + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; + return new System.Data.DataSet(); + } } /// /// @@ -287,6 +297,8 @@ namespace ryCommonDb /// public int ExecuteNonQuery(string sql, object[] Parameter) { + Stopwatch swt = new Stopwatch(); + swt.Start(); try { error_text = ""; @@ -297,9 +309,15 @@ namespace ryCommonDb cmd.CommandText = sql; int i = cmd.ExecuteNonQuery(); cmd.Dispose(); + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; return i; } - catch(Exception ex) { error_text = ex.Message; return -1; } + catch(Exception ex) { + error_text = ex.Message; + swt.Stop(); + UseTime = swt.ElapsedMilliseconds; + return -1; } } /// /// 执行SQL语句 @@ -500,5 +518,9 @@ namespace ryCommonDb list_param.Clear(); myDb.CloseDb(); } + /// + /// 用时 + /// + public long UseTime { get;private set; } = 0; } } diff --git a/Source/RaUI/Common/RyWeb/QuickWeb.cs b/Source/RaUI/Common/RyWeb/QuickWeb.cs index 36c54f2..cebd31a 100644 --- a/Source/RaUI/Common/RyWeb/QuickWeb.cs +++ b/Source/RaUI/Common/RyWeb/QuickWeb.cs @@ -22,6 +22,10 @@ namespace RyWeb } /// + /// 当前页面 + /// + public string CurPageUrl { get; private set; } = ""; + /// /// /// /// 超时时间 @@ -30,6 +34,16 @@ namespace RyWeb this.Timeout= Timeout; } /// + /// + /// + /// 超时时间 + /// 重试次数 + public QuickWeb(int Timeout,int RetryCount) + { + this.Timeout = Timeout; + this.RetryCount = RetryCount; + } + /// /// 以post方式获取网页源码 /// /// @@ -73,6 +87,10 @@ namespace RyWeb return Post(url, post, "application/json", ""); } /// + /// 重试次数 + /// + public int RetryCount { get; set; } = 0; + /// /// 头信息 /// public string HeadText { get; set; } = ""; @@ -89,22 +107,26 @@ namespace RyWeb { try { + CurPageUrl = url; HttpHelper t = new HttpHelper(); HttpItem m = new HttpItem() { URL = url, + Encoding = System.Text.Encoding.GetEncoding("utf-8"), + Accept = "text/html, application/xhtml+xml, */*",//Accept 可选项 Postdata = post, + PostEncoding= System.Text.Encoding.GetEncoding("utf-8"), ContentType = ContentType, Method = "POST", Timeout = Timeout, ReadWriteTimeout = Timeout, UserAgent = UserAgent, Referer=Referer, - KeepAlive = false, ProxyIp= ProxyIp, ProxyUserName= ProxyUserName, ProxyPwd=ProxyPassWord, - Allowautoredirect= AllowAutoRedirect + Allowautoredirect= AllowAutoRedirect, + ResultType = ResultType.String }; if (HeadText.Length > 0) { @@ -119,6 +141,22 @@ namespace RyWeb m.Cookie = cookie; } HttpResult r = t.GetHtml(m); + if (RetryCount > 0) + { + int retry = 0; + while (retry public long GetSize(string url,out string errormsg,out string RedirectUrl) { + CurPageUrl = url; System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, error) => true; errormsg = ""; @@ -188,7 +227,23 @@ namespace RyWeb ProxyPwd = ProxyPassWord, }; HttpResult r = t.GetHtml(m); - RedirectUrl=r.ResponseUri; + if (RetryCount > 0) + { + int retry = 0; + while (retry < RetryCount) + { + if (r.StatusCode == HttpStatusCode.RequestTimeout || r.StatusCode == HttpStatusCode.GatewayTimeout) + { + retry++; + r = t.GetHtml(m); + } + else + { + break; + } + } + } + RedirectUrl =r.ResponseUri; if (r.Header!=null && r.Header["Refresh"]!=null) { var Refresh = r.Header["Refresh"].ToString(); @@ -278,6 +333,10 @@ namespace RyWeb size = r.Header["Content-Length"].ToInt64(0); } } + if (size == 0) + { + return 0; + } if (size <=1000) { System.Net.ServicePointManager.DefaultConnectionLimit = 512; @@ -347,7 +406,7 @@ namespace RyWeb public string UserAgent { get; set; - } = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"; + } = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0"; /// /// 是否自动跳转 /// @@ -367,6 +426,7 @@ namespace RyWeb { try { + CurPageUrl = url; HttpHelper t = new HttpHelper(); HttpItem m = new HttpItem() { @@ -397,6 +457,22 @@ namespace RyWeb m.ProxyUserName = ProxyUserName; m.ProxyPwd = ProxyPassWord; HttpResult r = t.GetHtml(m); + if (RetryCount > 0) + { + int retry = 0; + while (retry < RetryCount) + { + if (r.StatusCode == HttpStatusCode.RequestTimeout || r.StatusCode == HttpStatusCode.GatewayTimeout) + { + retry++; + r = t.GetHtml(m); + } + else + { + break; + } + } + } return r; } catch @@ -439,6 +515,7 @@ namespace RyWeb { try { + CurPageUrl = url; HttpHelper t = new HttpHelper(); HttpItem m = new HttpItem() { @@ -467,6 +544,22 @@ namespace RyWeb m.ProxyUserName = ProxyUserName; m.ProxyPwd = ProxyPassWord; HttpResult r = t.GetHtml(m); + if (RetryCount > 0) + { + int retry = 0; + while (retry < RetryCount) + { + if (r.StatusCode == HttpStatusCode.RequestTimeout || r.StatusCode == HttpStatusCode.GatewayTimeout) + { + retry++; + r = t.GetHtml(m); + } + else + { + break; + } + } + } return r; } catch @@ -517,6 +610,12 @@ namespace RyWeb byte[] byStr = encode.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str) for (int i = 0; i < byStr.Length; i++) { + if (byStr[i] >= 'a' && byStr[i] <= 'z' || byStr[i] >= 'A' && byStr[i] <= 'Z' || byStr[i] >= '0' && byStr[i] <= '9' || byStr[i] == '-' || byStr[i] == '_' || byStr[i] == '.' || byStr[i] == '~') + { + var aa = ((char)byStr[i]).ToString(); + sb.Append(aa); + continue; + } var item = Convert.ToString(byStr[i], 16); if (item.Length == 1) { item = "0" + item; } sb.Append(@"%" + item); @@ -536,6 +635,15 @@ namespace RyWeb /// /// 将相对网址转换成绝对网址 /// + /// + /// + public string ConvertUrl(string rel_url) + { + return ConvertUrl(rel_url, CurPageUrl); + } + /// + /// 将相对网址转换成绝对网址 + /// /// 相对网址 /// 当前页面地址 /// 转换后的绝对网址 diff --git a/Source/RaUI/Common/RyWeb/WebDecode.cs b/Source/RaUI/Common/RyWeb/WebDecode.cs index c9833bd..75337d9 100644 --- a/Source/RaUI/Common/RyWeb/WebDecode.cs +++ b/Source/RaUI/Common/RyWeb/WebDecode.cs @@ -167,6 +167,12 @@ namespace RyWeb byte[] byStr = encode.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str) for (int i = 0; i < byStr.Length; i++) { + if(byStr[i]>='a' && byStr[i]<='z' || byStr[i]>='A' && byStr[i]<='Z' || byStr[i]>='0' && byStr[i]<='9' || byStr[i]=='-' || byStr[i]=='_' || byStr[i]=='.' || byStr[i]=='~') + { + var aa=((char) byStr[i]).ToString(); + sb.Append(aa); + continue; + } var item = Convert.ToString(byStr[i], 16); if (item.Length == 1) { item = "0" + item; } sb.Append(@"%" + item); diff --git a/Source/RaUI/Common/SysFuns/RyDate.cs b/Source/RaUI/Common/SysFuns/RyDate.cs index cf42c35..1b8a6c9 100644 --- a/Source/RaUI/Common/SysFuns/RyDate.cs +++ b/Source/RaUI/Common/SysFuns/RyDate.cs @@ -156,6 +156,10 @@ namespace ryCommon if (ts.Seconds != 0 && seconds) { dateDiff += ts.Seconds.ToString() + "秒"; + if(ts.TotalSeconds<=10) + { + dateDiff += ts.Milliseconds.ToString() + "毫秒"; + } } } catch diff --git a/Source/RaUI/Common/SysFuns/RyRegedit.cs b/Source/RaUI/Common/SysFuns/RyRegedit.cs index 8dec711..cdbb1c8 100644 --- a/Source/RaUI/Common/SysFuns/RyRegedit.cs +++ b/Source/RaUI/Common/SysFuns/RyRegedit.cs @@ -389,6 +389,13 @@ namespace ryCommon SetFileAssociation(ExtName, sName, AssDes, filePath,iconPath); SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero); } + /// + /// 通知系统设置发生变化 + /// + public static void UpdateSetNotify() + { + SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero); + } [DllImport("shell32.dll")] private static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2); private static bool ClearUserChoice(string extension) diff --git a/Source/RaUI/Properties/AssemblyInfo.cs b/Source/RaUI/Properties/AssemblyInfo.cs index df3674a..3bf7f32 100644 --- a/Source/RaUI/Properties/AssemblyInfo.cs +++ b/Source/RaUI/Properties/AssemblyInfo.cs @@ -33,5 +33,5 @@ using System.Runtime.InteropServices; //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("4.0.2508.1601")] -[assembly: AssemblyFileVersion("4.0.2508.1601")] \ No newline at end of file +[assembly: AssemblyVersion("4.0.2606.0401")] +[assembly: AssemblyFileVersion("4.0.2606.0401")] \ No newline at end of file diff --git a/Source/RaUI/RaUIV4.csproj b/Source/RaUI/RaUIV4.csproj index 9c530f9..844b7ad 100644 --- a/Source/RaUI/RaUIV4.csproj +++ b/Source/RaUI/RaUIV4.csproj @@ -91,10 +91,10 @@ - + diff --git a/Source/RaUI/UI/Controls/ComboBox/ryComboBox.cs b/Source/RaUI/UI/Controls/ComboBox/ryComboBox.cs index 00034d0..9abcfb1 100644 --- a/Source/RaUI/UI/Controls/ComboBox/ryComboBox.cs +++ b/Source/RaUI/UI/Controls/ComboBox/ryComboBox.cs @@ -133,32 +133,38 @@ namespace ryControls SolidBrush brush = new SolidBrush(Color.FromArgb(255, 255, 255)); e.Graphics.FillRectangle(brush, e.Bounds); } - Rectangle textRect = new Rectangle(3, e.Bounds.Y + 1, e.Bounds.Width-5, e.Bounds.Height - 2); + Rectangle textRect = new Rectangle(2, e.Bounds.Y + 1, e.Bounds.Width, e.Bounds.Height - 2); switch (this.Items[e.Index]) { case clsCbbItem item: - Image img = item.Img; - //图片绘制的区域 - Rectangle imgRect = new Rectangle(6, e.Bounds.Y + 3, 16, 16); - e.Graphics.SmoothingMode = SmoothingMode.HighQuality; - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; - e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; - e.Graphics.DrawImage(img, imgRect); - //文本内容显示区域 - textRect = new Rectangle(imgRect.Right + 2, imgRect.Y, e.Bounds.Width - imgRect.Width, e.Bounds.Height - 2); + Image img = item?.Img; + if (img != null) + { + //图片绘制的区域 + Rectangle imgRect = new Rectangle(6, e.Bounds.Y + 3, 16, 16); + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; + e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; + e.Graphics.DrawImage(img, imgRect); + //文本内容显示区域 + textRect = new Rectangle(imgRect.Right + 2, imgRect.Y, e.Bounds.Width - imgRect.Width, e.Bounds.Height); + } break; case ComboPopupItem item2: - Image img2 = item2.Image; - //图片绘制的区域 - Rectangle imgRect2 = new Rectangle(6, e.Bounds.Y + 3, 16, 16); - e.Graphics.SmoothingMode = SmoothingMode.HighQuality; - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; - e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; - e.Graphics.DrawImage(img2, imgRect2); - //文本内容显示区域 - textRect = new Rectangle(imgRect2.Right + 2, imgRect2.Y, e.Bounds.Width - imgRect2.Width, e.Bounds.Height - 2); + Image img2 = item2?.Image; + if (img2 != null) + { + //图片绘制的区域 + Rectangle imgRect2 = new Rectangle(6, e.Bounds.Y + 3, 16, 16); + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; + e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; + e.Graphics.DrawImage(img2, imgRect2); + //文本内容显示区域 + textRect = new Rectangle(imgRect2.Right + 2, imgRect2.Y, e.Bounds.Width - imgRect2.Width, e.Bounds.Height); + } break; } //获得项文本内容,绘制文本 @@ -167,9 +173,11 @@ namespace ryControls //文本格式垂直居中 StringFormat strFormat = new StringFormat() { - LineAlignment = StringAlignment.Center + LineAlignment = StringAlignment.Center, }; - e.Graphics.DrawString(itemText, new Font("微软雅黑", 11), Brushes.Black, textRect, strFormat); + TextFormatFlags flags = TextFormatFlags.VerticalCenter; + TextRenderer.DrawText(e.Graphics, itemText, this.Font, textRect, Color.Black, Color.Transparent, flags); + //e.Graphics.DrawString(itemText, Font, Brushes.Black, textRect, strFormat); }); } diff --git a/Source/RaUI/UI/ObjectListView/Filtering/Filters.cs b/Source/RaUI/UI/ObjectListView/Filtering/Filters.cs index db69a62..e93f19c 100644 --- a/Source/RaUI/UI/ObjectListView/Filtering/Filters.cs +++ b/Source/RaUI/UI/ObjectListView/Filtering/Filters.cs @@ -296,7 +296,7 @@ namespace BrightIdeasSoftware public virtual bool Filter(object modelObject) { if (this.ValueGetter == null || this.PossibleValues == null || this.PossibleValues.Count == 0) return false; - + if (modelObject == null) { return false; } object result = this.ValueGetter(modelObject); IEnumerable enumerable = result as IEnumerable; if (result is string || enumerable == null) diff --git a/Source/RaUI/UI/ObjectListView/ObjectListView.cs b/Source/RaUI/UI/ObjectListView/ObjectListView.cs index 183ec70..f5ec5ed 100644 --- a/Source/RaUI/UI/ObjectListView/ObjectListView.cs +++ b/Source/RaUI/UI/ObjectListView/ObjectListView.cs @@ -4370,8 +4370,11 @@ namespace BrightIdeasSoftware object data = null; if (this.CopySelectionOnControlCUsesDragSource && this.DragSource != null) data = this.DragSource.StartDrag(this, MouseButtons.Left, this.ModelToItem(selection[0])); - - Clipboard.SetDataObject(data ?? new OLVDataObject(this, selection)); + try + { + Clipboard.SetDataObject(data ?? new OLVDataObject(this, selection)); + } + catch { } } /// @@ -4385,7 +4388,11 @@ namespace BrightIdeasSoftware // the data object, like we do with CopySelectionToClipboard() above. OLVDataObject dataObject = new OLVDataObject(this, objectsToCopy); dataObject.CreateTextFormats(); - Clipboard.SetDataObject(dataObject); + try + { + Clipboard.SetDataObject(dataObject); + } + catch { } } /// /// жıHTMLʾƵϡ diff --git a/Source/RaUI/UI/Rili/PaChinaCalendar.cs b/Source/RaUI/UI/Rili/PaChinaCalendar.cs index 6bbd35a..13ae0bc 100644 --- a/Source/RaUI/UI/Rili/PaChinaCalendar.cs +++ b/Source/RaUI/UI/Rili/PaChinaCalendar.cs @@ -454,10 +454,18 @@ namespace ryControls { if (ini != null) { - Ini ini2 = new Ini(HolidayFolder + "\\" + dt_2.Year + ".ini"); - int state = ini2.ReadIni("date", dt_2.ToString("MMdd"), -2); - if (state != -2) - { rest_state = state; } + var ini_path2 = holiday_folder + "\\" + dt_2.Year + ".ini"; + if (holiday_folder.StartsWith(".\\")) + { + ini_path2 = Application.StartupPath + "\\" + holiday_folder.Substring(2) + "\\" + dt_2.Year + ".ini"; + } + if (System.IO.File.Exists(ini_path2)) + { + Ini ini2 = new Ini(ini_path2); + int state = ini2.ReadIni("date", dt_2.ToString("MMdd"), -2); + if (state != -2) + { rest_state = state; } + } } } var ChinaHoliday = ChinaDate.GetChinaHoliday(dt_2); diff --git a/Source/RaUI/UI/RySetting.cs b/Source/RaUI/UI/RySetting.cs index 1b5bece..7fabe5e 100644 --- a/Source/RaUI/UI/RySetting.cs +++ b/Source/RaUI/UI/RySetting.cs @@ -1,4 +1,5 @@ -using ryCommon; +using Newtonsoft.Json.Linq; +using ryCommon; using ryCommon.Pram; using System; using System.Collections.Generic; @@ -34,11 +35,26 @@ namespace ryControls /// /// 配置存储路径 /// - public string FilePath = ""; + public string FilePath { get; set; } = ""; /// /// 设置XML内容 /// - public string SettingXML = ""; + [Obsolete("当前属性已过期,请使用SettingContent代替")] + public string SettingXML + { + get + { + return SettingContent; + } + set + { + SettingContent = value; + } + } + /// + /// 获取/设置配置的内容(适用于xml和json) + /// + public string SettingContent { get; set; } = ""; private string Section = "Setting"; private List list = new List(); /// @@ -185,7 +201,7 @@ namespace ryControls ryCommon.Storage myXML = new Storage(); if (filepath == "") { - myXML.LoadFromXMLText(SettingXML); + myXML.LoadFromXMLText(SettingContent); } else { @@ -379,6 +395,113 @@ namespace ryControls } } } + else if (FileType == SettingType.Json) + { + JObject myJson = []; + try + { + if (filepath == "") + { + myJson = JObject.Parse(SettingContent); + } + else + { + myJson = JObject.Parse(RyFiles.ReadAllText(filepath)); + } + } + catch { } + for (int i = 0; i < list.Count; i++) + { + Control_Info item = list[i]; + switch (item.control) + { + case CheckBox chk: + chk.Checked = myJson.GetJsonValue(item.id, item.defValue.ToBool()); + break; + case TextBox txt: + txt.Text = myJson.GetJsonValue(item.id, item.defValue.ToString()); + break; + case TextBoxEx2 txt: + txt.Text = myJson.GetJsonValue(item.id, item.defValue.ToString()); + break; + case HotkeyTextBox txt: + txt.HotKey = myJson.GetJsonValue(item.id, item.defValue.ToString()); + break; + case DoubleText txt: + txt.selectId = myJson.GetJsonValue(item.id, item.defValue.ToString()); + break; + case NumericUpDown num: + num.Value = myJson.GetJsonValue(item.id, item.defValue.ToDecimal()).ToDecimal(num.Minimum, num.Maximum, (decimal)item.defValue); + break; + case DateTimePicker dt_picker: + try + { + dt_picker.Value = RyDate.UnixTimeToDateTime(myJson.GetJsonValue(item.id, RyDate.DateTimeToUnixTime((DateTime)item.defValue).ToString())); + } + catch + { + dt_picker.Value = (DateTime)item.defValue; + } + break; + case ComboBox cbb: + #region ComboBox + if (item.value_type == CValueType.ItemIndex || item.value_type == CValueType.Default) + { + int def_value = item.defValue.ToInt(0); + int value = myJson.GetJsonValue(item.id, item.defValue.ToInt(0)); + if (cbb.Items.Count > value && value >= 0) + { + cbb.SelectedIndex = value; + } + else + { + if (cbb.Items.Count > def_value && def_value >= 0) + cbb.SelectedIndex = def_value; + else + cbb.SelectedIndex = 0; + } + } + else if (item.value_type == CValueType.ItemText) + { + try + { + cbb.Text = myJson.GetJsonValue(item.id, item.defValue.ToString()); + } + catch { cbb.Text = item.defValue.ToString(); } + } + else if (item.value_type == CValueType.ObjectItem) + { + #region ObjectItem + string _id = myJson.GetJsonValue(item.id, item.defValue.ToString()); + bool haveRecord = false; + for (int m = 0; m < cbb.Items.Count; m++) + { + switch (cbb.Items[m]) + { + case ObjectItem c_item: + if (c_item.Id == _id) + { + cbb.SelectedIndex = m; + haveRecord = true; + break; + } + break; + } + } + if (!haveRecord) + { + cbb.SelectedIndex = 0; + } + #endregion + } + break; + #endregion + default: + item.control.Text=myJson.GetJsonValue(item.id, item.defValue.ToString()); + break; + } + } + } } /// /// 保存配置 @@ -391,7 +514,7 @@ namespace ryControls ryCommon.Storage myXML = new Storage(); if (filepath == "") { - myXML.LoadFromXMLText(SettingXML); + myXML.LoadFromXMLText(SettingContent); } else { @@ -453,11 +576,8 @@ namespace ryControls break; } } - if (filepath == "") - { - SettingXML=myXML.XMLText; - } - else + SettingContent = myXML.XMLText; + if (filepath.Length>0) { myXML.SaveToFile(filepath); } @@ -521,6 +641,261 @@ namespace ryControls } } } + else if (FileType == SettingType.Json) + { + JObject myJson = new JObject(); + try + { + if (filepath == "") + { + myJson = JObject.Parse(SettingContent); + } + else + { + myJson = JObject.Parse(RyFiles.ReadAllText(filepath)); + } + } + catch { } + for (int i = 0; i < list.Count; i++) + { + Control_Info item = list[i]; + switch (item.control) + { + case CheckBox chk: + myJson[item.id]= chk.Checked; + break; + case TextBox txt: + myJson[item.id] = txt.Text; + break; + case TextBoxEx2 txt: + myJson[item.id] = txt.Text; + break; + case HotkeyTextBox txt: + myJson[item.id] = txt.HotKey; + break; + case DoubleText txt: + myJson[item.id] = txt.selectId; + break; + case NumericUpDown num: + myJson[item.id] = num.Value; + break; + case DateTimePicker dt_picker: + myJson[item.id] = RyDate.DateTimeToUnixTime(dt_picker.Value).ToString(); + break; + case ComboBox cbb: + #region ComboBox + if (item.value_type == CValueType.ItemIndex || item.value_type == CValueType.Default) + { + myJson[item.id] = cbb.SelectedIndex; + } + else if (item.value_type == CValueType.ItemText) + { + myJson[item.id] = cbb.Text; + } + else if (item.value_type == CValueType.ObjectItem) + { + switch (cbb.SelectedItem) + { + case ObjectItem c_item: + myJson[item.id] = c_item.Id; + break; + } + } + break; + #endregion + case null: + myJson[item.id] = item.defValue.ToString(); + break; + default: + myJson[item.id] = item.control.Text; + break; + } + } + SettingContent = myJson.ToString(); + if (filepath.Length > 0) + { + RyFiles.WriteAllText(filepath, myJson.ToString()); + } + } + } + /// + /// 保存到内存中的对象 + /// + private object MemObject { get; set; } = null; + /// + /// 读取内容到内存中 + /// + public void ReadToMem() + { + string filepath = FilePath; + if (FileType == SettingType.XML) + { + ryCommon.Storage myXML = new Storage(); + if (filepath.Length==0) + { + myXML.LoadFromXMLText(SettingContent); + } + else + { + myXML.LoadFromFile(filepath); + } + myXML.SelectNode2("id", Section); + MemObject = myXML; + } + else if (FileType == SettingType.Json) + { + JObject myJson =null; + try + { + if (filepath == "") + { + myJson = JObject.Parse(SettingContent); + } + else + { + myJson = JObject.Parse(RyFiles.ReadAllText(filepath)); + } + } + catch { } + MemObject = myJson; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public int GetFromMem(string name,int defValue) + { + switch(MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public long GetFromMem(string name, long defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public bool GetFromMem(string name, bool defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public double GetFromMem(string name, double defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public decimal GetFromMem(string name, decimal defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + public string GetFromMem(string name, string defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, defValue); + case JObject jo: + return jo.GetJsonValue(name, defValue); + default: + return defValue; + } + } + /// + /// 从内存中读取配置 + /// + /// + /// + public string GetFromMem(string name) + { + return GetFromMem(name, ""); + } + /// + /// 从内存中读取配置 + /// + /// + /// + /// + /// + /// + public int GetFromMem(string name, int min, int max, int defValue) + { + switch (MemObject) + { + case Storage myXML: + return myXML.GetAttrValue(name, min,max,defValue); + case JObject jo: + return jo.GetJsonValue(name, min, max, defValue); + default: + return defValue; + } } } } diff --git a/Source/RaUI/UI/TreeXML/ComboBoxEx.cs b/Source/RaUI/UI/TreeXML/ComboBoxEx.cs index fd57c3f..b318f1a 100644 --- a/Source/RaUI/UI/TreeXML/ComboBoxEx.cs +++ b/Source/RaUI/UI/TreeXML/ComboBoxEx.cs @@ -40,7 +40,7 @@ namespace ryControls LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, Color.FromArgb(255, 251, 237), Color.FromArgb(255, 236, 181), LinearGradientMode.Vertical); //填充区域 - Rectangle borderRect = new Rectangle(3, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2); + Rectangle borderRect = new Rectangle(2, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 1); e.Graphics.FillRectangle(brush, borderRect); //画边框 @@ -57,27 +57,43 @@ namespace ryControls { case clsCbbItem item: Image img = item.Img; - //图片绘制的区域 - Rectangle imgRect = new Rectangle(6, e.Bounds.Y + 3, 16, 16); - e.Graphics.SmoothingMode = SmoothingMode.HighQuality; - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; - e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; - e.Graphics.DrawImage(img, imgRect); - //文本内容显示区域 - textRect = new Rectangle(imgRect.Right + 2, imgRect.Y, e.Bounds.Width - imgRect.Width, e.Bounds.Height - 2); + if (img != null) + { + //图片绘制的区域 + Rectangle imgRect = new Rectangle(6, e.Bounds.Y + 3, 16, 16); + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; + e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; + e.Graphics.DrawImage(img, imgRect); + //文本内容显示区域 + textRect = new Rectangle(imgRect.Right + 2, imgRect.Y, e.Bounds.Width - imgRect.Width, e.Bounds.Height - 2); + } + else + { + //文本内容显示区域 + //textRect = new Rectangle(2, e.Bounds.Y + 3, e.Bounds.Width, e.Bounds.Height - 2); + } break; case ComboPopupItem item2: Image img2 = item2.Image; - //图片绘制的区域 - Rectangle imgRect2 = new Rectangle(6, e.Bounds.Y + 3, 16, 16); - e.Graphics.SmoothingMode = SmoothingMode.HighQuality; - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; - e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; - e.Graphics.DrawImage(img2, imgRect2); - //文本内容显示区域 - textRect = new Rectangle(imgRect2.Right + 2, imgRect2.Y, e.Bounds.Width - imgRect2.Width, e.Bounds.Height - 2); + if (img2 != null) + { + //图片绘制的区域 + Rectangle imgRect2 = new Rectangle(6, e.Bounds.Y + 3, 16, 16); + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; + e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; + e.Graphics.DrawImage(img2, imgRect2); + //文本内容显示区域 + textRect = new Rectangle(imgRect2.Right + 2, imgRect2.Y, e.Bounds.Width - imgRect2.Width, e.Bounds.Height - 2); + } + else + { + //文本内容显示区域 + textRect = new Rectangle(2, e.Bounds.Y + 3, e.Bounds.Width, e.Bounds.Height - 2); + } break; } //获得项文本内容,绘制文本 @@ -88,7 +104,8 @@ namespace ryControls { LineAlignment = StringAlignment.Center }; - e.Graphics.DrawString(itemText, new Font("微软雅黑", 11), Brushes.Black, textRect, strFormat); + var txt_font = new Font(this.Font.FontFamily, this.Font.Size-1f); + e.Graphics.DrawString(itemText, txt_font, Brushes.Black, textRect, strFormat); } /// ///