diff --git a/Software/master/PressureSensorBoardMaster/BSP/BLE.c b/Software/master/PressureSensorBoardMaster/BSP/BLE.c index 7a37aba..9d099e6 100644 --- a/Software/master/PressureSensorBoardMaster/BSP/BLE.c +++ b/Software/master/PressureSensorBoardMaster/BSP/BLE.c @@ -174,27 +174,32 @@ void BLE_StateMachine_Handler(void) case BLE_ERROR : - + { + static uint8_t recovery_level = 0; + const uint8_t MAX_RECOVERY_LEVEL = 3; + switch(g_ble_error.type) { case ERR_TYPE_NONE: + curr_state = g_ble_error.origin_state; break; case ERR_TYPE_PREPARE_FAILED: { - DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", - ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); - curr_state = BLE_WAITTING; - + g_ble_error.recovery_target = RECOVERY_TARGET_RECONFIG_UART; + //curr_state = BLE_WAITTING; + } break; case ERR_TYPE_TIMEOUT_EXCEEDED: { - DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", - ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); - curr_state = BLE_SET; + g_ble_error.recovery_target = RECOVERY_TARGET_RESTART_SEQ; + + + + //curr_state = BLE_SET; //重新配置串口信息 } @@ -204,9 +209,10 @@ void BLE_StateMachine_Handler(void) case ERR_TYPE_PARSE_FAILED: { - DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", - ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); - curr_state = BLE_SET; +// DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", +// ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); + g_ble_error.recovery_target = RECOVERY_TARGET_RESTART_SEQ; + //重新配置串口信息 @@ -216,20 +222,23 @@ void BLE_StateMachine_Handler(void) break; case ERR_TYPE_MODULE_ERROR: - { - for(uint8_t i = 0; i < 4; i++) + { + uint8_t table_size = sizeof(g_ble_error_table) / sizeof(g_ble_error_table[0]); + uint8_t i; + for(i = 0; i < table_size; i++) { if(g_ble_error.error_code == g_ble_error_table[i].code) { - g_ble_error. - - - - + g_ble_error.recovery_target = g_ble_error_table[i].recovery_target; + DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", + ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); + //curr_state = BLE_SET; + } + if(i == table_size) + { + g_ble_error.recovery_target = RECOVERY_TARGET_RESTART_SEQ; + } - - - } } @@ -237,38 +246,202 @@ void BLE_StateMachine_Handler(void) break; default: + g_ble_error.recovery_target = RECOVERY_TARGET_PANIC; + break; } + + if(g_ble_error.recovery_target >= RECOVERY_TARGET_SW_RESET_MODULE) + { + recovery_level++; + if(recovery_level > MAX_RECOVERY_LEVEL) + { + // 超过最大恢复级别,无法恢复,进入等待 + DEBUG("恢复级别 %d 超过阈值,进入等待", recovery_level); + curr_state = BLE_WAITTING; + break; // 跳出 BLE_ERROR + } - - - - - + } + + // 3. 执行恢复动作 + switch(g_ble_error.recovery_target) + { + case RECOVERY_TARGET_RESTART_SEQ: + // 重启当前流程阶段:根据 origin_state 重置对应的执行器 + switch(g_ble_error.origin_state) + { + case BLE_INIT: + memset(&init_executor, 0, sizeof(init_executor)); + break; + case BLE_FIRST_CONECT: + memset(&first_connect_executor, 0, sizeof(first_connect_executor)); + break; + case BLE_CONNECTED: + memset(&connect_executor, 0, sizeof(connect_executor)); + break; + default: + break; + } + // 返回原状态,重新开始执行序列 + curr_state = g_ble_error.origin_state; + break; + + case RECOVERY_TARGET_RECONFIG_UART: + // 重新配置 MCU 串口(调用你的串口初始化函数) + // 例如: MX_USART1_UART_Init(); + // 然后重置对应执行器 + switch(g_ble_error.origin_state) + { + case BLE_INIT: + memset(&init_executor, 0, sizeof(init_executor)); + break; + case BLE_FIRST_CONECT: + memset(&first_connect_executor, 0, sizeof(first_connect_executor)); + break; + case BLE_CONNECTED: + memset(&connect_executor, 0, sizeof(connect_executor)); + break; + default: + break; + } + curr_state = g_ble_error.origin_state; + break; + +// case RECOVERY_TARGET_SW_RESET_MODULE: + case RECOVERY_TARGET_FACTORY_RESET: + // 需要通过 AT 命令执行,进入 BLE_SET 状态 + // 注意:origin_state 保持不变,BLE_SET 执行完后会返回它 + curr_state = BLE_SET; + break; + + case RECOVERY_TARGET_HARD_RESET_MODULE: + // 硬件复位模块:拉低复位引脚,延时,拉高 + // 假设有 BLE_RST_PIN 控制 + // HAL_GPIO_WritePin(BLE_RST_GPIO_Port, BLE_RST_Pin, GPIO_PIN_RESET); + // HAL_Delay(100); + // HAL_GPIO_WritePin(BLE_RST_GPIO_Port, BLE_RST_Pin, GPIO_PIN_SET); + // 复位后重置对应执行器 + switch(g_ble_error.origin_state) + { + case BLE_INIT: + memset(&init_executor, 0, sizeof(init_executor)); + break; + case BLE_FIRST_CONECT: + memset(&first_connect_executor, 0, sizeof(first_connect_executor)); + break; + case BLE_CONNECTED: + memset(&connect_executor, 0, sizeof(connect_executor)); + break; + default: + break; + } + curr_state = g_ble_error.origin_state; + break; + + case RECOVERY_TARGET_SOFT_RESET_MCU: + // 软件复位整个 MCU + //NVIC_SystemReset(); + break; + + case RECOVERY_TARGET_PANIC: + default: + // 无法恢复,进入等待状态 + DEBUG("error message ,main state:%s, sub state:%s, cmd_index:%d, timestamp:%d", + ble_state_names[g_ble_error.main_state], ble_sub_state_names[g_ble_error.sub_state], g_ble_error.cmd_index, g_ble_error.timestamp); + curr_state = BLE_WAITTING; + break; + } + + } + break; case BLE_SET : { - if() //重新配置串口信息 - { - - - - - } - else if() //重新启动设备 + const BleAtCmd_t* target_seq = NULL; + switch(g_ble_error.recovery_target) { - - - - - - } + case RECOVERY_TARGET_SW_RESET_MODULE: + { + static const BleAtCmd_t sw_reset_sq[] = { + + {"AT+RESET\r\n", "OK", 100, 3, NULL, NULL}, + {NULL, NULL, 0, 0, NULL, NULL} + + }; + target_seq = sw_reset_sq; - } + } + break; + case RECOVERY_TARGET_FACTORY_RESET: + //回复出厂设置 + { + static const BleAtCmd_t factory_reset_seq[] = { + {"AT+DEFAULT\r\n", "OK", 100, 3, NULL, NULL}, + {NULL, NULL, 0, 0, NULL, NULL} + }; + target_seq = factory_reset_seq; + + } + break; + default: + //没有匹配目标则返回原状态 + curr_state = g_ble_error.origin_state; + break; + + } + if(target_seq != NULL) + { + // 如果 set_executor 尚未启动,则初始化 + if(set_executor.sequence == NULL) + { + set_executor.sequence = target_seq; + set_executor.cmd_index = 0; + set_executor.retry_cnt = 0; + set_executor.state = EXEC_STATE_IDLE; + } + ExecutorResult_t res = CmdExecutor_Process(&set_executor); + if(res == EXECUTOR_DONE) + { + // 恢复命令执行成功,将恢复级别清零,返回原状态 + // 注意:恢复级别 recovery_level 是在 BLE_ERROR 中定义的静态变量,这里无法直接访问。 + // 解决方案:可以在 BLE_ERROR 中定义一个全局或外部变量,或者通过某种方式传递。 + // 简单起见,我们可以在 BLE_ERROR 中重置 recovery_level,但这里无法做到。 + // 一个常见的做法是在 BLE_ERROR 中判断恢复成功与否,但由于这里返回原状态,我们可以在返回前设置一个标志,让 BLE_ERROR 下次进入时重置级别。 + // 但考虑到恢复级别只在 BLE_ERROR 中管理,我们可以这样处理:当 BLE_SET 成功返回原状态后,原状态会继续执行,如果再次出错会重新进入 BLE_ERROR,此时 recovery_level 仍然存在,但这是合理的(因为已经成功过,应该重置级别?) + // 实际上,一次恢复成功意味着系统已经正常,应该重置级别。所以我们需要在 BLE_SET 成功时通知 BLE_ERROR 重置级别。 + // 由于 recovery_level 是 BLE_ERROR 内部的静态变量,无法直接从外部修改。我们可以将 recovery_level 定义为全局变量,或者通过函数接口。 + // 这里为了简单,我们假设 recovery_level 是全局变量(例如在文件顶部定义),并在 BLE_SET 成功时清零。 + // 请根据实际情况调整。下面假设有一个全局变量 uint8_t g_recovery_level; 并在 BLE_ERROR 中改为使用它。 + // 如果没有,你可以将 recovery_level 定义在文件作用域(static),然后在 BLE_SET 中包含一个 extern 声明。 + // 这里我们暂时注释掉,你需要根据你的设计实现。 + // g_recovery_level = 0; // 如果使用全局变量 + + memset(&set_executor, 0, sizeof(set_executor)); + curr_state = g_ble_error.origin_state; + } + else if(res == EXECUTOR_ERROR) + { + // 恢复命令也失败,将 set_executor 中的错误信息复制到 g_ble_error(保留 origin_state) + g_ble_error.type = set_executor.error_type; + g_ble_error.error_code = set_executor.error_code; + g_ble_error.cmd_index = set_executor.error_cmd_index; + g_ble_error.timestamp = HAL_GetTick(); + // 注意:不要覆盖 origin_state + memset(&set_executor, 0, sizeof(set_executor)); + // 再次进入 BLE_ERROR,恢复级别将在那里递增 + curr_state = BLE_ERROR; + } + // 若返回 BUSY,则继续等待,不做状态切换 + } + + + + } break; diff --git a/Software/master/PressureSensorBoardMaster/BSP/BLE.h b/Software/master/PressureSensorBoardMaster/BSP/BLE.h index 055d7f6..4688112 100644 --- a/Software/master/PressureSensorBoardMaster/BSP/BLE.h +++ b/Software/master/PressureSensorBoardMaster/BSP/BLE.h @@ -197,6 +197,7 @@ typedef struct { int error_code; // 错误码(内部错误码或模块返回码) uint32_t timestamp; // 时间戳 uint8_t origin_state; // 原始状态(用于恢复后返回) + RecoveryTarget_t recovery_target;// error fix target } BleErrorInfo_t; BleErrorInfo_t g_ble_error = {0}; diff --git a/Software/master/PressureSensorBoardMaster/MDK-ARM/PressureSensorBoardMaster.uvguix.0101 b/Software/master/PressureSensorBoardMaster/MDK-ARM/PressureSensorBoardMaster.uvguix.0101 index b62dffa..7d418e3 100644 --- a/Software/master/PressureSensorBoardMaster/MDK-ARM/PressureSensorBoardMaster.uvguix.0101 +++ b/Software/master/PressureSensorBoardMaster/MDK-ARM/PressureSensorBoardMaster.uvguix.0101 @@ -90,7 +90,7 @@ 44 - 0 + 2 1 -32000 @@ -101,17 +101,17 @@ -1 - 515 - 153 - 1545 - 1548 + 460 + 127 + 1519 + 1515 0 - 828 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000030000000100000064433A5C55736572735C31353433355C4465736B746F705C507265737375726553656E736F72426F6172645C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF65433A5C55736572735C31353433355C4465736B746F705C507265737375726553656E736F72426F6172645C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C436F72655C5372635C75736172742E63000000000775736172742E6300000000FFDC7800FFFFFFFF8C433A5C55736572735C31353433355C4465736B746F705C507265737375726553656E736F72426F6172645C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000BECEA100FFFFFFFF5E433A5C55736572735C31353433355C4465736B746F705C507265737375726553656E736F72426F6172645C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C4253505C424C452E630000000006424C452E632A000000009CC1B600FFFFFFFF5E433A5C55736572735C31353433355C4465736B746F705C507265737375726553656E736F72426F6172645C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C4253505C424C452E680000000005424C452E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000008E010000710200000106000013050000 + 777 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000500000003000000010000005A433A5C55736572735C31353433355C4465736B746F705C74656D702D7265706F5C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF5B433A5C55736572735C31353433355C4465736B746F705C74656D702D7265706F5C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C436F72655C5372635C75736172742E63000000000775736172742E6300000000FFDC7800FFFFFFFF82433A5C55736572735C31353433355C4465736B746F705C74656D702D7265706F5C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000BECEA100FFFFFFFF54433A5C55736572735C31353433355C4465736B746F705C74656D702D7265706F5C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C4253505C424C452E630000000005424C452E6300000000F0A0A100FFFFFFFF54433A5C55736572735C31353433355C4465736B746F705C74656D702D7265706F5C536F6674776172655C6D61737465725C507265737375726553656E736F72426F6172644D61737465725C4253505C424C452E680000000005424C452E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000740100003A020000E7050000F2040000 @@ -134,7 +134,7 @@ 16 - 520100001A01000069050000A5010000 + 84010000D30200009B0500005E030000 @@ -150,7 +150,7 @@ 0 16 - 0300000066000000E6000000D8020000 + 0300000066000000E6000000EE020000 16 @@ -170,7 +170,7 @@ 0 16 - 0300000066000000E6000000D8020000 + 0300000066000000E6000000EE020000 16 @@ -450,7 +450,7 @@ 0 16 - 0300000066000000E6000000D8020000 + 0300000066000000E6000000EE020000 16 @@ -470,7 +470,7 @@ 0 16 - 0300000066000000E6000000D8020000 + 0300000066000000E6000000EE020000 16 @@ -490,7 +490,7 @@ 0 16 - 030000000C0300005D050000B6030000 + 03000000220300005D050000CC030000 16 @@ -530,7 +530,7 @@ 0 16 - 030000000C030000A8060000B6030000 + 03000000220300005D050000CC030000 16 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000E6000000DA020000 + 0300000066000000E6000000D8020000 16 @@ -1170,7 +1170,7 @@ 0 16 - 030000000C0300005D050000B6030000 + 03000000220300005D050000CC030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 030000000C030000A8060000B6030000 + 03000000220300005D050000CC030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 030000000C030000A8060000B6030000 + 03000000220300005D050000CC030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 030000000C030000A8060000B6030000 + 03000000220300005D050000CC030000 16 @@ -1730,7 +1730,7 @@ 0 16 - 00000000CF03000060050000E2030000 + 00000000E503000060050000F8030000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000DA000000F0040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000520100001A01000069050000A5010000D90000004F000000F0040000DA0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000016020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000940400001A01000069050000E10200001B0400004F000000F00400001602000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE90000004F000000ED000000F1020000010000000200001004000000010000002DFFFFFFCD050000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000790000001A01000062010000BE030000000000004F000000E9000000F10200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000002020000F00400000602000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000079000000D102000069050000700300000000000006020000F0040000A502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000060200007C020000A502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F102000060050000F50200000100000001000010040000000100000027FEFFFF01010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000079000000C2030000240700009C04000000000000F502000060050000CF0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000DA000000F0040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000084010000D30200009B0500005E030000D90000004F000000F0040000DA0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000016020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C6040000D30200009B0500009A0400001B0400004F000000F00400001602000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE90000004F000000ED00000007030000010000000200001004000000010000002DFFFFFFCD050000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000AB000000D30200009401000075050000000000004F000000E9000000070300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000002020000F00400000602000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000AB0000008A0400009B050000290500000000000006020000F0040000A502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000060200007C020000A502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000007030000600500000B0300000100000001000010040000000100000027FEFFFF01010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000AB000000790500000B06000053060000000000000B03000060050000E50300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2968 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000002000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001263616C6C6261636B5F6C6973745F68656164960000000000000014000C675F626C655F636F6E6669671263616C6C6261636B5F6C6973745F686561640A53575F76657273696F6E107379735F636F6E662E56455253494F4E0776657273696F6E1446756E6374696F6E616C436F64655F30335F30360B4261745F50657263656E740D4241545F4D6573736167655F740C4261745F4C6F775F566F6C740D766F6C746167655F7461626C65084241545F5378503116706D755F766F6C746167655F746F5F70657263656E7415636F756C6F6D705F766F6C746167655F7461626C65174241545F4C4556454C5F3050455243454E545F564F4C54184241545F4C4556454C5F383050455243454E545F564F4C54184241545F4C4556454C5F343050455243454E545F564F4C54104241545F4D6573736167655F496E69740F6170705F6D6F646275735F496E69740B4241545F4D657373616765116170705F72616461725F526563656976650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2952 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C675F626C655F636F6E6669679600000000000000140012426C654572726F72436F6465496E666F5F74000C675F626C655F636F6E6669671263616C6C6261636B5F6C6973745F686561640A53575F76657273696F6E107379735F636F6E662E56455253494F4E0776657273696F6E1446756E6374696F6E616C436F64655F30335F30360B4261745F50657263656E740D4241545F4D6573736167655F740C4261745F4C6F775F566F6C740D766F6C746167655F7461626C65084241545F5378503116706D755F766F6C746167655F746F5F70657263656E7415636F756C6F6D705F766F6C746167655F7461626C65174241545F4C4556454C5F3050455243454E545F564F4C54184241545F4C4556454C5F383050455243454E545F564F4C54184241545F4C4556454C5F343050455243454E545F564F4C54104241545F4D6573736167655F496E69740F6170705F6D6F646275735F496E69740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3633,18 +3633,18 @@ ..\BSP\BLE.c - 39 - 211 - 224 + 18 + 417 + 400 1 0 ..\BSP\BLE.h - 36 - 169 - 177 + 33 + 24 + 38 1 0