Index: Makefile
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/Makefile	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/Makefile	(working copy)
@@ -0,0 +1,112 @@
+	comma:= ,
+empty:=
+space:= $(empty) $(empty)
+bracketl:= (
+bracketl0:= \(
+bracketr:= )
+bracketr0:= \)
+
+
+OUTDIR = output
+ROOT_PATH =C:\Keil
+
+UTIL_PATH = ..\rom\util
+
+C51BIN = $(ROOT_PATH)\c51\bin
+C51   = $(C51BIN)\c51
+A51   = $(C51BIN)\ax51
+BL51  = $(C51BIN)\lx51
+OH51  = $(C51BIN)\Ohx51
+OC51  = $(C51BIN)\oc51
+LIB51 = $(C51BIN)\libx51
+
+TARGET = $(OUTDIR)\fw
+TARGETHEX = $(TARGET).hex
+
+
+RAMTARGET = $(OUTDIR)\fwram
+
+RAMTARGETHEX = $(addsuffix .hex, $(RAMTARGET))
+
+############################## IMPORTANT ####################################
+#   opt level greater than 7 cannot be used, or the ram code and the rom code will be different
+##############################################################################
+OPT_LEVEL=7
+
+LIST_FILE_CTL=PR($(@:obj=lst))
+
+C_OPTS = object($@) OBJECTADVANCED  browse DF(ENABLE_APE) $(LIST_FILE_CTL) \
+OT($(OPT_LEVEL),SPEED) large
+
+#ASM_OPTS =  $(LIST_FILE_CTL) object($@)
+ASM_OPTS = SET (large) DEBUG EP $(LIST_FILE_CTL) object($@)
+
+LINK_OPTS = \
+	CLASSES (XDATA (X:0x4dd0-X:0x4f40),\
+	CODE(C:0-C:0xffff), DATA(D:0x10-0x7f), IDATA(I:0x80-0xcf)) \
+	SEGMENTS($(DATA_MAP)) \
+	NOOVERLAY \
+	PAGELENGTH(60000) \
+	CODE
+
+DATA_MAP = ?STACK(D:0xD0)
+CODE_MAP = ?PR?RAMENTRY?JUMPTABLE(C:0x0), ?PR?*, ?C*
+
+LINK_OBJ_RAM = bluetooth global_variable kb_process keyscan led sys adc ram
+
+#LINK_OBJ_LIB = 
+
+LINK_OBJ_TMP_RAM = $(addsuffix .obj,$(LINK_OBJ_LIB) $(LINK_OBJ_RAM)) ..\patch\ipc.obj ..\patch\utilities.obj ..\patch\gpio.obj ..\patch\iic.obj
+LINK_OBJ_DEPENDENCIES_RAM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_RAM))
+LINK_OBJ_FILES_RAM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_RAM))
+
+LINK_OBJ_TMP_ROM = $(addsuffix .obj,$(LINK_OBJ_ROM))
+LINK_OBJ_DEPENDENCIES_ROM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_ROM))
+LINK_OBJ_FILES_ROM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_ROM))
+
+
+.SUFFIXES: .a51
+RAM_BIN = $(RAMTARGET).rom
+
+
+PROG_FILE = ..\rom\program\c51.prog
+RAM_FILES = $(RAM_MIF) $(RAM_BIN) $(EEPROM_FILE) $(PROG_FILE)
+
+$(OUTDIR)/%.obj : %.c hwreg.h
+	$(C51) $< "$(C_OPTS)"
+
+$(OUTDIR)/%.obj : %.a51
+	$(A51) $< "$(ASM_OPTS)"
+
+all : $(RAM_FILES) 
+
+
+$(TARGET) : $(LINK_OBJ_DEPENDENCIES_RAM)
+	$(BL51) $(LINK_OBJ_FILES_RAM) TO $@ "$(LINK_OPTS)"
+
+$(TARGETHEX) : $(TARGET)
+	$(OH51) $(TARGET)
+
+
+$(RAM_BIN) : $(TARGETHEX)
+
+
+$(RAM_MIF) : $(TARGETHEX)
+	perl $(UTIL_PATH)\hex2mif.pl < $< rammif > $@
+
+
+$(EEPROM_FILE) : $(RAM_BIN)
+	cd ..\rom\output; ..\util\geneep.exe; cp eeprom.dat ..\..\sim 
+
+$(PROG_FILE) : $(RAM_BIN)
+#	perl $(UTIL_PATH)\setarg.pl $< c51 > $@
+
+clean:  
+	del /Q $(OUTDIR)\*.* 
+
+
+lib:
+	$(LIB51) TRANSFER $(OUTDIR)\ipc.obj TO $(OUTDIR)\yichip.LIB
+	
+ext:
+	$(LIB51) EXTRACT $(OUTDIR)\yichip.LIB (ipc) TO $(OUTDIR)\ipc.obj
Index: YCkbTool.bat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/YCkbTool.bat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/YCkbTool.bat	(working copy)
@@ -0,0 +1,76 @@
+@echo off
+title %~0
+:start
+set/p cmd=Please enter cmd, c/C for compiling, and d/D for downloading:
+if /I "%cmd%" equ "a" (goto compile_all)
+if /I "%cmd%" equ "A" (goto compile_all)
+if /I "%cmd%" equ "c" (goto compile)
+if /I "%cmd%" equ "C" (goto compile)
+if /I "%cmd%" equ "d" (goto download)
+if /I "%cmd%" equ "D" (goto download)
+if /I "%cmd%" equ "k" (goto reset)
+if /I "%cmd%" equ "K" (goto reset)
+if "%cmd%" equ "" (goto error)  else (goto error)
+
+:compile_all
+cd ..\btkb
+call do eep
+cd ..\c51
+
+:compile
+make clean
+make
+
+util\hex2mif.exe < output\fw.hex ram > output\fwram.rom
+copy .\patch\kb.dat + .\patch\rf.dat .\patch\sch.rom 
+
+cd util
+
+perl transform_name2addr.pl ..\patch\sch.rom ..\output\sched.rom ..\patch\memmap.format
+cd ..
+
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+copy .\output\*.obj .\patch\*.obj
+
+copy .\util\eeprom2fulleeprom.exe .\eeprom2fulleeprom.exe
+copy .\util\crc16.exe .\crc16.exe
+
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+del *.lst
+del *.obj
+
+copy eeprom.dat ..\eeprom.dat
+cd ..
+eeprom2fulleeprom.exe eeprom.dat 256>compare2.dat
+crc16.exe compare2.dat 2 >.\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+del eeprom2fulleeprom.exe
+del crc16.exe
+
+:end
+set cmd=0
+echo/
+goto start
+
+:error
+echo Cmd error, enter again
+goto end
+
+:reset
+e pu
+e ku
+goto end
+
+:download
+e p
+e pu
+e ep
+e k
+e ku
+e a
+e au
+goto end
+
Index: adc.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/adc.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/adc.h	(working copy)
@@ -0,0 +1,51 @@
+#ifndef _ADC_H
+#define _ADC_H
+#include "common.h"
+
+#define ADC_ENABLE
+/***need to modify  mem_adc_config_flag in kb.dat at the same time****/
+#define ADC_TYPE_VINLPM			0x01	// 1.8V~3.6V
+// #define ADC_TYPE_HVIN			0x02	// 3.0~5.5V
+//#define ADC_TYPE_GPIO			0x04	// 0~1.5V
+
+
+// GPIO5 0x30,   GPIO6 0x31,   GPIO7 0x32,
+//GPIO18 0x33,   GPIO19 0x34,   GPIO20 0x35,   GPIO21 0x36,    GPIO22 0x37
+#define ADC_CHANNEL				0x33	
+
+
+#define BAT_STATUS_NONE			0
+#define BAT_STATUS_LOW				1
+#define BAT_STATUS_SHUT_DOWN		2
+
+//battery check
+#define BATTERY_CHECK_INTERVAL 		5			// 500ms*5 = 2.5s
+#define INIT_BATTERY_VALUE   				0x5454
+#define INIT_BATTERY_VALUE_GPIO			0x6262
+#define INIT_BATTERY_VALUE_VINLPM		0x5151
+#define LOW_BATTERY_FLASH_INTERVAL	12	
+
+// battery to gpio R = 1M
+#define LOW_BATTER_COEFFICIENT_1V5   	0.61
+#define LOW_BATTER_COEFFICIENT_1V1   	0.33
+#define LOW_BATTER_COEFFICIENT_1V0       0.27
+#define LOW_BATTER_COEFFICIENT_0V9	0.19
+
+#define LOW_BATTER_COEFFICIENT_2V2   	0.74
+#define LOW_BATTER_COEFFICIENT_2V0       0.67
+
+#define LOW_BATTER_COEFFICIENT_3V7   	1.24
+#define LOW_BATTER_COEFFICIENT_3V4   	1.11
+#define LOW_BATTER_COEFFICIENT_3V3   	1.11
+#define LOW_BATTER_COEFFICIENT_3V2       1.07
+#define LOW_BATTER_COEFFICIENT_3V1	1.04
+#define LOW_BATTER_COEFFICIENT_3V0	1.01
+
+
+void YC_adc_check_timer500ms();
+void YC_adc_check() ;
+void YC_adc_init();
+
+#endif /* YC_ADC_H */
+
+
Index: adc.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/adc.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/adc.c	(working copy)
@@ -0,0 +1,131 @@
+#include "adc.h"
+
+void YC_adc_init()
+{
+#ifdef  ADC_ENABLE
+	byte i;
+	
+	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+	g_variable.battery_value_index = 0;
+
+#ifdef ADC_TYPE_HVIN 	
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
+	{
+		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+	}
+	g_variable.battery_level_full = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V7+m_adc0vBase;
+	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V4+m_adc0vBase;
+	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+#endif
+#ifdef ADC_TYPE_VINLPM
+		for (i = 0; i < BAT_ARRAY_LEN; i++)
+		{
+			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
+		}
+		g_variable.battery_level_full = m_adc3vValue;
+		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V4+m_adc0vBase;
+		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V1+m_adc0vBase;
+#endif
+#ifdef ADC_TYPE_GPIO
+	m_adc_channel = ADC_CHANNEL;
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
+	{
+		g_variable.battery_value[i] = INIT_BATTERY_VALUE_GPIO;
+	}
+	g_variable.battery_level_full = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V5+m_adc0vBase;
+	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
+	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+#endif
+#else
+	m_le_battery_level_display_enable = 0;
+#endif
+}
+
+void YC_adc_check() 
+{
+#ifdef  ADC_ENABLE
+	byte i;
+	ulong batValue = 0;
+
+	if(m_adcCurrentValue < m_adc0vBase)
+		return;
+
+	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
+	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+		g_variable.battery_value_index = 0;
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
+	{
+		batValue += g_variable.battery_value[i];
+	}
+	batValue = batValue/BAT_ARRAY_LEN;
+
+	if(batValue <= g_variable.battery_level_shutdown)
+		g_variable.battery_level_percentage = 0;
+	else	if(batValue >= g_variable.battery_level_full)
+		g_variable.battery_level_percentage = 100;
+	else	
+		g_variable.battery_level_percentage = (byte)(((batValue - g_variable.battery_level_shutdown)*100)/(g_variable.battery_level_full -g_variable.battery_level_shutdown) );
+	
+	if(batValue < g_variable.battery_level_shutdown)
+	{
+		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+		if(g_variable.last_battery_status != BAT_STATUS_SHUT_DOWN)
+		{
+			g_variable.battery_shutdown_flag = 1;
+			IIC_WriteBlock(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+		}
+	}
+	else
+	{
+		if((g_variable.last_battery_status == BAT_STATUS_SHUT_DOWN) ||(g_variable.battery_shutdown_flag == 1))
+		{
+			g_variable.battery_shutdown_flag = 0;
+			IIC_WriteBlock(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+		}
+		
+		if (batValue < g_variable.battery_level_low)
+		{
+			g_variable.battery_status = BAT_STATUS_LOW;
+			if(!g_variable.g24_long_sleep_flag)
+			{
+			m_24g_enter_hibernate[0]	= 0x00;
+			m_24g_enter_hibernate[1]	= 0x48;
+			m_24g_enter_hibernate[2]	= 0x12;		// 100ms
+			m_24g_enter_hibernate[3]	= 0x00;
+			}
+		}
+		else
+		{
+			g_variable.battery_status = BAT_STATUS_NONE;
+			if(!g_variable.g24_long_sleep_flag)
+			{
+			m_24g_enter_hibernate[0]	= 0x00;
+			m_24g_enter_hibernate[1]	= 0x48;
+			m_24g_enter_hibernate[2]   = 0x5d;		// 510ms
+			m_24g_enter_hibernate[3]	= 0x00;
+			}
+		}
+	}
+
+	g_variable.last_battery_status = g_variable.battery_status;
+#endif	
+}
+
+
+void YC_adc_check_timer500ms()
+{
+#ifdef  ADC_ENABLE
+	// adc check timer	
+	if (g_variable.battery_check_interval)
+	{
+		g_variable.battery_check_interval--;
+		if (g_variable.battery_check_interval == 0)
+		{
+			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+			YC_adc_check();
+		}
+	}
+#endif	
+}
+
+
Index: bluetooth.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/bluetooth.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/bluetooth.h	(working copy)
@@ -0,0 +1,40 @@
+#ifndef _BLUETOOTH_H
+#define _BLUETOOTH_H
+#include "common.h"
+
+#ifndef BT_FAST_CONNECT_ENABLE
+#define BLE_FAST_CONNECT_ENABLE
+#endif
+
+#ifndef BLE_FAST_CONNECT_ENABLE
+#define BT_FAST_CONNECT_ENABLE
+#endif
+
+#define DEVICE_MODE_BT_ONLY	0
+#define DEVICE_MODE_BLE_ONLY	0
+#define DEVICE_MODE_BT_BLE		1
+
+#define TYPE_BLE			0x01
+#define TYPE_BT			0x02
+#define TYPE_24G			0x03
+
+
+void YC_load_record_list(byte index);
+void YC_store_record_list(byte link_type,byte index);
+byte YC_check_is_connected();
+byte YC_check_need_reconnected();
+byte YC_cancel_reconnect();
+void YC_clear_reconnect_flag();
+byte YC_disconnect_all_link();
+byte YC_g24_mode_discovery();
+void YC_start_reconnect();
+void YC_update_eeprom_data();
+
+
+void YC_get_ble_ramdon_lap();
+void  YC_clear_BT_same_address_record();
+
+
+#endif /* _BLUETOOTH_H */
+
+
Index: bluetooth.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/bluetooth.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/bluetooth.c	(working copy)
@@ -0,0 +1,322 @@
+#include "bluetooth.h"
+
+
+void YC_load_record_list(byte index)
+{
+	if (g_variable.recon_count == 0)
+		return;
+	g_variable.recon_count--;
+	ble_reconnect_flag = 0;
+	fast_connect_flag = 0;
+	if (bd_key_record_list[index].device_type == TYPE_BLE)		
+	{
+		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+		xmemcpy(m_le_ltk,bd_key_record_list[index].device_link_key,16);
+		xmemcpy(m_le_lap,bd_key_record_list[index].local_addr,6);
+		IPC_TxControlCmd(IPC_CMD_START_ADV_REC);		//ble reconnect
+		ble_reconnect_flag = 1;
+		g_variable.recon_count = 0;
+		m_ltk_exists = 1;
+	}
+	else if (bd_key_record_list[index].device_type == TYPE_BT)
+	{
+		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+		xmemcpy(m_linkkey,bd_key_record_list[index].device_link_key,16);
+		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+		m_link_key_exists = 1;
+	}
+	else		
+	{
+		fast_connect_flag = 1;
+	#ifdef BLE_FAST_CONNECT_ENABLE
+			m_le_lap[0] = 0x0F;
+			m_le_lap[1] = 0x0F;
+			m_le_lap[2] = 0x0F;
+			m_le_lap[3] = 0x0F;
+			m_le_lap[4] = 0x0F;
+			m_le_lap[5] = 0x0F;
+			ble_fast_connect_flag =1;
+			IPC_TxControlCmd(IPC_CMD_START_ADV_REC);
+			m_link_key_exists = 1;
+	#endif
+	#ifdef BT_FAST_CONNECT_ENABLE
+			m_reconn_addr[0] = 0xFF;
+			m_reconn_addr[1] = 0xFF;
+			m_reconn_addr[2] = 0xFF;
+			m_reconn_addr[3] = 0xFF;
+			m_reconn_addr[4] = 0xFF;
+			m_reconn_addr[5] = 0xFF;
+			xmemclear_ff((byte *)m_linkkey,16); 
+			IPC_TxControlCmd(IPC_CMD_RECONNECT);
+			m_link_key_exists = 1;	
+			g_variable.fast_connect_send_name = 1;
+	#endif
+	}	
+}
+
+
+
+void YC_store_record_list(byte link_type,byte index)
+{
+	if (link_type == TYPE_BLE) 
+	{
+		bd_key_record_list[index].device_type = TYPE_BLE;
+		xmemcpy(bd_key_record_list[index].device_addr,m_remote_le_addr,6);
+		xmemcpy(bd_key_record_list[index].device_link_key,m_le_ltk,16);
+		xmemcpy(bd_key_record_list[index].local_addr,m_le_lap,6);
+	}
+	else if (link_type == TYPE_BT)
+	{
+		bd_key_record_list[index].device_type = TYPE_BT;
+		xmemcpy(bd_key_record_list[index].device_addr,m_remote_addr,6);
+		xmemcpy(bd_key_record_list[index].device_link_key,m_linkkey,16);
+	}
+}
+
+
+byte YC_check_is_connected()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED
+		|| g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED
+		|| g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		return 1;
+	}
+	return 0;
+}
+
+byte YC_check_need_reconnected()
+{
+	byte return_val = 0;
+	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+		return return_val;
+#if 1
+#if DEVICE_MODE_BT_ONLY
+	if ((m_ui_state_map & 0x4000) == 0x4000)
+#elif DEVICE_MODE_BLE_ONLY	
+	if ((m_ui_state_map & 0x0008) == 0x0008)
+#else	
+	if ((m_ui_state_map & 0x4008) == 0x4008)		//ADV and DISCOVERY
+#endif	
+         return return_val;
+#else
+          if(g_variable.modeflag == 1)
+          {
+                  if ((m_ui_state_map & 0x4000) == 0x4000)
+                      return return_val;
+          }
+          else if(g_variable.modeflag == 2)
+          {
+                 if ((m_ui_state_map & 0x0008) == 0x0008)
+                    return return_val;
+          }
+#endif
+
+
+	if(g_variable.pairing_g24_timeout)
+		return return_val;
+
+	if ( g_variable.br_currentState == CHANGE_TO_BR_DISCONNECT
+		&& g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT
+		&& g_variable.g24_currentState != CHANGE_TO_24G_CONNECTED
+	)
+	{
+		if(g_variable.recon_delay == 0)
+		{
+			g_variable.recon_delay = 10;
+			if ((g_variable.recon_count == 0)
+			&& (power_on_flag == 2))
+			{				
+				if (g_variable.current_device_num >= 1 && g_variable.current_device_num <= 3)
+				{
+					YC_key_action_handle(g_variable.current_device_num);
+				}
+				else
+				{
+					YC_key_action_handle(KEY_OPEN_24G);
+					return_val = 1;
+				}
+			}
+		}
+	}
+	else
+	{
+		g_variable.release_data = 0;
+		return_val = 1;
+	}
+	return return_val;
+}
+
+
+byte YC_cancel_reconnect()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_RECONNECT)
+	{
+		IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+		return 1;
+	}
+
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_DIRECT_ADV)
+	{
+		//stop adv
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		return 1;
+	}
+	return 0;
+}
+
+
+void YC_clear_reconnect_flag()  
+{
+	g_variable.recon_count = 0;
+	ble_reconnect_flag = 0;
+}
+
+
+byte YC_disconnect_all_link()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED 
+		||g_variable.br_currentState == CHANGE_TO_BR_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+		return 1;
+	}
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED 
+		||g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+		return 1;
+	}
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+		return 1;
+	}
+	return 0;
+}
+
+byte YC_g24_mode_discovery()
+{
+	if (g_variable.last_device_num == 0xfe ||g_variable.last_device_num == 0x00)
+	{
+		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+		return 1;
+	}
+	return 0;
+}
+
+
+
+void YC_start_reconnect()
+{
+	power_on_flag = 2;
+
+	IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3, (byte *)bd_key_record_list);
+	Delay1ms(10);
+	IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+	Delay1ms(10);
+	IIC_Read(EEPROM_RECON_INFO_G24_FN_LOCK ,1 ,(byte *)&fn_lock_flag);
+	Delay1ms(10);
+	//IIC_Read(EEPROM_RECON_INFO_G24_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+	//Delay1ms(10);
+	
+	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+	{
+		//g_variable.system_mode = bd_key_record_list[g_variable.current_device_num - 1].system_mode;
+		fn_lock_flag = bd_key_record_list[g_variable.current_device_num - 1].fn_lock; 
+		YC_key_action_handle(g_variable.current_device_num);
+	}
+	else	
+	{	
+		YC_key_action_handle(KEY_START_24G);
+	}
+	if(fn_lock_flag > 1)
+		fn_lock_flag = 0;
+	//if(g_variable.system_mode > OSMODE_IOS)
+	//{
+		//g_variable.system_mode = OSMODE_WINDOWS;
+	//}	
+}
+
+
+
+void YC_get_ble_ramdon_lap()		
+{
+	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+	g_variable.ble_ramdon_lap1++;
+	g_variable.ble_ramdon_lap2++;
+	m_le_lap[1] = g_variable.ble_ramdon_lap1;
+	m_le_lap[2] = g_variable.ble_ramdon_lap2;
+	m_le_lap[3] = le_lap_temp[0];
+	m_le_lap[4] = le_lap_temp[1];
+	m_le_lap[5] = le_lap_temp[2];
+}
+
+
+void  YC_clear_BT_same_address_record()
+{
+	byte record_index;
+	//if (pinCode_flag == 1)			//clear the same BT3.0 device address record
+	{
+		record_index = g_variable.current_device_num-1;
+		pinCode_flag= 0;
+		YC_store_record_list(2, record_index);
+
+		if(record_index != 0)
+		{
+			if(bd_key_record_list[0].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[0].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[0]), sizeof(BD_KEY_RECORD));
+			}
+		}
+
+		if(record_index != 1)
+		{
+			if(bd_key_record_list[1].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[1].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[1]), sizeof(BD_KEY_RECORD));
+			}
+		}
+
+		if(record_index != 2)
+		{
+			if(bd_key_record_list[2].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[2].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[2]), sizeof(BD_KEY_RECORD));
+			}
+		}	
+	}
+}
+
+
+
+void YC_update_eeprom_data()
+{
+	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
+	{
+		if (g_variable.update_eeprom_flag != EEPROM_STORE_TYPE_NORMAL)
+			Delay1ms(200);
+		GPIO_Setout(EEPROM_WP_GPIO,0);
+		if (g_variable.update_eeprom_flag == EEPROM_STORE_TYPE_G24)
+		{
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+			IIC_WriteBlock(EEPROM_RECON_INFO_G24_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+			IIC_WriteBlock(EEPROM_RECON_INFO_G24_FN_LOCK ,1 ,(byte *)&fn_lock_flag);
+		}	
+		else if (g_variable.update_eeprom_flag == EEPROM_STORE_TYPE_BT)
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,(sizeof(BD_KEY_RECORD)*3) , (byte *)&bd_key_record_list);
+		
+		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,1 ,(byte *)&g_variable.last_device_num);
+		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+
+		GPIO_Setout(EEPROM_WP_GPIO,1);
+		Delay1ms(10);
+		g_variable.update_eeprom_flag = 0;
+	}
+}
+
Index: btreg.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/btreg.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/btreg.h	(working copy)
@@ -0,0 +1,1150 @@
+#ifndef _BT_REG_H_
+#define _BT_REG_H_
+#define	mem_le_adv_transmit                     	0x0000
+#define	mem_le_adv_waitcnt                      	0x0001
+#define	mem_le_adv_rcv                          	0x0002
+#define	mem_le_req_rcv                          	0x0003
+#define	mem_le_scanrsp_rcv                      	0x0004
+#define	mem_le_conn_rcv                         	0x0005
+#define	mem_inquiryscan_waitcnt                 	0x0006
+#define	mem_inquiryscan_rcvcnt                  	0x0007
+#define	mem_pagescan_waitcnt                    	0x0008
+#define	mem_pagescan_rcvcnt                     	0x0009
+#define	mem_pagescan_rcvfhscnt                  	0x000a
+#define	mem_slave_rcvcnt                        	0x000b
+#define	mem_page_transmit                       	0x000c
+#define	mem_page_rcv                            	0x000d
+#define	mem_page_rcv_fhs                        	0x000e
+#define	mem_master_rcvcnt                       	0x000f
+#define	mem_fhs_wait_counter                    	0x0010
+#define	mem_newconnto_counter                   	0x0011
+#define	mem_inquiry_transmit                    	0x0012
+#define	mem_inquiry_rcv                         	0x0013
+#define	mem_fw_ver                              	0x0014
+#define	mem_current_context                     	0x0015
+#define	mem_le_ch_mapped                        	0x0016
+#define	mem_last_freq                           	0x0017
+#define	mem_rssi                                	0x0018
+#define	mem_rx_type                             	0x0019
+#define	mem_rx_hec_err                          	0x001a
+#define	mem_rx_crc_err                          	0x001c
+#define	mem_context_ptr                         	0x001e
+#define	mem_display                             	0x0020
+#define	mem_bcd                                 	0x0028
+#define	mem_state                               	0x0030
+#define	mem_mode                                	0x0031
+#define	mem_tsniff                              	0x0032
+#define	mem_sniff_anchor                        	0x0034
+#define	mem_clk_offset                          	0x0038
+#define	mem_rx_window                           	0x003e
+#define	mem_plap                                	0x0040
+#define	mem_puap                                	0x0043
+#define	mem_pnap                                	0x0044
+#define	mem_conn_handle                         	0x0046
+#define	mem_arq                                 	0x0047
+#define	mem_lmp_to_send                         	0x0048
+#define	mem_lmi_opcode                          	0x0049
+#define	mem_lmo_reason                          	0x004a
+#define	mem_op                                  	0x004b
+#define	mem_state_map                           	0x004c
+#define	mem_supervision_timer                   	0x004d
+#define	mem_supervision_to                      	0x0051
+#define	mem_name_offset                         	0x0053
+#define	mem_key_size                            	0x0054
+#define	mem_conn_sm                             	0x0055
+#define	mem_aco                                 	0x0056
+#define	mem_kc                                  	0x0062
+#define	mem_conn_timer                          	0x0072
+#define	mem_sniff_attempt                       	0x0073
+#define	mem_sniff_timeout                       	0x0074
+#define	mem_dsniff                              	0x0075
+#define	mem_amaddr                              	0x0077
+#define	mem_lmo_opcode1                         	0x0078
+#define	mem_lmi_opcode1                         	0x0079
+#define	mem_lmo_reason1                         	0x007a
+#define	mem_lmo_tid1                            	0x007b
+#define	mem_lmo_opcode2                         	0x007c
+#define	mem_lmi_opcode2                         	0x007d
+#define	mem_lmo_reason2                         	0x007e
+#define	mem_lmo_tid2                            	0x007f
+#define	mem_hci_version                         	0x0080
+#define	mem_acl_pktlen                          	0x0083
+#define	mem_sco_pktlen                          	0x0085
+#define	mem_acl_pktcnt                          	0x0086
+#define	mem_sco_pktcnt                          	0x0088
+#define	mem_current_sniff_attempt               	0x008a
+#define	mem_current_sniff_timeout               	0x008b
+#define	mem_nfreq_index_inq                     	0x008c
+#define	mem_nfreq_index_page                    	0x008d
+#define	mem_ninqy_index                         	0x008e
+#define	mem_fhs_misc                            	0x008f
+#define	mem_tx_lch                              	0x0090
+#define	mem_tx_len                              	0x0091
+#define	mem_subsniff_instant                    	0x0093
+#define	mem_subsniff_rate                       	0x0097
+#define	mem_subsniff_tcmax                      	0x0098
+#define	mem_subsniff_tsniff                     	0x009a
+#define	mem_lpm_adjust                          	0x009b
+#define	mem_sync_clke                           	0x009c
+#define	mem_lpm_current_mult                    	0x00a2
+#define	mem_gpio_wakeup_low                     	0x00a3
+#define	mem_gpio_wakeup_high                    	0x00a7
+#define	mem_air_mode                            	0x00ab
+#define	mem_sco_asso_handle                     	0x00ac
+#define	mem_sco_handle                          	0x00ad
+#define	mem_esco_desco                          	0x00af
+#define	mem_esco_type                           	0x00b0
+#define	mem_neogotiation_state                  	0x00b1
+#define	mem_saved_amaddr                        	0x00b2
+#define	mem_esco_arq                            	0x00b3
+#define	mem_esco_saved_arq                      	0x00b4
+#define	mem_sco_obuf                            	0x00b5
+#define	mem_sco_ibuf                            	0x00d3
+#define	mem_sco_poll                            	0x00f1
+#define	mem_npage_index                         	0x00f2
+#define	mem_page_mode                           	0x00f3
+#define	mem_page_clk                            	0x00f4
+#define	mem_tst_pktcnt_sync                     	0x00f8
+#define	mem_tst_pktcnt_hec                      	0x00fa
+#define	mem_tst_pktcnt_crc                      	0x00fc
+#define	mem_tst_pktcnt_dmh                      	0x00fe
+#define	mem_tmp_buffer_head                     	0x0100
+#define	mem_tmp_buffer                          	0x0103
+#define	mem_tester_emulate                      	0x0153
+#define	mem_temp_payload                        	0x0154
+#define	test_mode_scenario                      	0x0154
+#define	test_mode_hopping_mode                  	0x0155
+#define	test_mode_tx_freq                       	0x0156
+#define	test_mode_rx_freq                       	0x0157
+#define	test_mode_power_mode                    	0x0158
+#define	test_mode_poll_period                   	0x0159
+#define	test_mode_packet_type                   	0x015a
+#define	test_mode_data_length                   	0x015b
+#define	mem_test_mode_old_debug_config          	0x015d
+#define	mem_tester_cnt                          	0x015e
+#define	mem_temp_am_addr                        	0x015f
+#define	mem_temp_arq                            	0x0160
+#define	mem_pdatatemp                           	0x0161
+#define	mem_len                                 	0x0169
+#define	mem_clkn_bt                             	0x016b
+#define	mem_clke_bt                             	0x016f
+#define	mem_dpll_clkn                           	0x0173
+#define	mem_connection_options                  	0x0177
+#define	mem_nameres_cnt                         	0x0178
+#define	mem_txptr                               	0x0179
+#define	mem_slot_offset                         	0x017b
+#define	extm_fhs_misc                           	0x017d
+#define	extm_newconn_am_addr                    	0x017e
+#define	extm_class                              	0x017f
+#define	extm_lap                                	0x0182
+#define	extm_uap                                	0x0185
+#define	extm_nap                                	0x0186
+#define	mem_debug_config                        	0x0189
+#define	mem_lch_code                            	0x018a
+#define	mem_fhs_am_addr                         	0x018b
+#define	mem_dpll_error                          	0x018c
+#define	mem_bdaddr_list_buff                    	0x018e
+#define	mem_select_list_item                    	0x01b2
+#define	mem_temp_reconn_record                  	0x01b3
+#define	mem_record_bt_mode                      	0x01b3
+#define	mem_temp_lap                            	0x01b4
+#define	mem_list_item_ptr                       	0x01ba
+#define	mem_eir                                 	0x01bc
+#define	mem_ucode_status                        	0x0220
+#define	mem_otp_ucode_flag                      	0x0221
+#define	mem_spid_tbuf                           	0x0223
+#define	mem_iicd_tbuf                           	0x0224
+#define	mem_addr_hi                             	0x0224
+#define	mem_addr_mi                             	0x0225
+#define	mem_addr_lo                             	0x0226
+#define	mem_iicd_addr                           	0x0227
+#define	mem_spid_rbuf                           	0x0228
+#define	mem_ucode_buf                           	0x022c
+#define	mem_ucode_len                           	0x022e
+#define	mem_sched_addr                          	0x0230
+#define	mem_ucode_ptr                           	0x0232
+#define	mem_ucode_keybuf                        	0x0234
+#define	mem_check_plap_temp                     	0x0244
+#define	mem_sensor_id                           	0x0256
+#define	mem_reconnect_flag                      	0x0257
+#define	mem_switch_fail_master_count            	0x0258
+#define	mem_app_evt_timer_count                 	0x0259
+#define	mem_dongle_count                        	0x025a
+#define	mem_le_addr_slave1                      	0x025b
+#define	mem_le_addr_slave2                      	0x0261
+#define	mem_le_peer_state                       	0x0267
+#define	mem_app_peer_addr                       	0x0268
+#define	mem_dongle_peers                        	0x026e
+#define	mem_dongle_pairing_cnt                  	0x026f
+#define	mem_dongle_signature                    	0x0270
+#define	mem_h5rx_ackcnt                         	0x0272
+#define	mem_check_err_acl_cont                  	0x0273
+#define	mem_rp_packets                          	0x0274
+#define	mem_packet_type                         	0x0275
+#define	mem_hci_sniff_conn_handle               	0x0277
+#define	mem_hci_sniff_max_interval              	0x0279
+#define	mem_hci_sniff_min_interval              	0x027b
+#define	mem_hci_sniff_attempt                   	0x027d
+#define	mem_hci_sniff_timeout                   	0x027f
+#define	mem_voice_setting                       	0x0281
+#define	mem_retransmission_effort               	0x0283
+#define	mem_sco_ptype                           	0x0284
+#define	mem_extm_uap_restore                    	0x0286
+#define	mem_h5rx_rptr                           	0x0289
+#define	mem_h5rx_ack                            	0x028b
+#define	mem_h5tx_ack                            	0x028c
+#define	mem_h5tx_rptr                           	0x028d
+#define	mem_h5tx_wptr                           	0x028f
+#define	mem_h5tx_free                           	0x0291
+#define	mem_h5rx_tmp                            	0x0293
+#define	mem_h5tx_seq                            	0x0294
+#define	mem_hci_acl_queue_wptr                  	0x0295
+#define	mem_hci_acl_queue_rptr                  	0x0297
+#define	mem_hci_acl_queue_end                   	0x0299
+#define	mem_hci_acl_queue_wcnt                  	0x029b
+#define	mem_hci_acl_cnt                         	0x029c
+#define	mem_hci_acl_tx_trigger_wptr             	0x029d
+#define	mem_ucode_id_local                      	0x029f
+#define	mem_temp                                	0x02a0
+#define	mem_timeup                              	0x02a8
+#define	mem_rega                                	0x02ac
+#define	mem_regb                                	0x02b0
+#define	mem_regc                                	0x02b4
+#define	mem_contr                               	0x02b7
+#define	mem_contw                               	0x02b9
+#define	mem_ucode_id_remote                     	0x02bb
+#define	mem_check_sum                           	0x02bc
+#define	mem_ucode_temp                          	0x02bd
+#define	mem_ucode_temp1                         	0x02be
+#define	mem_lock_in_enc                         	0x02bf
+#define	mem_hci_disconn_reason                  	0x02c0
+#define	mem_hci_curr_len                        	0x02c1
+#define	mem_hci_curr_target                     	0x02c2
+#define	mem_l2cap_mem_start                     	0x02c4
+#define	mem_l2cap_rxbuff1_len                   	0x02c4
+#define	mem_l2cap_rxbuff2_len                   	0x02c6
+#define	mem_l2cap_rxbuff_new                    	0x02c8
+#define	mem_l2cap_rxbuff_inuse                  	0x02ca
+#define	mem_l2cap_payload_ptr                   	0x02cb
+#define	mem_l2cap_rx_pkt_length                 	0x02cd
+#define	mem_l2cap_rx_cid                        	0x02cf
+#define	mem_l2cap_rx_done                       	0x02d1
+#define	mem_l2cap_signal_tx_buff_ptr            	0x02d2
+#define	mem_l2cap_signal_tx_payload_ptr         	0x02d4
+#define	mem_l2cap_signal_tx_length              	0x02d6
+#define	mem_sdp_tx_buff_ptr                     	0x02d8
+#define	mem_sdp_tx_payload_ptr                  	0x02da
+#define	mem_sdp_tx_pkt_length                   	0x02dc
+#define	mem_rfcomm_tx_buff_ptr                  	0x02de
+#define	mem_rfcomm_tx_payload_ptr               	0x02e0
+#define	mem_rfcomm_tx_pkt_length                	0x02e2
+#define	memL2CAP_T1                             	0x02e4
+#define	mem_CONTROL_tasks                       	0x02e6
+#define	mem_send_config_req                     	0x02e7
+#define	mem_config_identifier                   	0x02e8
+#define	mem_config_req_dest_CID                 	0x02e9
+#define	mem_rfcomm_malloc_fail_flag             	0x02eb
+#define	mem_message_to_uppersm                  	0x02ec
+#define	mem_upper_sm_remote_page                	0x02ed
+#define	mem_upper_sm_reconn                     	0x02ee
+#define	mem_upper_sm_ss                         	0x02ef
+#define	mem_tx_malloc_log                       	0x02f0
+#define	mem_l2cap_mem_end                       	0x0330
+#define	mem_scid                                	0x0330
+#define	mem_cmd_length                          	0x0332
+#define	mem_tt2                                 	0x0334
+#define	mem_tt3                                 	0x0336
+#define	mem_id                                  	0x0338
+#define	mem_psm                                 	0x033a
+#define	mem_l2cap_sdpres_delay_time             	0x033c
+#define	mem_le_rxbuf                            	0x0340
+#define	mem_le_mic                              	0x0378
+#define	mem_le_peer_mic                         	0x037c
+#define	mem_le_skdm                             	0x0380
+#define	mem_le_skds                             	0x0388
+#define	mem_le_peer_ltk                         	0x0390
+#define	mem_le_my_ltk                           	0x03a0
+#define	mem_le_mrand                            	0x03b0
+#define	mem_le_state                            	0x03c0
+#define	mem_le_mode                             	0x03c1
+#define	mem_le_tsniff                           	0x03c2
+#define	mem_le_anchor                           	0x03c4
+#define	mem_le_clk_offset                       	0x03c8
+#define	mem_le_receive_window                   	0x03ce
+#define	mem_le_plap                             	0x03d0
+#define	mem_le_conn_handle                      	0x03d6
+#define	mem_le_arq                              	0x03d7
+#define	mem_le_ch                               	0x03d8
+#define	mem_le_hop                              	0x03d9
+#define	mem_le_event_count                      	0x03da
+#define	mem_le_supervision_timer                	0x03dc
+#define	mem_le_instant                          	0x03e0
+#define	mem_le_channels                         	0x03e2
+#define	mem_le_conn_sm                          	0x03e3
+#define	mem_le_op                               	0x03e4
+#define	mem_le_access                           	0x03e5
+#define	mem_le_crcinit                          	0x03e9
+#define	mem_le_window_size                      	0x03ec
+#define	mem_le_slave_latency                    	0x03ed
+#define	mem_le_superto                          	0x03ef
+#define	mem_le_channel_map                      	0x03f1
+#define	mem_le_no_using                         	0x03f6
+#define	mem_le_peer_sca                         	0x03f8
+#define	mem_le_att_opcode                       	0x03f9
+#define	mem_le_att_handle                       	0x03fa
+#define	mem_le_err_code                         	0x03fc
+#define	mem_le_sk                               	0x03fd
+#define	mem_le_testtype                         	0x040d
+#define	mem_le_test_sync                        	0x040e
+#define	mem_le_test_pcnt                        	0x0410
+#define	mem_le_rxon_ts                          	0x0412
+#define	mem_le_rx_ll_opcode                     	0x0418
+#define	mem_le_notify_attr_start                	0x0419
+#define	mem_le_notify_len                       	0x041b
+#define	mem_cmd_le_create_conn                  	0x041c
+#define	mem_le_adv_temp                         	0x041d
+#define	mem_24g_id                              	0x0431
+#define	mem_lmo_header_length                   	0x0432
+#define	mem_lmo_header_opcode                   	0x0433
+#define	mem_lmo_payload                         	0x0434
+#define	mem_lmi_accepted_opcode                 	0x0445
+#define	mem_disconn_reason_send                 	0x0446
+#define	mem_tx_fixed_freq                       	0x0447
+#define	mem_rx_fixed_freq                       	0x0448
+#define	mem_ext_features_page                   	0x0449
+#define	mem_lmpext_ssp_enable                   	0x044a
+#define	mem_remote_sppcap                       	0x044c
+#define	mem_lmp_conn_state                      	0x044d
+#define	mem_soft_timer                          	0x044e
+#define	mem_pincode_state                       	0x0450
+#define	mem_sres_tid                            	0x0451
+#define	mem_accptsco_tid                        	0x0452
+#define	mem_auth_enable                         	0x0453
+#define	mem_wait_encryption                     	0x0454
+#define	mem_sniff_payload                       	0x0455
+#define	mem_aurand_send_delay_time              	0x0465
+#define	mem_module_temp_len                     	0x0469
+#define	mem_init_cnt                            	0x046b
+#define	mem_prcp_data                           	0x046d
+#define	mem_prcp                                	0x0481
+#define	mem_prcp_tx_len                         	0x0482
+#define	rx_buf_data_ptr                         	0x0483
+#define	memRemoteRPNBitRate                     	0x0485
+#define	memRemotePRNDataBits                    	0x0486
+#define	memRemotePRNStopBit                     	0x0487
+#define	memRemotePRNParity                      	0x0488
+#define	memRemotePRNFlowControl                 	0x0489
+#define	memRemotePRNXon                         	0x048a
+#define	memRemotePRNXoff                        	0x048b
+#define	mem_mod2div_temp                        	0x048c
+#define	mem_contw_temp                          	0x048f
+#define	mem_attrib_list                         	0x0491
+#define	mem_current_adss                        	0x0493
+#define	mem_current_channel                     	0x0494
+#define	mem_current_frame_type                  	0x0495
+#define	mem_current_fcs                         	0x0496
+#define	mem_current_length                      	0x0497
+#define	mem_rfcomm_uih_payload_ptr              	0x0499
+#define	mem_uih_cmd_type                        	0x049b
+#define	mem_uih_length                          	0x049c
+#define	mem_param_payload_ptr                   	0x049e
+#define	mem_ms_param                            	0x04a0
+#define	mem_pn_credit_flow_type_info            	0x04a1
+#define	mem_pn_priority                         	0x04a2
+#define	mem_pn_acknowledg_timer                 	0x04a3
+#define	mem_pn_max_retrans                      	0x04a4
+#define	mem_rfcomm_send_adss                    	0x04a5
+#define	mem_rfcomm_send_frame_type              	0x04a6
+#define	mem_rfcomm_send_fcs                     	0x04a7
+#define	mem_rfcomm_send_offset                  	0x04a8
+#define	mem_sdp_mem_start                       	0x04a9
+#define	mem_uuid_search_pat                     	0x04a9
+#define	mem_sdp_continue_byte                   	0x04ad
+#define	mem_sdp_pduid                           	0x04af
+#define	mem_sdp_transactionid                   	0x04b0
+#define	mem_sdp_attribute_maxbyte               	0x04b2
+#define	mem_sdp_record_maxcnt                   	0x04b4
+#define	mem_sdp_error_code                      	0x04b6
+#define	mem_sdp_record_handle                   	0x04be
+#define	mem_sdp_search_failed                   	0x04c2
+#define	mem_sdp_LACAP_found                     	0x04c3
+#define	mem_sdp_RFCOMM_found                    	0x04c4
+#define	mem_handle_list                         	0x04c5
+#define	mem_handle_humber                       	0x04dd
+#define	mem_sdp_mem_end                         	0x04de
+#define	mem_rxbuf                               	0x04de
+#define	mem_random_number                       	0x04ef
+#define	mem_round_key                           	0x04ff
+#define	mem_kinit                               	0x050f
+#define	mem_input_store                         	0x051f
+#define	mem_x                                   	0x052f
+#define	mem_y                                   	0x053f
+#define	mem_y15                                 	0x054e
+#define	mem_pin_length                          	0x054f
+#define	mem_pin                                 	0x0550
+#define	mem_key_store                           	0x0560
+#define	mem_key_store_end                       	0x0571
+#define	memp_ar_key                             	0x0572
+#define	memp_ar_input                           	0x0574
+#define	mem_ar_hround                           	0x0576
+#define	mem_ec_infinite                         	0x0580
+#define	mem_ec_loopc                            	0x0581
+#define	memdat                                  	0x0582
+#define	mem_ax                                  	0x0582
+#define	mem_ay                                  	0x059a
+#define	mem_az                                  	0x05b2
+#define	mem_bx                                  	0x05ca
+#define	mem_by                                  	0x05e2
+#define	mem_bz                                  	0x05fa
+#define	mem_cx                                  	0x0612
+#define	mem_cy                                  	0x062a
+#define	mem_cy5                                 	0x0641
+#define	mem_cz                                  	0x0642
+#define	mem_k                                   	0x065a
+#define	mem_align                               	0x0672
+#define	mem_tmp1                                	0x0682
+#define	memahbak                                	0x0682
+#define	mem_tmp5                                	0x069a
+#define	memahsave                               	0x06a2
+#define	mem_tmp2                                	0x06b2
+#define	memahsave_end                           	0x06c2
+#define	mem_addr_padding                        	0x06c2
+#define	mem_addr_value                          	0x06c3
+#define	mem_tmp3                                	0x06ca
+#define	mem_t1                                  	0x06ca
+#define	mem_addr_value_end                      	0x06cf
+#define	mem_addr_iocap_end                      	0x06d2
+#define	mem_tmp0                                	0x06e2
+#define	mem_t0                                  	0x06e2
+#define	mem_tmp0a                               	0x06ea
+#define	mem_t2                                  	0x06fa
+#define	mem_t3                                  	0x0712
+#define	mem_t7                                  	0x072a
+#define	mem_p                                   	0x0742
+#define	mem_a                                   	0x075a
+#define	mem_b                                   	0x0772
+#define	mem_gx                                  	0x078a
+#define	mem_gy                                  	0x07a2
+#define	memh0                                   	0x07ba
+#define	mem_sp_state_start                      	0x07da
+#define	mem_sp_state                            	0x07da
+#define	mem_master_sp_state                     	0x07db
+#define	mem_sp_flag                             	0x07dc
+#define	mem_master_sp_flag                      	0x07dd
+#define	mem_sp_calc                             	0x07de
+#define	mem_sp_dh_ready                         	0x07df
+#define	mem_sp_localsm                          	0x07e0
+#define	mem_pairing_auth                        	0x07e1
+#define	mem_sp_flag_start                       	0x07e2
+#define	mem_sp_local_key_send_count             	0x07e2
+#define	mem_sp_remote_key_recv_count            	0x07e3
+#define	mem_sp_remote_key_invalid               	0x07e4
+#define	mem_sp_dhkey_invalid                    	0x07e5
+#define	mem_sp_iocap_local                      	0x07e6
+#define	mem_sp_iocap_remote                     	0x07e9
+#define	mem_sp_gkey                             	0x07ec
+#define	mem_sp_pubkey_remote                    	0x07f0
+#define	mem_sp_pubkey_remote_x                  	0x07f0
+#define	mem_sp_pubkey_remote_x_end              	0x0808
+#define	mem_sp_pubkey_remote_y                  	0x0808
+#define	mem_sp_dhkey                            	0x0820
+#define	mem_sp_dhkey_end                        	0x0838
+#define	mem_sp_random_local                     	0x0838
+#define	mem_sp_random_local_end                 	0x0848
+#define	mem_sp_random_remote                    	0x0848
+#define	mem_sp_random_remote_end                	0x0858
+#define	memresult                               	0x0858
+#define	mem_sp_calc_result                      	0x0858
+#define	memh                                    	0x0858
+#define	memg                                    	0x085c
+#define	memf                                    	0x0860
+#define	meme                                    	0x0864
+#define	mem_sp_calc_result_high                 	0x0868
+#define	memd                                    	0x0868
+#define	memc                                    	0x086c
+#define	memb                                    	0x0870
+#define	mema                                    	0x0874
+#define	mem_sp_check_result                     	0x0878
+#define	mem_sp_confirm_remote                   	0x0888
+#define	mem_sp_prarm_stack                      	0x0898
+#define	mem_UI_data_txbuff_length               	0x08a8
+#define	mem_ipc_skip_continue_proc              	0x08aa
+#define	mem_ui_timer_temp                       	0x08ab
+#define	mem_ipc_rega_temp                       	0x08ab
+#define	mem_usb_status                          	0x08af
+#define	mem_usb_fifo_empty                      	0x08b0
+#define	mem_usb_read_len                        	0x08b1
+#define	mem_usb_rxbuf                           	0x08b2
+#define	mem_usb_cnt                             	0x08f2
+#define	mem_usb_tx_enable                       	0x08f4
+#define	mem_usb_tx_count                        	0x08f5
+#define	mem_usb_set_protocol_count              	0x08f6
+#define	mem_usb_desc                            	0x08f7
+#define	mem_usb_state                           	0x08f8
+#define	mem_usb_idle_cnt                        	0x08f9
+#define	mem_usb_idle_timeout                    	0x08fb
+#define	mem_usb_trig_timeout                    	0x08fd
+#define	mem_usb_setup                           	0x08ff
+#define	mem_usb_setup_bmRequestType             	0x08ff
+#define	mem_usb_setup_bRequest                  	0x0900
+#define	mem_usb_setup_bValue                    	0x0901
+#define	mem_usb_setup_bValueH                   	0x0902
+#define	mem_usb_setup_wIndex                    	0x0903
+#define	mem_usb_setup_bLength                   	0x0905
+#define	mem_usb_setup_bLengthH                  	0x0906
+#define	mem_usb0_setup                          	0x0907
+#define	mem_bufptr                              	0x090f
+#define	mem_remain                              	0x0911
+#define	mem_devicedesc                          	0x0912
+#define	mem_hidreportdesc_kb                    	0x0926
+#define	mem_hidreportdesc_m                     	0x09ee
+#define	mem_confdesc                            	0x0ab6
+#define	mem_string0                             	0x0b1a
+#define	mem_string1                             	0x0b1f
+#define	mem_string2                             	0x0b3d
+#define	mem_string3                             	0x0b5b
+#define	mem_hold_contr                          	0x0b79
+#define	mem_hold_contw                          	0x0b7b
+#define	mem_fifo_temp                           	0x0b7d
+#define	mem_c51_flag                            	0x0b7e
+#define	mem_c51_lpm_lock                        	0x0b7f
+#define	mem_c51_wait_lpm                        	0x0b80
+#define	mem_wakup_from_power_flag               	0x0b81
+#define	mem_lmp_bb_disconnect_reason            	0x0b82
+#define	mem_c51_eeprom_buf                      	0x0b83
+#define	mem_c51_ipc_txbuf                       	0x0be7
+#define	mem_c51_ipc_rxbuf                       	0x0c4b
+#define	mem_c51_iicd_buf                        	0x0caf
+#define	mem_24g_rxbuf                           	0x0cb3
+#define	mem_24g_txbuf                           	0x0cd5
+#define	mem_24g_txpayload                       	0x0cf5
+#define	mem_24g_rxpayload                       	0x0d17
+#define	mem_24g_common_temp                     	0x0d37
+#define	mem_packet_length_temp                  	0x0d57
+#define	mem_le_cur_handle_start                 	0x0d58
+#define	mem_le_cur_handle_end                   	0x0d5a
+#define	mem_le_search_res                       	0x0d5c
+#define	mem_patch00                             	0x4000
+#define	mem_patch01                             	0x4001
+#define	mem_patch02                             	0x4002
+#define	mem_patch03                             	0x4003
+#define	mem_patch04                             	0x4004
+#define	mem_patch05                             	0x4005
+#define	mem_patch06                             	0x4006
+#define	mem_patch07                             	0x4007
+#define	mem_patch08                             	0x4008
+#define	mem_patch09                             	0x4009
+#define	mem_patch0a                             	0x400a
+#define	mem_patch0b                             	0x400b
+#define	mem_patch0c                             	0x400c
+#define	mem_patch0d                             	0x400d
+#define	mem_patch0e                             	0x400e
+#define	mem_patch0f                             	0x400f
+#define	mem_patch10                             	0x4010
+#define	mem_patch11                             	0x4011
+#define	mem_patch12                             	0x4012
+#define	mem_patch13                             	0x4013
+#define	mem_patch14                             	0x4014
+#define	mem_patch15                             	0x4015
+#define	mem_patch16                             	0x4016
+#define	mem_patch17                             	0x4017
+#define	mem_patch18                             	0x4018
+#define	mem_patch19                             	0x4019
+#define	mem_patch1a                             	0x401a
+#define	mem_patch1b                             	0x401b
+#define	mem_patch1c                             	0x401c
+#define	mem_patch1d                             	0x401d
+#define	mem_patch1e                             	0x401e
+#define	mem_patch1f                             	0x401f
+#define	mem_patch20                             	0x4020
+#define	mem_patch21                             	0x4021
+#define	mem_patch22                             	0x4022
+#define	mem_patch23                             	0x4023
+#define	mem_patch24                             	0x4024
+#define	mem_patch25                             	0x4025
+#define	mem_patch26                             	0x4026
+#define	mem_patch27                             	0x4027
+#define	mem_patch28                             	0x4028
+#define	mem_patch29                             	0x4029
+#define	mem_patch2a                             	0x402a
+#define	mem_patch2b                             	0x402b
+#define	mem_patch2c                             	0x402c
+#define	mem_patch2d                             	0x402d
+#define	mem_patch2e                             	0x402e
+#define	mem_patch2f                             	0x402f
+#define	mem_patch30                             	0x4030
+#define	mem_patch31                             	0x4031
+#define	mem_patch32                             	0x4032
+#define	mem_patch33                             	0x4033
+#define	mem_patch34                             	0x4034
+#define	mem_patch35                             	0x4035
+#define	mem_patch36                             	0x4036
+#define	mem_patch37                             	0x4037
+#define	mem_patch38                             	0x4038
+#define	mem_patch39                             	0x4039
+#define	mem_patch3a                             	0x403a
+#define	mem_patch3b                             	0x403b
+#define	mem_patch3c                             	0x403c
+#define	mem_patch3d                             	0x403d
+#define	mem_patch3e                             	0x403e
+#define	mem_patch3f                             	0x403f
+#define	mem_context                             	0x4040
+#define	mem_current_amaddr                      	0x4130
+#define	mem_lpm_mode                            	0x4131
+#define	mem_device_option                       	0x4132
+#define	mem_scan_mode                           	0x4133
+#define	mem_last_clkn                           	0x4134
+#define	mem_features                            	0x4138
+#define	mem_lap                                 	0x4140
+#define	mem_uap                                 	0x4143
+#define	mem_nap                                 	0x4144
+#define	mem_npage                               	0x4146
+#define	mem_glap                                	0x4147
+#define	mem_class                               	0x414a
+#define	mem_iscan_window                        	0x414d
+#define	mem_iscan_interval                      	0x414f
+#define	mem_pscan_window                        	0x4151
+#define	mem_pscan_interval                      	0x4153
+#define	mem_page_interval                       	0x4155
+#define	mem_page_window                         	0x4157
+#define	mem_page_to                             	0x4159
+#define	mem_inq_window                          	0x415b
+#define	mem_fcomp_mul                           	0x415d
+#define	mem_fcomp_div                           	0x415e
+#define	mem_rx_window_init                      	0x415f
+#define	mem_rx_window_sniff                     	0x4161
+#define	mem_rf_init_ptr                         	0x4163
+#define	mem_last_type                           	0x4165
+#define	mem_last_type_esco                      	0x4166
+#define	mem_last_type_saved                     	0x4167
+#define	mem_retransmission_cnt                  	0x4168
+#define	mem_next_btclk                          	0x416a
+#define	mem_seqi                                	0x416e
+#define	mem_rf_rccal                            	0x416f
+#define	mem_handle_num                          	0x4170
+#define	mem_max_slot                            	0x4171
+#define	mem_eir_enable                          	0x4172
+#define	mem_afh_instant                         	0x4173
+#define	mem_afh_error_total                     	0x4177
+#define	mem_afh_cfg                             	0x4179
+#define	mem_afh_new_mod                         	0x417a
+#define	mem_afh_map_lo                          	0x417b
+#define	mem_afh_map_hi                          	0x4180
+#define	mem_afh_used                            	0x4185
+#define	mem_afh_index                           	0x4186
+#define	mem_afh_map_new                         	0x4188
+#define	mem_afh_map                             	0x4193
+#define	mem_afh_timer                           	0x41e3
+#define	mem_afh_classify_channel_map            	0x41e7
+#define	mem_chip_functions                      	0x41f1
+#define	mem_lpm_wake_lock                       	0x41f3
+#define	mem_lpm_interval                        	0x41f5
+#define	mem_lpm_overhead                        	0x41f7
+#define	mem_lpm_hibernate_switch                	0x41f8
+#define	mem_esco_addr                           	0x41f9
+#define	mem_sniff_unint_lost                    	0x41fa
+#define	mem_ptt                                 	0x41fb
+#define	mem_sleep_counter                       	0x41fc
+#define	mem_sleep_counter_all                   	0x4200
+#define	mem_sleep_clkn                          	0x4204
+#define	mem_sniff_rcv                           	0x420a
+#define	mem_sniff_lost                          	0x420d
+#define	mem_clks_per_lpo                        	0x4210
+#define	mem_lpm_mult                            	0x4213
+#define	mem_lpm_mult_timeout                    	0x4214
+#define	mem_lpm_mult_cnt                        	0x4215
+#define	mem_lpm_config                          	0x4216
+#define	mem_lpm_xtalcnt                         	0x4219
+#define	mem_lpm_buckcnt                         	0x421a
+#define	mem_lpm_ldocnt                          	0x421b
+#define	mem_lpm_isogate                         	0x421c
+#define	mem_lpm_isogate_final                   	0x421d
+#define	mem_saved_gpio                          	0x421e
+#define	mem_saved_gsel                          	0x422e
+#define	mem_saved_mark                          	0x4231
+#define	mem_saved_spidctrl                      	0x4239
+#define	mem_patch_ptr                           	0x423a
+#define	mem_patch_len                           	0x423c
+#define	mem_timers                              	0x423e
+#define	mem_link_key_exists                     	0x425e
+#define	mem_link_key_eeprom_head                	0x425f
+#define	mem_link_key                            	0x4262
+#define	mem_hci_cmd                             	0x4272
+#define	mem_hci_conn_handle                     	0x4273
+#define	mem_hci_plap                            	0x4274
+#define	mem_hci_puap                            	0x4277
+#define	mem_hci_pnap                            	0x4278
+#define	mem_uartd_rxitems_got_data              	0x427a
+#define	mem_uartd_rxitems_threshold             	0x427b
+#define	mem_uartd_rx_timeout                    	0x427c
+#define	mem_app_state                           	0x427e
+#define	mem_app_handshake_flag                  	0x427f
+#define	mem_sniff_param_interval                	0x4280
+#define	mem_sniff_param_attempt                 	0x4282
+#define	mem_sniff_param_timeout                 	0x4284
+#define	mem_cb_check_wakelock                   	0x4286
+#define	mem_cb_before_hibernate                 	0x4288
+#define	mem_cb_before_lpm                       	0x428a
+#define	mem_cb_le_process                       	0x428c
+#define	mem_cb_bt_process                       	0x428e
+#define	mem_cb_idle_process                     	0x4290
+#define	mem_cb_bb_event_process                 	0x4292
+#define	mem_cb_discovry_timeout                 	0x4294
+#define	mem_cb_att_write                        	0x4296
+#define	mem_cb_update_notify_value              	0x4298
+#define	mem_device_nums                         	0x429a
+#define	mem_eeprom_base                         	0x429b
+#define	mem_unsniff2sniff_timer_count           	0x429d
+#define	mem_wake_up_delay_timer                 	0x429e
+#define	mem_app_connection_options              	0x429f
+#define	mem_app_disconn_reason                  	0x42a0
+#define	mem_app_disconn_reason_flag             	0x42a2
+#define	mem_at_using_flag                       	0x42a4
+#define	mem_lpm_delay_after_sniff               	0x42a5
+#define	mem_xrecord_mode                        	0x42a9
+#define	mem_eeprom_block_size                   	0x42aa
+#define	mem_baud                                	0x42ac
+#define	mem_hci_lt_rx_state                     	0x42ae
+#define	mem_l2cap_xmem_start                    	0x42af
+#define	mem_l2cap_tx_multi_offset               	0x42af
+#define	mem_sdp_remote_cid                      	0x42b1
+#define	mem_rfcomm_remote_cid                   	0x42b3
+#define	mem_hid_ctrl_remote_cid                 	0x42b5
+#define	mem_hid_int_remote_cid                  	0x42b7
+#define	mem_sdp_state                           	0x42b9
+#define	mem_rfcomm_state                        	0x42ba
+#define	mem_hid_control_state                   	0x42bb
+#define	mem_hid_interrupt_state                 	0x42bc
+#define	mem_spp_state                           	0x42bd
+#define	mem_ML2CAP_comm_id                      	0x42be
+#define	mem_used_map                            	0x42bf
+#define	mem_tx_fifo0                            	0x42c0
+#define	mem_tx_fifo0_map                        	0x42c0
+#define	mem_tx_fifo0_ptr                        	0x42c1
+#define	mem_tx_fifo1                            	0x42c3
+#define	mem_tx_fifo1_map                        	0x42c3
+#define	mem_tx_fifo1_ptr                        	0x42c4
+#define	mem_tx_fifo2                            	0x42c6
+#define	mem_tx_fifo2_map                        	0x42c6
+#define	mem_tx_fifo2_ptr                        	0x42c7
+#define	mem_tx_fifo3                            	0x42c9
+#define	mem_tx_fifo3_map                        	0x42c9
+#define	mem_tx_fifo3_ptr                        	0x42ca
+#define	mem_tx_fifo_end                         	0x42cc
+#define	mem_l2cap_lpm_txbuf                     	0x42cc
+#define	mem_l2cap_flow_ctrl_flag                	0x43cc
+#define	mem_l2cap_pending_item                  	0x43cd
+#define	mem_l2cap_xmem_end                      	0x43ce
+#define	mem_le_dsniff                           	0x43ce
+#define	mem_le_conn_interval                    	0x43d0
+#define	mem_le_scan_enable                      	0x43d2
+#define	mem_le_scan_interval                    	0x43d3
+#define	mem_le_scan_window                      	0x43d5
+#define	mem_le_adv_led                          	0x43d7
+#define	mem_le_adv_enable                       	0x43d8
+#define	mem_le_adv_data_len                     	0x43d9
+#define	mem_le_adv_data                         	0x43da
+#define	mem_le_scan_data_len                    	0x43f9
+#define	mem_le_scan_data                        	0x43fa
+#define	mem_le_name_len                         	0x4419
+#define	mem_le_name                             	0x441a
+#define	mem_le_led_on_time                      	0x442e
+#define	mem_le_new_map                          	0x442f
+#define	mem_le_new_param                        	0x4434
+#define	mem_le_new_window                       	0x4434
+#define	mem_le_new_offset                       	0x4435
+#define	mem_le_new_interval                     	0x4437
+#define	mem_le_new_latency                      	0x4439
+#define	mem_le_new_timeout                      	0x443b
+#define	mem_le_temp                             	0x443d
+#define	mem_le_txheader                         	0x443e
+#define	mem_le_txlen                            	0x443f
+#define	mem_le_txpayload                        	0x4440
+#define	mem_le_txcid                            	0x4442
+#define	mem_le_l2cap                            	0x4444
+#define	mem_le_l2cap_response                   	0x4445
+#define	mem_le_txbdy                            	0x4446
+#define	mem_le_pcnt_tx                          	0x4465
+#define	mem_le_pcnt_rx                          	0x446a
+#define	mem_le_last_mic                         	0x446f
+#define	mem_le_ivm                              	0x4473
+#define	mem_le_ivs                              	0x4477
+#define	mem_le_ltk                              	0x447b
+#define	mem_ltk_exists                          	0x448b
+#define	mem_le_rconfirm                         	0x448c
+#define	mem_le_srand                            	0x449c
+#define	mem_le_iat                              	0x44ac
+#define	mem_le_rat                              	0x44ad
+#define	mem_le_preq                             	0x44ae
+#define	mem_le_pres                             	0x44b5
+#define	mem_le_search_handle_start              	0x44bc
+#define	mem_le_search_handle_end                	0x44be
+#define	mem_le_att_offset                       	0x44c0
+#define	mem_le_search_att_type                  	0x44c0
+#define	mem_le_notify_handle                    	0x44c2
+#define	mem_le_uuid                             	0x44c4
+#define	mem_le_handle_data_len                  	0x44c6
+#define	mem_le_handle_data                      	0x44c7
+#define	mem_le_adv_param                        	0x44d7
+#define	mem_le_adv_interval_min                 	0x44d7
+#define	mem_le_adv_interval_max                 	0x44d9
+#define	mem_le_adv_type                         	0x44db
+#define	mem_le_adv_own_addr_type                	0x44dc
+#define	mem_le_adv_direct_addr_type             	0x44dd
+#define	mem_le_adv_direct_addr                  	0x44de
+#define	mem_le_adv_channel_map                  	0x44e4
+#define	mem_le_adv_filter_policy                	0x44e5
+#define	mem_le_conn_param                       	0x44e6
+#define	mem_le_conn_peer_addr_type              	0x44e6
+#define	mem_le_conn_peer_addr                   	0x44e7
+#define	mem_le_conn_own_addr_type               	0x44ed
+#define	mem_le_conn_interval_min                	0x44ee
+#define	mem_le_conn_interval_max                	0x44f0
+#define	mem_le_conn_latency                     	0x44f2
+#define	mem_le_conn_superto                     	0x44f4
+#define	mem_le_scan_params                      	0x44f6
+#define	mem_le_scan_type                        	0x44f6
+#define	mem_le_scan_own_addr_type               	0x44f7
+#define	mem_le_scan_filter_policy               	0x44f8
+#define	mem_le_lap                              	0x44f9
+#define	mem_le_uap                              	0x44fc
+#define	mem_le_nap                              	0x44fd
+#define	mem_le_xtype_fifo                       	0x44ff
+#define	mem_le_att_list                         	0x4504
+#define	mem_le_switch_send_data                 	0x46f8
+#define	mem_le_transmit_window                  	0x46f9
+#define	mem_lmp_version                         	0x46fd
+#define	mem_lmp_subversion                      	0x4700
+#define	mem_local_name_length                   	0x4702
+#define	mem_local_name                          	0x4703
+#define	mem_local_name2                         	0x4706
+#define	mem_local_name_end                      	0x4746
+#define	mem_unsniff2sniff_timer                 	0x4747
+#define	mem_switch_flag                         	0x4748
+#define	mem_eeprom_ota_base_addr                	0x4749
+#define	mem_pn_dlci                             	0x474b
+#define	mem_pn_max_frame_size                   	0x474c
+#define	memFCStemp1                             	0x474e
+#define	memFCStemp2                             	0x474f
+#define	memFCStemp3                             	0x4750
+#define	mem_rfcomm_initiator                    	0x4751
+#define	mem_remote_spp_channel                  	0x4752
+#define	mem_HIUfcs_SPP                          	0x4753
+#define	mem_HIUfcs_SPP_WCredits                 	0x4754
+#define	mem_rfcomm_send_more_pkt                	0x4755
+#define	mem_remote_credits                      	0x4756
+#define	mem_credit_given                        	0x4757
+#define	mem_ms_channel                          	0x4758
+#define	memui_uuid_table                        	0x4759
+#define	mem_all_uuid_16bits                     	0x475b
+#define	mem_all_uuid_128bits                    	0x4771
+#define	mem_sp_local_key_invalid                	0x4793
+#define	mem_sp_private_key                      	0x4794
+#define	mem_sp_pubkey_local                     	0x47ac
+#define	mem_sp_pubkey_local_x                   	0x47ac
+#define	mem_sp_pubkey_local_x_end               	0x47c4
+#define	mem_sp_pubkey_local_y                   	0x47c4
+#define	mem_ssp_enable                          	0x47dc
+#define	mem_ipc_lock_bt                         	0x47dd
+#define	mem_ipc_lock_c51                        	0x47de
+#define	mem_ipc_fifo_bt2c51                     	0x47df
+#define	mem_ipc_fifo_c512bt                     	0x47e4
+#define	mem_led_switch                          	0x47e9
+#define	mem_ui_button_timer                     	0x47ea
+#define	mem_ui_button_last_state                	0x47eb
+#define	mem_ui_timer_last_btclk                 	0x47ec
+#define	mem_discovery_timeout_timer_count       	0x47f0
+#define	mem_hid_handshake_timer_count           	0x47f2
+#define	memui_reconnect_mode                    	0x47f3
+#define	mem_ui_state_map                        	0x47f4
+#define	mem_ui_profile_supported                	0x47f6
+#define	mem_led_gpio                            	0x47f7
+#define	mem_led_dark_time                       	0x47f8
+#define	mem_led_light_time                      	0x47fa
+#define	mem_ui_button_timeout                   	0x47fc
+#define	mem_ui_button_gpio                      	0x47fd
+#define	mem_discovery_timeout                   	0x47fe
+#define	mem_ir_ptr                              	0x4800
+#define	mem_ir_type                             	0x4802
+#define	mem_ir_cmd                              	0x4803
+#define	mem_ir_play_count                       	0x4804
+#define	mem_ir_report_len                       	0x4805
+#define	mem_ir_pulse_zero                       	0x4807
+#define	mem_ir_pulse_one                        	0x4808
+#define	mem_ir_pulses                           	0x4809
+#define	mem_ir_sequence_len                     	0x4825
+#define	mem_ir_sequence                         	0x4826
+#define	mem_acl_credits                         	0x4800
+#define	mem_allow_switch                        	0x4802
+#define	mem_hci_acl_queue_start                 	0x4803
+#define	mem_hci_wake_clk                        	0x4807
+#define	mem_kb_state                            	0x4800
+#define	mem_kb_report_data                      	0x4802
+#define	mem_kb_keys                             	0x4808
+#define	mem_kb_rcv_led_data                     	0x4809
+#define	mem_kb_fast_wake_last                   	0x480a
+#define	mem_led_cap_gpio                        	0x480e
+#define	mem_led_num_gpio                        	0x480f
+#define	mem_led_scl_gpio                        	0x4810
+#define	mem_kb_map                              	0x4811
+#define	mem_kb_uuid_list                        	0x4811
+#define	mem_24g_paring_tx_power_param           	0x4a87
+#define	mem_5db_tx_power_param                  	0x4a91
+#define	mem_current_event                       	0x4a9b
+#define	mem_ipc_lock_rx_data_bt                 	0x4a9c
+#define	mem_ipc_lock_rx_data_c51                	0x4a9d
+#define	mem_ipc_lock_tx_data_bt                 	0x4a9e
+#define	mem_ipc_lock_tx_data_c51                	0x4a9f
+#define	mem_ipc_2bt_fifo_head                   	0x4aa0
+#define	mem_ipc_2bt_fifo_end                    	0x4b36
+#define	mem_ipc_2C51_fifo_head                  	0x4b36
+#define	mem_ipc_2C51_fifo_end                   	0x4b9a
+#define	mem_ipc_2bt_read_index                  	0x4b9a
+#define	mem_ipc_2bt_write_index                 	0x4b9c
+#define	mem_ipc_2C51_read_index                 	0x4b9e
+#define	mem_ipc_2C51_write_index                	0x4ba0
+#define	mem_ipc_tx_evt_buff                     	0x4ba2
+#define	mem_ipc_tx_evt                          	0x4ba4
+#define	mem_ipc_bt_timer                        	0x4ba5
+#define	mem_ipc_rx_type                         	0x4ba7
+#define	mem_rfcomm_tx_buff                      	0x4ba8
+#define	mem_queue_ele_num                       	0x4ba8
+#define	mem_queue_write                         	0x4ba9
+#define	mem_queue_read                          	0x4bab
+#define	mem_queue_start                         	0x4bad
+#define	mem_uart_packet                         	0x4bad
+#define	mem_data_ele0                           	0x4bb9
+#define	mem_data_ele1                           	0x4bc5
+#define	mem_data_ele2                           	0x4bd1
+#define	mem_queue_end                           	0x4bdd
+#define	mem_queue_temp                          	0x4bdd
+#define	mem_24g_rxdata_length                   	0x4bdf
+#define	mem_24g_pid                             	0x4be0
+#define	mem_24g_datalen                         	0x4be1
+#define	mem_24g_data_type                       	0x4be2
+#define	mem_24g_txlen                           	0x4be3
+#define	mem_24g_rx_window                       	0x4be4
+#define	mem_24g_ensure                          	0x4be6
+#define	mem_24g_get_ack_fail                    	0x4be7
+#define	mem_24g_retry                           	0x4be8
+#define	mem_24g_ch                              	0x4be9
+#define	mem_24g_current_ch_number               	0x4bea
+#define	mem_24g_paring_addr                     	0x4beb
+#define	mem_24g_pairing_sm                      	0x4bef
+#define	mem_24g_ch_map1                         	0x4bf0
+#define	mem_24g_ch_map2                         	0x4bf4
+#define	mem_24g_ch_map3                         	0x4bf8
+#define	mem_24g_ch_map4                         	0x4bfc
+#define	mem_24g_addr                            	0x4c00
+#define	mem_24g_check_dongle_times              	0x4c04
+#define	mem_24g_device_addr                     	0x4c06
+#define	mem_24g_no_ack                          	0x4c0a
+#define	mem_24g_sta_crc                         	0x4c0b
+#define	mem_24g_sta_pid                         	0x4c0e
+#define	mem_24g_max_retry                       	0x4c0f
+#define	mem_24g_mode                            	0x4c10
+#define	mem_24g_hop_pac_retry                   	0x4c11
+#define	mem_24g_idle_timeout                    	0x4c12
+#define	mem_24g_idle_cnt                        	0x4c13
+#define	mem_24g_auto_paring_switch              	0x4c14
+#define	mem_24g_enter_lpm_timer                 	0x4c15
+#define	mem_24g_syncword                        	0x4c16
+#define	mem_24g_syncword_crc8                   	0x4c18
+#define	mem_24g_get_syncword_crc8               	0x4c19
+#define	mem_24g_discard_cnt                     	0x4c1a
+#define	mem_cb_24g_data                         	0x4c1c
+#define	mem_24g_lasttx                          	0x4c1e
+#define	mem_power_ctrl_pac_succ_cnt             	0x4c27
+#define	mem_power_ctrl_level                    	0x4c28
+#define	mem_rssi_avg_received                   	0x4c29
+#define	mem_rssi_hex_received                   	0x4c2a
+#define	mem_rssi_signal_buf                     	0x4c2b
+#define	mem_rssi_noise_buf                      	0x4c33
+#define	mem_rssi_noise_index                    	0x4c3b
+#define	mem_rssi_signal_index                   	0x4c3c
+#define	mem_tx_power                            	0x4c3d
+#define	mem_tx_power_temp                       	0x4c3e
+#define	mem_cnt                                 	0x4c3f
+#define	mem_last_txlch                          	0x4c42
+#define	mem_last_txlen                          	0x4c43
+#define	mem_last_txdata                         	0x4c45
+#define	mem_ipc_last_check_timer                	0x4c59
+#define	mem_prepare_write_len                   	0x4c5d
+#define	mem_ipc_c51_timer                       	0x4c5e
+#define	mem_le_rx_window                        	0x4c60
+#define	mem_le_find_type_value_start_handle     	0x4c61
+#define	mem_le_find_type_value_end_handle       	0x4c63
+#define	mem_le_cur_att_type                     	0x4c65
+#define	mem_le_search_len                       	0x4c67
+#define	mem_le_ll_unknown_type                  	0x4c68
+#define	mem_le_pairing_state                    	0x4c69
+#define	mem_le_local_mtu                        	0x4c6a
+#define	mem_le_connection_updata_param          	0x4c6c
+#define	mem_ltk_states                          	0x4c7c
+#define	mem_pair_state                          	0x4c7d
+#define	mem_empty_count                         	0x4c7e
+#define	mem_shutter_find_type_value_flag        	0x4c7f
+#define	mem_le51_payload_len                    	0x4c80
+#define	mem_le51_cmd                            	0x4c81
+#define	mem_le51_tx_length                      	0x4c82
+#define	mem_le51_txbuff_inuse                   	0x4c83
+#define	mem_le51_txbuf                          	0x4c84
+#define	mem_ipc_bt_100ms_timer                  	0x4c8d
+#define	mem_ipc_c51_100ms_timer                 	0x4c8e
+#define	mem_adc_config_flag                     	0x4c8f
+#define	mem_adc_channel                         	0x4c90
+#define	mem_adc_0v                              	0x4c91
+#define	mem_adc_3v                              	0x4c93
+#define	mem_adc_current_value                   	0x4c95
+#define	mem_hibernate_flag                      	0x4c97
+#define	mem_new_supervision_to                  	0x4c98
+#define	mem_kb_wake_timer                       	0x4c9a
+#define	mem_kb_last_data                        	0x4c9b
+#define	mem_kb_keycount                         	0x4caf
+#define	mem_led_cap_delay_timer                 	0x4cb0
+#define	mem_test                                	0x4cb1
+#define	mem_seq                                 	0x4cb4
+#define	mem_recon_index                         	0x4cb5
+#define	mem_power_on_flag                       	0x4cb6
+#define	mem_caps_num_lock                       	0x4cb7
+#define	mem_att_report1                         	0x4cb8
+#define	mem_att_report2                         	0x4cba
+#define	mem_att_report3                         	0x4cbc
+#define	mem_suspend_flag                        	0x4cbe
+#define	mem_32asm_data_end                      	0x4cbf
+#define	mem_store_ltk_timer                     	0x4d37
+#define	mem_reconnect_continue                  	0x4d38
+#define	mem_le_pin_code                         	0x4d39
+#define	mem_le_send_security_request_flag       	0x4d3d
+#define	mem_att_report_battery                  	0x4d3e
+#define	mem_24g_enter_hibernate                 	0x4d40
+#define	mem_24g_txfail_cnt                      	0x4d44
+#define	mem_mouse_retry_flag                    	0x4d45
+#define	mem_24g_led_flag                        	0x4d46
+#define	mem_ui_timer_last_btclk_temp            	0x4d47
+#define	mem_ui_check_timer_setup                	0x4d4b
+#define	mem_customize_timer_setup               	0x4d4f
+#define	mem_customize_timer                     	0x4d51
+#define	mem_ios_mode_flag                       	0x4d52
+#define	mem_version_yy_mm_dd                    	0x4d53
+#define	mem_24g_txbuf_new                       	0x4d57
+#define	mem_le_adv_swift_pair                   	0x4d6b
+#define	mem_24g_enter_hibernate_setup           	0x4d72
+#define	mem_24g_enter_hibernate_max             	0x4d76
+#define	mem_24g_short_sleep_counter             	0x4d7a
+#define	mem_pc_sleep_flag                       	0x4d7d
+#define	mem_le_battery_level_display_enable     	0x4d7e
+#define	mem_at_gpio                             	0x4800
+#define	mem_module_wake_up_gpio                 	0x4801
+#define	mem_module_state_gpio                   	0x4802
+#define	mem_module_connect_state_gpio           	0x4803
+#define	mem_module_version                      	0x4804
+#define	mem_last_uart_clock                     	0x480a
+#define	mem_current_packet_length               	0x480e
+#define	mem_module_prepare_tx_len               	0x4810
+#define	mem_module_state                        	0x4812
+#define	mem_module_task                         	0x4813
+#define	mem_cmode_addr                          	0x4814
+#define	mem_at_scan_time                        	0x481a
+#define	mem_prarm_pswd                          	0x481c
+#define	mem_prarm_uart                          	0x4820
+#define	mem_prarm_blename                       	0x4824
+#define	mem_prarm_name                          	0x4827
+#define	mem_prarm_bleadss                       	0x482b
+#define	mem_prarm_adss                          	0x482e
+#define	mem_prarm_vers                          	0x4832
+#define	mem_prarm_class                         	0x4836
+#define	mem_prarm_clrflg                        	0x483b
+#define	mem_prarm_reconn                        	0x4841
+#define	mem_prarm_bledis                        	0x4847
+#define	mem_prarm_dis                           	0x4849
+#define	mem_prarm_stsn                          	0x484c
+#define	mem_prarm_atp                           	0x4850
+#define	mem_prarm_list                          	0x4853
+#define	mem_prarm_role                          	0x4857
+#define	mem_prarm_sniff                         	0x485b
+#define	mem_prarm_ldev                          	0x4860
+#define	mem_prarm_rssi                          	0x4864
+#define	mem_prarm_cdev                          	0x4868
+#define	mem_prarm_bleinqr                       	0x486c
+#define	mem_prarm_inqr                          	0x486f
+#define	mem_prarm_cmode                         	0x4873
+#define	mem_prarm_mode                          	0x4878
+#define	mem_prarm_dmstate                       	0x487c
+#define	mem_prarm_discov                        	0x4883
+#define	mem_prarm_ota                           	0x4889
+#define	mem_prarm_bleconn                       	0x488c
+#define	mem_prarm_conn                          	0x488e
+#define	mem_prarm_pageout                       	0x4892
+#define	mem_prarm_recfail                       	0x4899
+#define	mem_module_uuid_list                    	0x48a0
+#define	mem_mouse_x                             	0x4800
+#define	mem_mouse_y                             	0x4802
+#define	mem_mouse_z                             	0x4804
+#define	mem_mouse_key                           	0x4805
+#define	mem_mouse_z_last                        	0x4806
+#define	mem_mouse_z_before                      	0x4807
+#define	mem_mouse_z_now                         	0x4808
+#define	mem_mouse_z_data                        	0x4809
+#define	mem_mouse_move_flag                     	0x480a
+#define	mem_reconnect_timeout                   	0x480b
+#define	mem_mouse_direct_timeout                	0x480c
+#define	mem_mouse_no_data_timeout               	0x480e
+#define	mem_mouse_blank_data_timeout            	0x4810
+#define	mem_mouse_discovery_timer               	0x4812
+#define	mem_mouse_direct_timer                  	0x4814
+#define	mem_mouse_no_data_timer                 	0x4816
+#define	mem_mouse_blank_data_timer              	0x4818
+#define	mem_mouse_send_blank_timer              	0x481a
+#define	mem_mouse_dpi                           	0x481b
+#define	mem_mouse_dpi_button_state              	0x481c
+#define	mem_mouse_test_cnt                      	0x481d
+#define	mem_le_hibernate_timer                  	0x481e
+#define	mem_mouse_mode_state                    	0x4820
+#define	mem_sensor_type                         	0x4821
+#define	mem_lbutton_gpio                        	0x4822
+#define	mem_rbutton_gpio                        	0x4823
+#define	mem_mbutton_gpio                        	0x4824
+#define	mem_dpi_button_gpio                     	0x4825
+#define	mem_sensor_data_gpio                    	0x4826
+#define	mem_whee_a_data_gpio                    	0x4827
+#define	mem_whee_b_data_gpio                    	0x4828
+#define	mem_conn_cnt                            	0x4829
+#define	mem_mouse_uuid_list                     	0x482a
+#define	mem_shutter_send_data                   	0x4800
+#define	mem_shutter_key_temp                    	0x4804
+#define	mem_shutter_send_length                 	0x4805
+#define	mem_shutter_clkn_bt_last                	0x4806
+#define	mem_shutter_key                         	0x480a
+#define	mem_shutter_flag                        	0x480b
+#define	mem_shutter_cable_unplug_conut          	0x480c
+#define	mem_shutter_hid_disconn_count           	0x480d
+#define	mem_shutter_1key_send_sm                	0x480e
+#define	mem_shutter_iphonekey_gpio              	0x480f
+#define	mem_shutter_androidkey_gpio             	0x4810
+#define	mem_shutter_key_number                  	0x4811
+#define	mem_shutter_uuid_list                   	0x4812
+#define	mem_mcmd                                	0xff0
+#define	mem_mouse_data                          	0xff1
+#define	mem_l2cap_rxbuff1                       	0x1000
+#define	mem_l2cap_rxbuff2                       	0x1400
+#define	mem_tx_buff0                            	0x1800
+#define	mem_tx_buff1                            	0x1880
+#define	mem_tx_buff2                            	0x1900
+#define	mem_tx_buff3                            	0x1980
+#define	mem_tx_buff4                            	0x1a00
+#define	mem_tx_buff5                            	0x1a80
+#define	mem_tx_buff6                            	0x1b00
+#define	mem_tx_buff7                            	0x1b80
+#define	mem_h5rx_buf                            	0x1800
+#define	mem_h5rx_buf_end                        	0x1bff
+#define	mem_h5tx_buf                            	0x1c00
+#define	mem_h5tx_buf_end                        	0x1fff
+#define	mem_module_rx_buf                       	0x4a00
+#define	mem_module_rx_buf_end                   	0x4fff
+#define	mem_module_tx_buf                       	0x1c00
+#define	mem_module_tx_buf_end                   	0x1fff
+#define	mem_ir_record                           	0x1800
+#define	mem_ir_record_max                       	0x1c
+#define	memk                                    	0x4b00
+#endif
Index: c.bat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/c.bat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/c.bat	(working copy)
@@ -0,0 +1,10 @@
+perl util\hex2mif.pl < output\fw.hex ram > output\fwram.rom
+copy .\patch\kb.dat + .\patch\rf.dat .\patch\sch.rom 
+perl util\transform_name2addr.pl .\patch\sch.rom .\output\sched.rom .\patch\memmap.format
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+@rem copy .\patch\*.obj .\output\*.obj
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+cd ..
+:end
Index: common.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/common.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/common.h	(working copy)
@@ -0,0 +1,19 @@
+#ifndef _YC_INCLUDE_H_
+#define _YC_INCLUDE_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+#include "sys.h"
+#include "utilities.h"
+#include "kbhid.h"
+#include "global_variable.h"
+#include "keyscan.h"
+#include "gpio.h"
+#include "led.h"
+#include "bluetooth.h"
+#include "kb_process.h"
+#include "ipc.h"
+#include "iic.h"
+#include "adc.h"
+#endif
+
Index: global_variable.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/global_variable.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/global_variable.h	(working copy)
@@ -0,0 +1,217 @@
+#ifndef _GLOBAL_VARIABLE_H_
+#define _GLOBAL_VARIABLE_H_
+#include "common.h"
+
+#define BAT_ARRAY_LEN				4
+
+typedef struct c51_device_state
+{
+	 byte currentState ;
+	 byte currentSubState;
+	 byte currentStateBefore;
+}DEVICE_STATE;
+
+typedef enum device_mode
+{
+	DEVICE_24G_MODE,
+	DEVICE_BLE_MODE,
+	DEVICE_BR_MODE,
+	DEVICE_MODE_NUM,
+}DEVICE_CURRENT_MODE;
+
+
+typedef enum led_type
+{
+	STYLE_NONE,
+	STYLE_BT_PAIRING,
+	STYLE_LOW_BAT,
+	STYLE_DEVICE_1,
+	STYLE_DEVICE_2,
+	STYLE_DEVICE_3,
+	STYLE_24G_PAIRING,
+	STYLE_BT_RECON,
+}EVT_LED_STYLE;
+
+typedef struct device_recode{
+	byte  device_type;
+	byte  device_addr[6];
+	byte  device_link_key[16] ;
+	byte  local_addr[6];
+	byte  system_mode;
+	byte  fn_lock;
+}BD_KEY_RECORD;
+
+
+typedef struct c51_global_variable		// 0x4cbf
+{
+	 byte update_eeprom_flag;		// 0x4cbf
+	 byte last_device_num;			// 0x4cc0
+	 byte system_mode;			// 0x4cc1
+	 byte power_on_action;			// 0x4cc2
+	 byte current_device_num;		// 0x4cc3
+	 byte temp_device_num;		// 0x4cc4
+
+	 byte g24_currentState;			// 0x4cc5
+	 byte g24_currentSubState;		// 0x4cc6
+	 byte ble_currentState;			// 0x4cc7
+	 byte ble_currentSubState;		// 0x4cc8
+	 byte br_currentState;			// 0x4cc9
+	 byte br_currentSubState;		// 0x4cca
+	 byte history_state;			// 0x4ccb
+
+	 byte button_reconnect_flag;	// 0x4ccc
+	 byte button_24G_rec_flag;		// 0x4ccd
+	 byte button_flag;				// 0x4cce
+	 byte button_timer[4];			// 0x4ccf~0x4cd2
+ 
+	 byte battery_check_interval;			// 0x4cd3
+	 byte battery_value_index;				// 0x4cd4
+	 byte battery_status;					// 0x4cd5
+	 word battery_value[BAT_ARRAY_LEN];	// 0x4cd6~0x4cdd
+	 word battery_level_low;				// 0x4cde
+	 word battery_level_shutdown;			// 0x4ce0
+
+	 byte battery_low_led_flash_interval;		// 0x4ce2
+
+		 
+	 word sleepTimer;						// 0x4ce3
+	 byte powerOn_timer;					// 0x4ce5
+	 byte sys_numlockled_on_timer;			// 0x4ce6
+	 byte sys_capslockled_on_timer;			// 0x4ce7
+	 byte sys_scrolllockled_on_timer;		// 0x4ce8
+	 byte pairing_timeout;					// 0x4ce9
+	 byte delay_enter_lpm_timer;			// 0x4cea
+	 
+	 byte release_data;					// 0x4ceb
+	 byte lockLpm;	 					// 0x4cec
+	 byte key_action;						// 0x4ced
+
+	 byte pairing_g24_timeout;				//0x4cee
+	 byte recon_delay;						// 0x4cef
+	 byte recon_count;						// 0x4cf0
+	 byte recon_continue;					// 0x4cf1
+	 byte ble_ramdon_lap1;					// 0x4cf2
+	 byte ble_ramdon_lap2;					// 0x4cf3 
+	 byte key_combination_step;			// 0x4cf4
+	 byte key_combination_ctrl;				// 0x4cf5
+	 byte key_combination_keyvalue;		// 0x4cf6
+	 byte battery_low_led_flash_flag;		// 0x4cf7
+	 byte one_key_press_wait_release_timer;	// 0x4cf8
+	 byte battery_level_percentage;			// 0x4cf9
+	 word battery_level_full;				// 0x4cfa
+	 byte fast_connect_send_name;
+	 byte system_mode_last;
+	 byte connect_button_temp;
+	 byte battery_shutdown_flag;
+	 byte last_battery_status;
+	 byte g24_long_sleep_flag;
+
+	 byte bit_key1[7];
+	 byte bit_key1_flag;
+	 byte bit_key2[7];
+	 byte bit_key2_flag;
+	
+	 byte mouse_data_send_flag;
+	 byte sensor_key;
+	 byte sensor_x_l;
+	 byte sensor_x_h;
+	 byte sensor_y_l;
+	 byte sensor_y_h;
+	 byte sensor_wheel;
+	 byte sensor_titl;
+	 byte test_buff;
+	 byte lvdlowflag;
+	 byte modeflag;
+	 byte g24flag;
+	 byte caplockledflag; 
+	 byte systemflag;
+	 byte systemlednum;
+	 byte last_divce_ch;
+	 byte current_divce_ch;
+	 byte bt_24g_flag;	 
+}G_VARIABLE_MAP;
+
+
+
+extern G_VARIABLE_MAP xdata g_variable;
+
+extern BD_KEY_RECORD xdata bd_key_record_list[3] ;
+
+ extern xbyte m_caps_num_lock_last;
+
+ extern xbyte iOS_rec_pinCode;
+ extern xbyte pinCode_flag;
+ extern xbyte le_pin_code_len;
+ extern xbyte power_on_flag;
+ extern xbyte repeat_send_24g;
+ extern xbyte get_24g_led_send;
+ extern xbyte ble_reconnect_flag;
+ extern xbyte ble_fast_connect_flag;
+ extern xbyte press_long_time_flag;
+ extern xbyte long_press_flag;
+ extern xbyte standard_key_release_flag;
+ extern xbyte fast_connect_flag;
+ extern xbyte fn_flag;
+ extern xbyte fn_tx_flag;
+ extern xbyte fn_flag_last;
+ extern xbyte fn_lock_flag;
+ extern xbyte control_key_flag;
+ extern xbyte ksSelMapOld[];
+ extern xbyte ksSelMapCheck[];
+ extern xbyte ksSelMapCurr[]; 
+ extern xbyte le_lap_temp[3];
+ extern xbyte multikey[9];
+ extern xbyte mult_key_value;
+ extern  xbyte keyCount;
+ extern xbyte mult_key_status;
+ extern xbyte key_value_temp;
+ extern xbyte system_key_press;
+ extern xbyte recon_index;
+ extern xbyte le_send_battery_level_flag;
+ extern xbyte le_send_battery_level_delay_count;
+
+ extern xbyte delayChgInvTimer;
+ extern xbyte delayChgInvTimer_last;
+ extern xbyte action_timeout;
+ extern xbyte switch_role_timer;
+ extern xbyte ble_send_secutiry_request_timer;
+
+
+extern xbyte hidBuff[10] ;
+extern xbyte  m_link_key_exists  ;
+extern xbyte  m_ltk_exists  ;
+extern xbyte m_remote_le_addr[6]  ;
+extern xword m_ui_state_map  ;
+extern xbyte m_linkkey[16]   ;
+extern xbyte m_remote_addr[6]  ;
+extern xbyte m_reconn_addr[6]  ;
+extern xbyte m_le_ltk[16]  ;
+extern byte m_24g_addr[4] ;
+extern byte m_24g_paring_addr[4];
+extern byte kscurrmult;
+extern xbyte m_le_lap[6];
+extern xbyte m_reset_reg;
+extern xbyte m_lpm_mode;
+extern ulong le_pin_code;
+extern xword m_adcCurrentValue;
+extern xword m_adc3vValue; 
+extern xword m_adc0vBase;
+extern volatile xbyte m_adc_config_flag;
+extern volatile xbyte m_24g_enter_hibernate[4];
+extern volatile xbyte m_24g_pairing_sm;
+extern volatile xbyte  m_power_on_flag;
+extern volatile xbyte m_caps_num_lock;
+extern volatile xbyte m_reconnect_continue;
+extern volatile xbyte m_adc_channel;
+extern volatile xbyte m_wakup_from_power_flag;
+extern volatile xbyte m_le_send_security_request_flag;
+extern volatile xbyte m_local_name_length;
+extern volatile xbyte m_customize_timer;
+extern volatile xbyte m_24g_led_flag;
+extern volatile xbyte m_pc_sleep_flag;
+extern volatile xbyte m_le_battery_level_display_enable;
+extern xbyte SendReport1;
+extern xbyte SendReport2;
+extern xbyte kb_hidBuff1[8];
+extern xbyte kb_hidBuff2[8];
+#endif //_GLOBAL_VARIABLE_H_
Index: global_variable.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/global_variable.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/global_variable.c	(working copy)
@@ -0,0 +1,137 @@
+#include "global_variable.h"
+#include "Btreg.h"
+
+ 
+G_VARIABLE_MAP xdata g_variable _at_ mem_32asm_data_end;
+BD_KEY_RECORD xdata bd_key_record_list[3] ;
+
+
+// xbyte data random at 4dd0 to 4f40: makefile
+ xbyte m_caps_num_lock_last;
+ xbyte iOS_rec_pinCode;
+ xbyte pinCode_flag;
+ xbyte le_pin_code_len;
+ xbyte power_on_flag;
+ xbyte repeat_send_24g;
+ xbyte get_24g_led_send;
+ xbyte ble_reconnect_flag;
+ xbyte ble_fast_connect_flag;
+ xbyte press_long_time_flag;
+ xbyte long_press_flag;
+ xbyte standard_key_release_flag;
+ xbyte fast_connect_flag;
+ xbyte fn_flag;
+ xbyte fn_flag_last;
+ xbyte fn_tx_flag;
+ xbyte fn_lock_flag;
+ xbyte control_key_flag;
+ xbyte le_lap_temp[3];
+ xbyte multikey[9];
+ xbyte mult_key_value;
+ xbyte mult_key_status;
+ xbyte system_key_press;
+ xbyte key_value_temp;
+ xbyte keyCount;
+ xbyte recon_index;
+ xbyte le_send_battery_level_flag;
+ xbyte le_send_battery_level_delay_count; 
+ xbyte SendReport1;
+ xbyte SendReport2;
+ xbyte kb_hidBuff1[8];
+ xbyte kb_hidBuff2[8];
+ 
+ xbyte delayChgInvTimer;
+ xbyte delayChgInvTimer_last;
+ xbyte action_timeout;
+ xbyte switch_role_timer;
+ xbyte ble_send_secutiry_request_timer;
+
+
+volatile xbyte ksSelMapOld[KB_KSCAN_COL_NUM] _at_ 0x4d93;
+volatile xbyte ksSelMapCheck[KB_KSCAN_COL_NUM] _at_ 0x4da8;	// 4d93+20 = 4da8
+volatile xbyte ksSelMapCurr[KB_KSCAN_COL_NUM] _at_ 0x4dbc; 	// 4da8+20 = 4dbc
+volatile xbyte hidBuff[10] _at_ mem_mouse_x;
+volatile xbyte  m_link_key_exists _at_ mem_link_key_exists;
+volatile xbyte m_linkkey[16] _at_ mem_link_key ;
+volatile xbyte  m_ltk_exists _at_ mem_ltk_exists;
+volatile xbyte m_le_ltk[16] _at_ mem_le_ltk;
+volatile xbyte m_remote_le_addr[6] _at_ mem_le_plap;
+volatile xbyte m_remote_addr[6] _at_ mem_plap;
+volatile xbyte m_reconn_addr[6] _at_ mem_hci_plap;
+volatile byte m_24g_addr[4] _at_ mem_24g_addr;
+volatile byte m_24g_paring_addr[4] _at_ mem_24g_paring_addr;
+
+volatile xbyte m_le_lap[6] _at_ mem_le_lap;
+
+volatile byte kscurrmult _at_ mem_lpm_mult;
+volatile xword m_ui_state_map _at_ mem_ui_state_map;
+volatile xbyte m_reset_reg _at_ 0x8010;
+volatile xbyte m_lpm_mode _at_ mem_lpm_mode;
+volatile ulong le_pin_code _at_ mem_le_pin_code;
+volatile xword m_adcCurrentValue _at_ mem_adc_current_value;
+volatile xword m_adc3vValue _at_ mem_adc_3v;
+volatile xword m_adc0vBase _at_ mem_adc_0v;
+volatile xbyte m_adc_config_flag _at_ mem_adc_config_flag;
+volatile xbyte m_24g_enter_hibernate[4] _at_ mem_24g_enter_hibernate;
+volatile xbyte m_24g_pairing_sm _at_ mem_24g_pairing_sm;
+volatile xbyte  m_power_on_flag _at_ mem_power_on_flag;
+volatile xbyte m_caps_num_lock _at_ mem_caps_num_lock;
+volatile xbyte m_reconnect_continue _at_ mem_reconnect_continue;
+volatile xbyte m_adc_channel _at_ mem_adc_channel;
+volatile xbyte m_wakup_from_power_flag _at_ mem_wakup_from_power_flag;
+volatile xbyte m_le_send_security_request_flag _at_ mem_le_send_security_request_flag;
+volatile xbyte m_local_name_length _at_ mem_local_name_length;
+volatile xbyte m_customize_timer _at_ mem_customize_timer;
+volatile xbyte m_24g_led_flag _at_ mem_24g_led_flag;
+volatile xbyte m_pc_sleep_flag _at_ mem_pc_sleep_flag;
+volatile xbyte m_le_battery_level_display_enable _at_ mem_le_battery_level_display_enable;
+
+
+
+code byte col[KB_KSCAN_COL_NUM+1]=
+{
+0X08,
+0X09,
+0X0A,
+0X0B,
+0X0C,
+0X0D,
+0X0E,
+0X18,
+0X19,
+0X17,//c10
+0X15,
+0X14,
+0X13,
+0X11,//14
+0X16,
+0X1b,
+0X1c,
+0x1d,
+0x1a,
+};
+
+
+code byte  ksMap[KS_KEY_MAP_LEN]=
+{
+0X1d,0X1e,0X00,0X00,0Xe6,0Xed,0Xff,0X66,								
+0X06,0X20,0X00,0Xfb,0Xfa,0Xfe,0Xe4,0Xf3, 				
+0X19,0X22,0X3e,0Xf6,0Xe2,0Xfc,0Xfd,0Xf5,
+0X28,0X23,0X3f,0X00,0X00,0Xe1,0X00,0X00,
+0X09,0X3c,0X48,0X00,0X00,0X00,0Xe0,0Xf1,
+0X87,0X21,0X2c,0Xe3,0Xd6,0X00,0X00,0X00,
+0X89,0X3d,0X04,0XF4,0X00,0X00,0X00,0XE7,
+0X40,0X35,0X16,0X1c,0X13,0X24,0X00,0X00,
+0X41,0X2d,0X2b,0X18,0X2f,0X25,0X0b,0X11,
+0X42,0X2e,0X07,0X0c,0X30,0X26,0X34,0X7f,
+0X44,0X3a,0X1a,0X46,0X4a,0X4c,0X49,0X37,
+0X04,0X0f,0X08,0X47,0X4d,0X4b,0X4e,0X38,//c12
+0X43,0X3b,0X14,0X12,0X31,0X27,0X32,0X36,
+0X00,0X33,0X52,0X53,0X5f,0X5c,0X59,0X64,
+0X29,0X0e,0X50,0X54,0X60,0X5d,0X5a,0X62,
+0X15,0X0d,0X51,0X55,0X61,0X5e,0X5b,0X63,
+0X17,0X2a,0X4f,0X56,0X57,0X00,0X58,0X39,
+0X1b,0X1f,0Xf2,0Xee,0Xe8,0Xe5,0XD5,0Xfd,
+0X0a,0X00,0X00,0X00,0X00,0X00,0X05,0X10,
+};
+
Index: gpio.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/gpio.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/gpio.h	(working copy)
@@ -0,0 +1,83 @@
+
+#ifndef _GPIO_H
+#define _GPIO_H
+#include "type.h"
+#include "Hwreg.h"
+
+extern volatile xbyte YC_GPIOWakeupL[4];
+extern volatile xbyte YC_GPIOWakeupH[4];
+
+#define GPIO_SetBit(gpio_num,reg_base, bit_val) if(bit_val)  \
+		*(reg_base + (gpio_num >> 3 & 3)) |= 1<<(gpio_num & 7);	\
+	else	\
+		*(reg_base + (gpio_num >> 3 & 3)) &= ~(1<<(gpio_num & 7))
+
+/**
+ * This function gpio get input status.0 low,1high
+ * 
+ * @param gpio_num
+ * 
+ * @return none.
+*/
+bool GPIO_GetInputStatus(byte gpio_num);
+/**
+ * This function set gpio out.
+ * 
+ * @param gpio_num,bit_val bit_val 0 low, 1high
+ * 
+ * @return none.
+*/
+void GPIO_Setout(byte gpio_num, bool bit_val);
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 pull down ,0 pull up.
+ * 
+ * @return none.
+*/
+void GPIO_SetInput(byte gpio_num,bit  st);
+
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 high ,0 low.
+ * 
+ * @return none.
+*/
+void GPIO_SetOutput(byte gpio_num,bit  st);
+/**
+ * This function set gpio wake.This function must use with GPIO_SetInput.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeup(byte gpio_num,bit  st);
+
+/**
+ * This function set gpio wake by curent state for fast wake mcu.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeupByCurrentState(byte gpio_num);
+
+/**
+ * This function Flip output state.
+ * 
+ * @param gpio_num.
+ * 
+ * @return none.
+*/
+void GPIO_FlipOutBit(byte gpio_num);
+
+/* make all gpios into pd state if not output or pullhigh */
+void GPIO_fillpd();
+void GPIO_SetPd(byte gpio_num, bool bit_val);
+void GPIO_Setoe(byte gpio_num, bool bit_val);
+void GPIO_SetPu(byte gpio_num, bool bit_val);
+
+#endif /* YC_GPIO_H */
+
+
Index: hwreg.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/hwreg.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/hwreg.h	(working copy)
@@ -0,0 +1,214 @@
+#ifndef _HWREG_H_
+#define _HWREG_H_
+
+
+#define HWRITED(reg, dword)	do{HWRITE(reg, (dword) & 0xff); \
+							HWRITE(reg + 1, (dword) >> 8 & 0xff); \
+							HWRITE(reg + 2, (dword) >> 16 & 0xff); \
+							HWRITE(reg + 3, (dword) >> 24 & 0xff); \
+							}while(0)
+
+#define HREADD(reg)			((u32_t)HREAD(reg)  | (u32_t)HREAD(reg + 1) << 8 | (u32_t)HREAD(reg + 2) << 16 | (u32_t)HREAD(reg + 3) << 24)
+
+#define ESWAP(word)			((word) >> 8 & 0xff | (word) << 8 & 0xff00)
+#define min(x,y) 				((x) < (y) ? (x) : (y))
+#define HREADW(reg)			(*((volatile unsigned int xdata *)(reg)))
+#define HWRITEW(mem, word)	HREADW(mem) = ESWAP(word)
+#define HREADWS(reg)			ESWAP(HREADW(reg))
+
+#define HREAD(reg)			(*(volatile unsigned char xdata *)(reg))
+#define HWRITE(reg, value)		*((volatile unsigned char xdata *)(reg)) = value
+
+#define SETBIT(reg, value)		HWRITE(reg,( (HREAD(reg)) | (value)))
+#define CLRBIT(reg, value)		HWRITE(reg, (HREAD(reg) & (~(value))))
+#define READBIT(reg, value)		((HREAD(reg)) & (value))
+#define BIT(x)					(1 << (x))
+
+
+#define PWM_EN			0x8084
+
+#define GPIO_OE(X)      0x8070 + X
+#define GPIO_OUT(X)     0x8074 + X
+#define GPIO_PUP(X)     0x8078 + X
+#define GPIO_PDN(X)     0x807c + X
+#define GPIO_SEL(X)     0x8080 + X
+#define GPIO_KEY(X)     0x8083 + X
+
+#define GPIO_IN(X)      0x811c + X
+
+
+#define PWM_PCOUNT(X)	(0x80a0 + X*4)
+#define PWM_NCOUNT(X)	(0x80a2 + X*4)
+
+#define CLOCK_SEL			0x8044
+#define CLOCK_SEL_12M		9
+
+#define LPM_EXENOE		0x813e
+
+// math cordic
+#define CORDIC_TYPE    	0x8053
+#define CORDIC_A     		0x80a8
+#define CORDIC_B     		0x80ac
+#define PERF_STATUS		0x812d
+#define CORDIC_RESULT     	0x8120
+
+#define YC_TYPE_SIN		0
+#define YC_TYPE_ATAN	1
+#define YC_TYPE_MULT	2
+#define YC_TYPE_DIV		3
+#define YC_TYPE_ASIN	         4
+#define YC_TYPE_SQRT	5
+#define YC_TYPE_COS		6
+#define YC_TYPE_TAN		7
+
+// DMA UART
+#define UART_BAUD     0x8052
+#define UART_RSADDR   0x8054
+#define UART_READDR   0x8056 
+#define UART_RRPTR    0x8058
+#define UART_TSADDR   0x805a 
+#define UART_TEADDR   0x805c 
+#define UART_TWPTR    0x805e
+#define UART_TRPTRP   0x8060 
+#define UART_CTRL     0x8062 
+#define CLKN	0x8100
+
+#define UART_STATUS  0x810c
+#define UART_RBAUD   0x810d 
+#define UART_TXITEMS 0x810e 
+#define UART_TRPTR   0x8110 
+#define UART_RXITEMS 0x8112 
+#define UART_RDPTR   0x8114 
+#define UART_RWPTR   0x8116 
+
+#define KSCN_KSCTRL                 	0x8063
+#define KSCN_RCTC                    	0x8064
+#define KSCN_ROW_MASK                	0x806f
+
+#define KSCN_EVENT_BUF           	0x811a
+#define KSCN_EVENT_NUM           	0x811b
+
+
+#define  CPUA_ICE_CTRL (*(volatile unsigned char xdata *)(0x8280))
+
+#define CPUB_ICE_BK0_LO			0x8205
+#define CPUB_ICE_BK0_HI			0x8206
+
+#define IIC_ADDR_START		0x8300
+#define IIC_PRER_LOW			0x8300
+#define IIC_SLAVE_ADDR		0x8301
+#define IIC_CTR				0x8302
+#define IIC_CR				0x8303
+#define IIC_RXR				0x8304
+#define IIC_TXR				0x8305
+#define IIC_SR				0x8306
+#define IIC_FIFO				0x8307
+
+#define USB_CONFIG		0x8c00
+#define USB_INT_MASK(x)	(0x8c01 + x)
+#define USB_TRG			0x8c10
+#define USB_STALL		0x8c11
+#define USB_CLEAR		0x8c12
+#define USB_EP(x)			(0x8c18 + x)
+#define USB_EP_LEN(x)		(0x8c20 + x)
+
+
+#define USB_STATUS		0x8c26
+#define USB_FIFO_EMPTY	0x8c27
+
+sfr DFIFO0     = 0x94;
+sfr DFIFO1     = 0x95;
+sfr DFIFO2     = 0x96;
+
+
+#define PWM_CLOCK           5 
+#define REG_CLK_OFF(n)		(*(volatile unsigned char xdata *)(0x8050 + n))
+
+#define REG_PWM_ENABLE   	(*(volatile unsigned char xdata *)0x8085)
+#define REG_PWM_CLK_SEL 	(*(volatile unsigned char xdata *)0x8042)
+#define REG_PWM_PCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a0 + n*4))
+#define REG_PWM_NCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a2 + n*4))
+
+
+#define REG_UART_CLK_SEL	(*(volatile unsigned char xdata *)0x8043)
+#define REG_UART_BAUD		(*(volatile unsigned short xdata *)0x8052)
+#define REG_UART_BAUD_HI		(*(volatile unsigned char xdata *)0x8053)
+#define REG_UART_RX_ADDR_S	(*(volatile unsigned short xdata *)0x8054)
+#define REG_UART_RX_ADDR_E 	(*(volatile unsigned short xdata *)0x8056)
+#define REG_UART_RX_PTR_R	(*(volatile unsigned short xdata *)0x8058)
+#define REG_UART_TX_ADDR_S	(*(volatile unsigned short xdata *)0x805a)
+#define REG_UART_TX_ADDR_E	(*(volatile unsigned short xdata *)0x805c)
+#define REG_UART_TX_PTR_W	(*(volatile unsigned short xdata *)0x805e)
+#define REG_UART_TX_PTRP_R	(*(volatile unsigned short xdata *)0x8060)
+#define REG_UART_CTRL		(*(volatile unsigned char xdata *)0x8062)
+
+//read only
+#define REG_UART_STATUS		(*(volatile unsigned char xdata *)0x810c)
+#define REG_UART_DET_BAUD	(*(volatile unsigned char xdata *)0x810d)
+#define REG_UART_TX_ITEMS	(*(volatile unsigned short xdata *)0x810e)
+#define REG_UART_TX_PTR_R	(*(volatile unsigned short xdata *)0x8110)
+#define REG_UART_RX_ITEMS	(*(volatile unsigned short xdata *)0x8112)
+#define REG_UART_RX_DPTR_R	(*(volatile unsigned short xdata *)0x8114)
+#define REG_UART_RX_PTR_W	(*(volatile unsigned short xdata *)0x8116)
+
+#define REG_GPIO_SELECT(n)	(*(volatile unsigned char xdata *)(0x8080 + n))
+
+#define REG_GPIO_OE(n) 	(*(volatile unsigned char xdata *)(0x8070 + n))
+#define REG_GPIO_OUT(n)	(*(volatile unsigned char xdata *)(0x8074 + n))
+#define REG_GPIO_PUP(n) 	(*(volatile unsigned char xdata *)(0x8078 + n))
+#define REG_GPIO_PDN(n)	(*(volatile unsigned char xdata *)(0x807c + n))
+#define REG_GPIO_SEL(n) 	(*(volatile unsigned char xdata *)(0x8080 + n))
+#define REG_GPIO_KEY(n) 	(*(volatile unsigned char xdata *)(0x8083 + n))
+
+#define REG_GPIO_IN(n)	(*(volatile unsigned char xdata *)(0x811c + n))	//n=0,1,2,3
+
+#define REG_MISC_CTRL			(*(volatile unsigned char xdata *)(0x8006))
+
+
+#define REG_SPID_CTRL  			(*(volatile unsigned char xdata *)(0x8086))
+#define REG_SPID_DELAY  		(*(volatile unsigned char xdata *)(0x8087))
+#define REG_SPID_TXADDR			(*(volatile unsigned short xdata *)(0x808a))
+#define REG_SPID_RXADDR			(*(volatile unsigned short xdata *)(0x808c))
+#define REG_SPID_TXLEN			(*(volatile unsigned short xdata *)(0x8088))
+#define REG_SPID_RXLEN			(*(volatile unsigned short xdata *)(0x808e))
+
+#define REG_IICD_CTRL			(*(volatile unsigned char xdata *)(0x8090))
+#define REG_IICD_SCL_LOW		(*(volatile unsigned char xdata *)(0x8091))
+#define REG_IICD_SCL_HIGH		(*(volatile unsigned char xdata *)(0x8092))
+#define REG_IICD_START_SETUP		(*(volatile unsigned char xdata *)(0x8093))
+#define REG_IICD_START_HOLD		(*(volatile unsigned char xdata *)(0x8094))
+#define REG_IICD_STOP_SETUP		(*(volatile unsigned char xdata *)(0x8095))
+#define REG_IICD_DATA_SETUP		(*(volatile unsigned char xdata *)(0x8096))
+#define REG_IICD_DATA_HOLD		(*(volatile unsigned char xdata *)(0x8097))
+#define REG_IICD_TXLEN			(*(volatile unsigned short xdata *)(0x8098))
+#define REG_IICD_TXADDR			(*(volatile unsigned short xdata *)(0x809a))
+#define REG_IICD_RXADDR			(*(volatile unsigned short xdata *)(0x809c))
+#define REG_IICD_RXLEN			(*(volatile unsigned short xdata *)(0x809e))
+#define REG_CLKN					(*(volatile unsigned long xdata *)(0x8100))
+#define REG_DMA_STATUS			(*(volatile unsigned char xdata *)(0x812c))
+
+#define REG_RFEN_ADC			(*(volatile unsigned char xdata *)(0x8906))
+#define REG_ADC_IN				(*(volatile unsigned short xdata *)(0x812e))
+#define REG_RF_ADC_GC			(*(volatile unsigned char xdata *)(0x8972))
+#define REG_RFEN_CHGPUMP		(*(volatile unsigned char xdata *)(0x8973))
+#define REG_RF_ADC_MODE		(*(volatile unsigned char xdata *)(0x8971))
+#define CORE_ADC_SUM		(*(volatile unsigned short xdata *)(0x8150))
+
+#define REG_KSCAN_KSCTRL				(*(volatile unsigned char xdata *)(0x8063))
+#define REG_KSCAN_RCTC				(*(volatile unsigned char xdata *)(0x8064))
+#define REG_KSCAN_SCANCYCLE_TIMER_L	(*(volatile unsigned char xdata *)(0x8065))
+#define REG_KSCAN_SCANCYCLE_TIMER_H	(*(volatile unsigned char xdata *)(0x8066))
+
+
+#define REG_KSCAN_KSTAT				(*(volatile unsigned char xdata *)(0x8119))
+#define REG_KSCAN_EVENT				(*(volatile unsigned char xdata *)(0x811a))
+#define REG_KSCAN_EVENT_NUM			(*(volatile unsigned char xdata *)(0x811b))
+
+#define REG_KSCAN_M_DEBOUNCE		(*(volatile unsigned char xdata *)(0x8067))
+#define REG_KSCAN_MODKEY				(*(volatile unsigned char xdata *)(0x8068))
+#define REG_KSCAN_ROWMASK			(*(volatile unsigned char xdata *)(0x806f))
+#define REG_CONFIG						(*(volatile unsigned char xdata *)(0x8043))
+
+
+
+#endif
Index: iic.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/iic.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/iic.h	(working copy)
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * IIC support for application
+ */
+#ifndef __DEV_EEP_H_
+#define __DEV_EEP_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+
+/**
+ * This function read data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to restore data
+ * 
+ * @return none.
+*/
+void IIC_Read(word addr, word len, byte* pbuff);
+/**
+ * This function write data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to write,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_write(word addr,word len, byte* pbuff);
+/**
+ * This function write data by IIC,can't ignore page of block device,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_WriteBlock(word addr, word len, byte* pbuff);
+#endif/* YC_IIC_H */
+
Index: ipc.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/ipc.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/ipc.h	(working copy)
@@ -0,0 +1,313 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * ipc support for application
+ */
+#ifndef _YC_IPC_H_
+#define _YC_IPC_H_
+#include "type.h"
+#include "btreg.h"
+
+#define BUG_FIX
+#ifdef BUG_FIX
+#define FIX_ENTER_LPM	0x01
+#define FIX_ENTER_HIBERNATE	0x03
+#define FIX_LEAVE_LPM	0x05
+
+#endif
+
+
+/* IPC tx hardware address */
+#define IPC_TX_HEAD	mem_ipc_2bt_fifo_head
+#define IPC_TX_END	mem_ipc_2bt_fifo_end
+
+/*IPC rx hardware address*/
+#define IPC_RX_HEAD	mem_ipc_2C51_fifo_head
+#define IPC_RX_END	mem_ipc_2C51_fifo_end
+
+/*IPC data type*/
+#define IPC_CONTROL_CMD		0x01
+#define IPC_CONTROL_EVT		0x02
+#define IPC_HID_DATA			0x03
+#define IPC_SPP_DATA			0x04
+#define IPC_BLE_DATA			0x05
+#define IPC_24G_DATA			0x06
+
+/*IPC cmd type*/
+#define IPC_CMD_STANDBY                                  	0x00
+#define IPC_CMD_START_DISCOVERY                   	0x01
+#define IPC_CMD_STOP_DISCOVERY                      	0x02
+#define IPC_CMD_RECONNECT                              	0x03
+#define IPC_CMD_DISCONNECT                               0x04
+#define IPC_CMD_ENTER_SNIFF                              	0x05
+#define IPC_CMD_EXIT_SNIFF                               	0x06
+#define IPC_CMD_ENTER_SNIFF_SUBRATING         0x07
+#define IPC_CMD_EXIT_SNIFF_SUBRATING             0x08
+#define IPC_CMD_SNIFF_TEST                               	0x09
+#define IPC_CMD_SET_PIN_CODE                           	0x0a
+#define IPC_CMD_START_INQUIRY                          0x0b
+#define IPC_CMD_STOP_INQUIRY                            0x0c
+#define IPC_CMD_START_ADV                                	0x0d
+#define IPC_CMD_STOP_ADV                                 	0x0e
+#define IPC_CMD_START_DIRECT_ADV                   0x0f
+#define IPC_CMD_STOP_DIRECT_ADV                    	0x10
+#define IPC_CMD_LE_DISCONNECT                        	0x11
+#define IPC_CMD_LE_UPDATE_CONN                     	0x12
+#define IPC_CMD_LED_OFF                                  	0x13
+#define IPC_CMD_LED_ON                                   	0x14
+#define IPC_CMD_LED_BLINK                                	0x15
+#define IPC_CMD_LE_START_CONN                     	0x16
+#define IPC_CMD_LE_START_SCAN                      	0x17
+#define IPC_CMD_LE_STOP_SCAN                         	0x18
+#define IPC_CMD_ENTER_HIBERNATE                    	0x19
+#define IPC_CMD_LE_SMP_SECURITY_REQUEST   0x1b
+#define IPC_CMD_LE_START_WRITE                      	0x1c
+#define IPC_CMD_ROLE_SWITCH                          	0x1d
+#define IPC_CMD_BB_RECONN_CANCEL              	0x1e
+#define IPC_CMD_STORE_RECONN_INFO_LE        	0x1f
+#define IPC_CMD_STORE_RECONN_INFO_BT        	0x20
+#define IPC_CMD_START_24G                                	0x21
+#define IPC_CMD_STOP_24G                                 	0x22
+#define IPC_CMD_PAIR_24G                                 	0x23
+#define IPC_CMD_UPDATE_SUPERVISION_TO     	0x28
+#define IPC_CMD_LE_SET_PINCODE                      	0x29
+#define IPC_CMD_SET_RECONNECT_INIT          	0x2a
+#define IPC_CMD_START_ADV_REC                      	0x2b
+#define IPC_CMD_START_ADV_DISCOVERY            0x2c
+
+
+/*IPC event type*/
+#define IPC_EVT_NULL                                     		0x00
+#define IPC_EVT_BB_CONNECTED                       	0x01
+#define IPC_EVT_BB_DISCONNECTED                   	0x02
+#define IPC_EVT_RECONN_STARTED                     	0x03
+#define IPC_EVT_RECONN_FAILED                       	0x04
+#define IPC_EVT_SETUP_COMPLETE                     	0x05
+#define IPC_EVT_HID_CONNECTED                       	0x06
+#define IPC_EVT_HID_DISCONNECTED                   	0x07
+#define IPC_EVT_SPP_CONNECTED                     	0x08
+#define IPC_EVT_SPP_DISCONNECTED                  	0x09
+#define IPC_EVT_PINCODE_REQ                           	0x0A
+#define IPC_EVT_ENTER_SNIFF                              	0x0B
+#define IPC_EVT_EXIT_SNIFF                               	0x0C
+#define IPC_EVT_ENTER_SNIFF_SUB                     	0x0D
+#define IPC_EVT_EXIT_SNIFF_SUB                      	0x0E
+#define IPC_EVT_DISCOVERY_STOPED                 	0x0F
+#define IPC_EVT_BUTTON_LONG_PRESSED         	0x10
+#define IPC_EVT_HID_HANDSHAKE                         	0x12
+#define IPC_EVT_RECONN_PAGE_TIMEOUT          	0x13
+#define IPC_EVT_LE_CONNECTED                         	0x14
+#define IPC_EVT_LE_DISCONNECTED                    	0x15
+#define IPC_EVT_ML2CAP_CONN_REFUSED           	0x16
+#define IPC_EVT_BUTTON_ENTER_HIBERNATE     	0x17
+#define IPC_EVT_LINKKEY_GENERATE                   	0x18
+#define IPC_EVT_SWITCH_NOT_ACCEPT                	0x19
+#define IPC_EVT_SWITCH_ACCEPT                         	0x20
+#define IPC_EVT_SNIFF_NOT_ACCEPT                    0x21
+#define IPC_EVT_SNIFF_ACCEPT                             0x22
+#define IPC_EVT_UNSNIFF_ACCEPT                        	0x23
+#define IPC_EVT_UNSNIFF_NOT_ACCEPT               	0x24
+#define IPC_EVT_BUTTON_ADJUST_DPI                 	0x25
+#define IPC_EVT_SEND_UNSNIFF_ACCEPT            	0x26
+#define IPC_EVT_VIRTUAL_CABLE_UNPLUG          	0x27
+#define IPC_EVT_LE_WRITE_REQUEST                  	0x28
+#define IPC_EVT_LE_ENC_INFO                              	0x29
+#define IPC_EVT_SWITCH_FAIL_MASTER               	0x2a
+#define IPC_EVT_SWITCH_SUCCESS_MASTER       	0x2b
+#define IPC_EVT_BUTTON_DOWN                           	0x2c
+#define IPC_EVT_BUTTON_UP                                	0x2d
+#define IPC_EVT_REMOTE_UNSNIFF                      	0x2e
+#define IPC_EVT_RESET                                    	0x2f
+#define IPC_EVT_WAKEUP                                   	0x30
+#define IPC_EVT_24G_PAIRING_COMPLETE          	0x31
+#define IPC_EVT_24G_ATTEMPT_FAIL                   	0x32
+#define IPC_EVT_HIBERNATE_WAKE                      	0x33
+#define IPC_EVT_LE_PROTOCOL_CONNECTED    	0x34
+#define IPC_EVT_LE_PINCODE_REQ				0x35
+#define IPC_EVT_RECONNECT_STANDY                	0x37
+#define IPC_EVT_CLEAR_LINKKEY                         	0x39
+#define IPC_EVT_24G_ATTEMPT_SUCCESS           	0x3c
+#define IPC_EVT_TIMER_INIT                               	0x50
+#define IPC_EVT_TIMER_MASK                               	0xF0
+#define IPC_EVT_TIMER_100MS                              	0x51
+#define IPC_EVT_TIMER_200MS                             	0x52
+#define IPC_EVT_TIMER_300MS                              	0x53
+#define IPC_EVT_TIMER_400MS                              	0x54
+#define IPC_EVT_TIMER_500MS                              	0x55
+#define IPC_EVT_TIMER_600MS                              	0x56
+#define IPC_EVT_TIMER_700MS                              	0x57
+#define IPC_EVT_TIMER_800MS                              	0x58
+#define IPC_EVT_TIMER_900MS                              	0x59
+#define IPC_EVT_TIMER_1KMS                               	0x5A
+#define IPC_EVT_TIMER_1K1MS                              	0x5B
+#define IPC_EVT_TIMER_1K2MS                              	0x5C
+#define IPC_EVT_TIMER_1K3MS                              	0x5D
+#define IPC_EVT_TIMER_1K4MS                              	0x5E
+#define IPC_EVT_TIMER_1K5MS                              	0x5F
+
+
+/*IPC EVT callback function type*/
+typedef void (*tIPCEventCb)(byte);
+
+/*IPC SPP callback function type*/
+typedef void (*tIPCSppCb)(byte*, word);
+
+/*IPC BLE callback function type*/
+typedef void (*tIPCBleCb)(byte*, word);
+
+/*IPC timer(1s) callback function type*/
+typedef void (*tIPCTimer)(void);
+
+/*IPC Hid callback function type*/
+typedef void (*tIPCHidCb)(byte*, word);
+
+/*IPC control block type*/
+typedef struct IPCContolBlock {
+	tIPCEventCb evtcb;		/*<ipc evt call back*/
+	tIPCSppCb sppcb;		/*<ipc spp call back*/
+	tIPCTimer timercb;		/*<ipc timer call back*/
+	tIPCTimer stimercb;
+	tIPCBleCb blecb;
+	tIPCHidCb hidcb;
+}tIPCControlBlock;
+
+
+typedef enum IPCRejReason{
+	AUTHENTICATION_FAILURE_ERROR = 0x05,
+	KEY_MISSING = 0x06,
+	ACL_CONNECTION_ALREADY_EXISTS = 0x0b,
+	OTHER_END_TERMINATED = 0x13,
+	ABOUT_TO_POEWR_OFF = 0x15,
+	LOCAL_HOST= 0x16,
+	PAIRING_NOT_ALLOWED = 0x18,
+	UNKNOWN_LMP_PDU = 0x19,
+	UNSUPPORTED_LMP_FEATURE = 0x1A,
+	UNSPECIFIED_ERROR = 0x1F,
+	UNSUPPORTED_PARAMETERS = 0x20,
+	SWITCH_NOT_ALLOWED = 0x21,
+	TRANSACTION_COLLISION = 0x23,
+	PDU_NOT_ALLOWED = 0x24,
+	ENCRYPTION_MODE_NOT_ACCEPTABLE = 0x25,
+	NOT_SUPPORT_CHN_CLASSIFICATION = 0x2e,
+	NOT_SUPPORT_SSP = 0x37,
+}tIPCREJREASON;
+
+/*IPC syc task type*/
+
+#define BT_PIN_CODE_MAX_LEN 16
+extern xbyte ipcPinlen;
+extern xbyte ipcPin[BT_PIN_CODE_MAX_LEN];
+extern xbyte current_task;
+
+/*IPC set pincode*/
+#define IPC_SetPincode(p,l)	ipcPinlen= l,\
+							xmemcpy(ipcPin, p, ipcPinlen)
+
+/**
+ * This function rigist IPC Control Block.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+void IPC_Initialize(tIPCControlBlock *cb);
+
+/**
+ * This function deal IPC Single process, callback the rigisted IPC control function.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_DealSingleStep(void);
+
+/**
+ * This function tx control IPC command.
+ * 
+ * @param cmd IPC command want to send.
+ * 
+ * @return none.
+*/
+void IPC_TxControlCmd(byte cmd);
+/**
+ * This function tx HID IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_TxBREDRHidData(byte* dt, byte len);
+
+/**
+ * This function tx 24G IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_Tx24GData(byte* dt, byte len);
+
+/**
+ * This function tx SPP IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC SPP data want to send,len length of SPP data
+ * 
+ * @return none.
+*/
+void IPC_TxSppData(byte* dt, byte len);
+
+/**
+ * This function tx BLE IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC BLE data want to send,len length of BLE data
+ * 
+ * @return none.
+*/
+void IPC_TxBleData(byte* dt, byte len);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_WaitLpm(void);
+
+/**
+ * This function will do nothing abandon lpm this time.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_AbandonLpm(void);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+bit IPC_IsTxBuffEmpty(void);
+
+/**
+ * This function get reject reason.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+tIPCREJREASON IPC_GetBBDIsconnectReason();
+
+#endif /* YC_IPC_H */
Index: kb_process.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/kb_process.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/kb_process.h	(working copy)
@@ -0,0 +1,101 @@
+#ifndef _KB_PROCESS_H
+#define _KB_PROCESS_H
+#include "common.h"
+
+#define KEY_STANDBY					0x00
+#define KEY_MULIT_PRESS				0x01
+#define KEY_SYSTEM_PRESS			0x04
+#define KEY_WAIT_RELEASE			0x02
+#define KEY_RELEASE					0x03
+#define KEY_2G4_FN_TX				0x04
+
+#define KB_PC_KEYSEL_NUMLOCK		0x01
+#define KB_PC_KEYSEL_CAPSLOCK		0x02
+#define KB_PC_KEYSEL_SCROLLLOCK 	0x04
+
+#define KEY_FLAG_BTKEY_PRESS				0x01
+#define KEY_FLAG_SAME_KEY_PRESS			0x02
+#define KEY_FLAG_STOP_DISCOVERY			0x04
+#define KEY_FLAG_FN_DEVICE_BUTTON			0x08
+#define KEY_FLAG_FN_24G_DEVICE_BUTTON		0x10
+#define KEY_FLAG_FN_SYSTEM_MODE_BUTTON	0x20
+
+#define CAMBINATION_KEY_FREE				0
+#define CAMBINATION_KEY_PRESS				1
+#define CAMBINATION_KEY_HOLD				2
+#define CAMBINATION_KEY_COMPLETE			3
+#define CAMBINATION_KEY_WAIT_RELEASE 		4
+#define CAMBINATION_KEY_RELEASE			5	
+#define CAMBINATION_KEY_NULL				6
+
+
+#define OSMODE_WINDOWS	0x00
+#define OSMODE_MAC			0x01
+#define OSMODE_IOS			0x02
+ #define          OSMODE_ANDROID    0x03
+//gipo
+#define EEPROM_WP_GPIO			0xff
+
+#define NUM_LOCK_LED_GPIO    	0x0f
+#define CAPS_LED_GPIO		  	0x10
+#define BT_LED_GPIO		  		0xff
+#define LOWPOWER_LED_GPIO		0x0f
+#define BT2_LED_GPIO				0xff
+#define G24_LED_GPIO                             0x0f
+#define SCRLK_LED_GPIO				0x1f
+//eeprom address base
+#define EEPROM_RECON_INFO_BASE_6  					0x7F50
+#define EEPROM_RECON_INFO_G24_FN_LOCK			(EEPROM_RECON_INFO_BASE_6+6)
+#define EEPROM_RECON_INFO_G24_SYTEM_MODE		(EEPROM_RECON_INFO_BASE_6+7)
+#define EEPROM_RECON_INFO_BASE					0x7F60		// bd_key_record_list = 31*3 = 93
+#define EEPROM_RECON_INFO_LAST_DEVICE 			(EEPROM_RECON_INFO_BASE+93)
+//#define EEPROM_RECON_INFO_POWER_ACTION 			(EEPROM_RECON_INFO_BASE+94)
+#define EEPROM_RECON_INFO_RAMDON_LE_LAP1		(EEPROM_RECON_INFO_BASE+94)
+#define EEPROM_RECON_INFO_RAMDON_LE_LAP2		(EEPROM_RECON_INFO_BASE+95)
+#define EEPROM_BATTERY_SHUTDOWN_FLAG			(EEPROM_RECON_INFO_BASE+96)
+ #define       EEPROM_RECON_INFO_SYTEM_MODE                    (EEPROM_RECON_INFO_BASE+97)
+
+#define EEPROM_STORE_TYPE_NORMAL	1
+#define EEPROM_STORE_TYPE_G24			2
+#define EEPROM_STORE_TYPE_BT			3
+
+
+#define KS_KEY_MAP_LEN					158
+#define KB_KSCAN_COL_NUM				20
+
+#define KB_24G_LED_ACK_TYPE			3
+
+byte key_fn_function(byte state ,byte key_value);
+
+
+typedef enum c51_user_key_action
+{
+	KEY_NONE= 0,
+	KEY_RECON_0=1,
+	KEY_RECON_1=2,
+	KEY_RECON_2=3,
+	KEY_ENTER_ADV,
+	KEY_DISCOVERY,
+	KEY_DISCONNECT_ALL,
+	KEY_CLEAR_RECORD,
+	KEY_START_24G,
+	KEY_OPEN_24G,
+	KEY_PAIRING_24G,
+	KEY_STOP_24G,
+	KEY_USB,
+	KEY_STOP_DISCOVERY,
+}C51_KEY_ACTION;
+
+
+
+void IPC_TxHidData(byte* dt, byte len);
+void kb_need_keyscan();
+void YC_key_action_handle(byte key_num);
+void kb_motion_keyscan(tKSEVENT *pEvt);
+byte kb_device_select(tKSEVENT *pEvt);
+void kb_multikey_setup(tKSEVENT *pEvt);
+byte key_fn_function(byte state ,byte key_value);
+void kb_keyscan_send();
+
+#endif
+
Index: kb_process.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/kb_process.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/kb_process.c	(working copy)
@@ -0,0 +1,1423 @@
+#include "kb_process.h"
+
+#define FN_KEY_ENABLE 1
+
+void YC_key_action_handle(byte key_num)
+{
+	switch (key_num)
+	{
+	case KEY_RECON_0:
+	case KEY_RECON_1:
+	case KEY_RECON_2:
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+			||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+		{
+			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			recon_index = key_num-1;
+			kscurrmult = 0x05;
+			g_variable.recon_count = 5;
+			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+			Delay1ms(10);
+			IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_STOP_DISCOVERY:
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		break;
+	case KEY_DISCOVERY:
+		g_variable.recon_count = 0;
+		if (YC_disconnect_all_link() || YC_cancel_reconnect() || YC_g24_mode_discovery())
+		{
+			g_variable.key_action = key_num;
+			action_timeout = 3;
+		}
+		else
+		{
+			IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);	
+			YC_clear_reconnect_flag();
+				ble_send_secutiry_request_timer = 0;
+				ble_fast_connect_flag = 0;
+				fast_connect_flag = 0;
+			#if DEVICE_MODE_BT_ONLY
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+			#elif DEVICE_MODE_BLE_ONLY	
+//				m_lpm_mode = 0;
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+			#else	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+			#endif
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_DISCONNECT_ALL:
+		YC_disconnect_all_link();
+		g_variable.key_action = KEY_NONE;
+		break;
+	case KEY_CLEAR_RECORD:
+		xmemclear_ff((byte *)bd_key_record_list,sizeof(BD_KEY_RECORD)*3);
+		g_variable.last_device_num = 0xff;
+		g_variable.system_mode = 0xff;
+		Delay1ms(200);
+		GPIO_Setout(EEPROM_WP_GPIO,0);
+		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)&bd_key_record_list);
+		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,1 ,(byte *)&g_variable.last_device_num);
+		GPIO_Setout(EEPROM_WP_GPIO,1);
+		g_variable.key_action = KEY_NONE;
+		break;
+	case KEY_START_24G:
+	case KEY_OPEN_24G:
+		g_variable.recon_count = 0;
+		if ( YC_cancel_reconnect())
+		{
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+			Delay1ms(10);
+			fast_connect_flag = 0;
+			if (m_24g_addr[0] == 0xff && m_24g_addr[1] == 0xff && m_24g_addr[2] == 0xff && m_24g_addr[3] == 0xff)
+			{
+				m_24g_addr[0] = 0x0f;
+				m_24g_addr[1] = 0x0f;
+				m_24g_addr[2] = 0x0f;
+				m_24g_addr[3] = 0x0f;
+				fast_connect_flag = 1;
+			}
+				
+			IPC_TxControlCmd(IPC_CMD_START_24G);
+			
+			g_variable.g24_currentState = CHANGE_TO_24G_CONNECTING;
+			g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_PAIRING_24G:
+		g_variable.recon_count = 0;
+		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+		{
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+			{
+				fast_connect_flag = 0;
+				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+				g_variable.g24_currentState = CHANGE_TO_24G_PAIRING;
+				g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+				g_variable.pairing_g24_timeout = BT_PAIRING_TIME_OUT_2MIN;
+				g_variable.pairing_timeout = 0;
+			}
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	default:
+		g_variable.key_action = KEY_NONE;
+		break;
+	}
+}
+
+
+
+void IPC_TxHidData(byte* dt, byte len)
+{
+	xbyte tx_hid_buff[10];
+	byte i=0;
+
+	for(i==0; i< len; i++)
+	{
+		tx_hid_buff[i] = dt[i];
+	}
+	
+	if(!YC_check_need_reconnected()) 
+		return;
+	if (g_variable.release_data)
+		return;
+
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+	{
+		IPC_TxBREDRHidData(tx_hid_buff,len);
+	}
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		if(tx_hid_buff[0] == HID_REPORTID_1)
+		{
+			tx_hid_buff[0] = 4;
+			if (tx_hid_buff[1] == 0 && tx_hid_buff[3] == 00 && tx_hid_buff[4] == 00 && tx_hid_buff[5] == 0)
+				repeat_send_24g = 0;
+			else
+				repeat_send_24g = 1;			
+		}
+		else if(tx_hid_buff[0] == HID_REPORTID_2)
+		{
+			tx_hid_buff[0] = 5;
+			if (tx_hid_buff[1] == 00 && tx_hid_buff[2] == 00)
+			{
+				repeat_send_24g = 0;
+			}
+			else
+			{
+				repeat_send_24g = 1;
+			}
+		}
+		else if(tx_hid_buff[0] == HID_REPORTID_3)
+		{
+			tx_hid_buff[0] = 7;
+		}
+		
+		if(tx_hid_buff[0] == 0x10)
+		{
+			tx_hid_buff[0] = 8;
+			if (tx_hid_buff[1] == 0 && tx_hid_buff[2] == 0 && tx_hid_buff[3] == 0 && tx_hid_buff[4] == 0 && tx_hid_buff[5] == 0
+			&& tx_hid_buff[6] == 0 && tx_hid_buff[7] == 0)
+				repeat_send_24g = 0;
+			else
+				repeat_send_24g = 1;			
+		}
+		if(tx_hid_buff[0] == 0x11)
+		{
+			tx_hid_buff[0] = 9;
+			if (tx_hid_buff[1] == 0 && tx_hid_buff[2] == 0 && tx_hid_buff[3] == 0 && tx_hid_buff[4] == 0 && tx_hid_buff[5] == 0
+			&& tx_hid_buff[6] == 0 && tx_hid_buff[7] == 0)
+				repeat_send_24g = 0;
+			else
+				repeat_send_24g = 1;
+		}
+		IPC_Tx24GData(tx_hid_buff,len);
+	}
+}
+
+
+
+
+void kb_set_multikey(word multikey_value)
+{
+	multikey[1] = multikey_value&0xFF;
+	multikey[2] = (multikey_value>>8)&0xFF;
+	SendReport2 = true;
+}
+
+void kb_set_systemkey(byte systemkey_value)
+{
+	if(mult_key_status != KEY_WAIT_RELEASE)
+	{
+		mult_key_status = KEY_SYSTEM_PRESS;
+		system_key_press = 1;
+		multikey[0] = HID_REPORTID_SYSTEM;
+		multikey[1] = systemkey_value;
+	}
+}
+
+
+void kb_send_combination_key(byte ctrl_value,byte key_value)
+{
+	xmemclear(hidBuff,9);
+	hidBuff[0] = HID_REPORTID_1;
+	hidBuff[1] |= ctrl_value;
+	hidBuff[3] = key_value; 
+	IPC_TxHidData(hidBuff, 9);
+}
+
+/*
+//touch data send
+void kb_set_mouse_data()
+{
+	multikey[0] = HID_REPORTID_3;
+	multikey[1] = g_variable.sensor_key;
+	multikey[2] = g_variable.sensor_x_l;
+	multikey[3] = g_variable.sensor_x_h;
+	multikey[4] = g_variable.sensor_y_l;
+	multikey[5] = g_variable.sensor_y_h;
+	multikey[6] = g_variable.sensor_wheel;
+	multikey[7] = g_variable.sensor_titl;
+	IPC_TxHidData(multikey, 8);
+	xmemclear(multikey,9);
+}
+*/
+
+
+void kb_bt_pincode_enter()
+{
+	tKSEVENT *pEvt = NULL;
+	pEvt = KS_GetCurrentEvt();
+	if (pEvt == NULL)
+		return;
+	if (pEvt->ksPool[0] != 0) {
+		if (pEvt->ksPool[0] == HID_KEY_ENTER ||pEvt->ksPool[0] == HID_KEY_KP_ENTER) {
+			if (	g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
+			{
+				IPC_TxControlCmd(IPC_CMD_LE_SET_PINCODE);
+				g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_PINCODE_OK;
+				le_pin_code_len = 0;
+			}
+
+			if (	g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+			{	
+				m_link_key_exists = 1;
+				IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+				g_variable.br_currentSubState = CHANGE_TO_BR_SUB_PINCODE_OK;
+			}
+		}
+		else
+		{
+			if (pEvt->ksPool[0] <=HID_KEY_KP_0 && pEvt->ksPool[0] >= HID_KEY_KP_1)
+			{
+				if (pEvt->ksPool[0] == HID_KEY_KP_0) 
+				{
+					ipcPin[ipcPinlen ++] = 0x30;	//ascii code: 0     x030
+					le_pin_code = le_pin_code*10;
+					le_pin_code_len++;
+				}
+				else 
+				{
+					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - 0x28;  // ascii :0x31-0x39
+					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - 0x58);
+					le_pin_code_len++;
+				}
+			}
+			else if (pEvt->ksPool[0] <=HID_KEY_0 && pEvt->ksPool[0] >= HID_KEY_1)
+			{
+				if (pEvt->ksPool[0] == HID_KEY_0) 
+				{
+					ipcPin[ipcPinlen ++] = 0x30;	//0
+					le_pin_code = le_pin_code*10;
+					le_pin_code_len++;
+				}
+				else 
+				{
+					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - (HID_KEY_1 -1) + 0x30;
+					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - (HID_KEY_1 -1));
+					le_pin_code_len++;
+				}
+			}
+			else if(pEvt->ksPool[0] == HID_KEY_BACKSPACE) 
+			{
+				if(ipcPinlen)
+					ipcPin[ipcPinlen --] = 0;
+				if(le_pin_code_len)
+				{
+					le_pin_code = le_pin_code/10;
+					le_pin_code_len--;
+				}
+			}
+			else
+			{
+				kb_motion_keyscan(pEvt);
+			}
+		}
+	}
+}
+
+
+
+void kb_24g_get_led_status()		//get RF Ack for get numlock/capslock status
+{
+	if((m_24g_led_flag)&& (repeat_send_24g == 0))
+	{
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+		{
+			if(delayChgInvTimer_last != delayChgInvTimer)
+			{
+				xmemclear(hidBuff,9);
+				mult_key_status = 0;
+				hidBuff[0] = HID_REPORTID_1;		// standard key send
+				hidBuff[2] = m_24g_led_flag;
+				IPC_TxHidData(hidBuff, 9);
+			}
+			delayChgInvTimer_last = delayChgInvTimer;
+		}	
+	}
+}
+
+
+static void kb_motion()
+{
+	byte temp0 = 0;
+	byte temp1 = 0;
+	byte temp2 = 0;
+	//byte temp3 = 0;
+
+	tKSEVENT *pEvt = NULL;
+
+	#ifdef BackLight_ENABLE
+	if(!g_variable.Backlight_mode_off_flag)
+	{
+		Backlight_mode5_sniff();
+		Backlight_mode7_1();
+	}
+	#endif
+	
+	if (!IPC_IsTxBuffEmpty()){
+		#ifdef BackLight_ENABLE
+		if(g_variable.Backlight_mode_flag == 4)
+		{
+			delayus(200);
+			//delayus(200);
+		}
+		#endif
+		return;
+	}
+	
+	pEvt = KS_GetCurrentEvt();
+
+	if (pEvt == NULL)
+	{  
+		m_power_on_flag = 1;
+		kb_24g_get_led_status();
+		return;
+	}
+
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+	{
+		kscurrmult = 0x3;
+	}
+	delayChgInvTimer = 10;
+
+	if(g_variable.battery_status == BAT_STATUS_LOW)
+	{
+		m_24g_enter_hibernate[0]	= 0x00;
+		m_24g_enter_hibernate[1]	= 0x48;
+		m_24g_enter_hibernate[2]	= 0x12;		// 100ms
+		m_24g_enter_hibernate[3]	= 0x00;
+	}
+	else
+	{
+		m_24g_enter_hibernate[0]	= 0x00;
+		m_24g_enter_hibernate[1]	= 0x48;
+		m_24g_enter_hibernate[2]    = 0x5d;		// 510ms
+		m_24g_enter_hibernate[3]	= 0x00;
+	}
+
+	m_power_on_flag = 1;
+	
+	#ifdef PC_SLEEP_STATUS_GET
+	if(m_pc_sleep_flag)		// wake from pc sleep,get led status
+	{
+		m_pc_sleep_flag = 0;
+		m_24g_led_flag = KB_24G_LED_ACK_TYPE;	
+	}
+	#endif
+
+	// if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED) 
+	// {
+	// 	//24G娑?閹稿鏁崬銈夊晪閸ョ偠绻,get娑撯偓濞嗩搲APS缁涘ED閻樿埖鈧?
+	// 	//if((g_variable.In_SLEEP_FLAG)||(g_variable.sleepTimer))
+	// 	if(g_variable.In_SLEEP_FLAG)
+	// 	{
+	// 		//g_variable.In_SLEEP_FLAG = 0;
+	// 		m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+	// 		delayChgInvTimer = 10;
+	// 	}
+	// }
+
+	// g_variable.sleepTimer = 0;
+	// g_variable.In_SLEEP_FLAG = 0;
+
+	temp0 = pEvt->ksPool[0];
+	temp1 = pEvt->ksPool[1];
+	temp2 = pEvt->standardSel;
+	//temp3 = pEvt->ksPool[2];
+
+	if(temp0 == 0x7f){
+		fn_tx_flag = 1;
+	}
+	else {
+		fn_tx_flag = 0;
+	}
+	
+	if(g_variable.battery_status != BAT_STATUS_SHUT_DOWN)
+	{
+		#ifdef OS_Switch_Enable
+		if (YC_check_is_connected())
+		{
+		    if((temp0 == HID_KEY_FN)&&((temp1 == MODE_system_key1)||(temp1 == MODE_system_key2)||(temp1 == MODE_system_key3)))
+		    {
+		        if(OS_Switch_led_Enable){
+					g_variable.delay_enter_lpm_timer = 7;
+					g_variable.OS_Switch_led_timer = 6;
+		        }
+					
+				if(temp1 == MODE_system_key1)
+				{   
+					g_variable.system_mode = MODE_system_mode1;
+				}
+				else if(temp1 == MODE_system_key2)
+				{
+					g_variable.system_mode = MODE_system_mode2;
+				}
+				else if(temp1 == MODE_system_key3)
+				{
+					g_variable.system_mode = MODE_system_mode3;
+				}
+
+				//IIC_SPEED_INIT();
+					
+				if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+				{
+					IIC_WriteBlock(EEPROM_RECON_INFO_G24_SYTEM_MODE,1,(byte *)&g_variable.system_mode);
+				}
+				else if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+				{
+					IIC_WriteBlock(EEPROM_RECON_INFO_BASE+31*g_variable.current_device_num-2,1,(byte *)&g_variable.system_mode);
+				}
+				goto NextLoop;
+		   	}
+			
+			/*if((temp0 == HID_KEY_FN)&&(temp1 == 0x4c))
+			{
+				g_variable.Fn_key_lock_flag ^= 1;
+
+				//IIC_SPEED_INIT();
+				if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+				{
+					IIC_WriteBlock(EEPROM_G24_Fn_key_lock_flag ,1 ,(byte *)&g_variable.Fn_key_lock_flag);
+				}
+				else if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+				{
+					IIC_WriteBlock(EEPROM_RECON_INFO_BASE+31*g_variable.current_device_num-1,1,(byte *)&g_variable.Fn_key_lock_flag);
+				}
+				goto NextLoop;
+			}*/
+			
+		}
+		#endif
+
+		if(temp0 == HID_KEY_ESC)
+		{
+			if (temp1 == HID_KEY_Q)  
+			{
+				g_variable.delay_enter_lpm_timer = 10;
+			    g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+						
+				if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+				{
+					g_variable.button_flag |= KEY_FLAG_FN_24G_DEVICE_BUTTON;
+					if( (g_variable.current_device_num != 0) && (g_variable.current_device_num != 0xfe))
+					{
+						m_24g_paring_addr[0] = 0x20;
+						m_24g_paring_addr[1] = 0x15;
+						m_24g_paring_addr[2] = 0x10;
+						m_24g_paring_addr[3] = 0x05;
+								
+						g_variable.pairing_g24_timeout = G24_PAIRING_TIME_OUT_20S;
+						YC_disconnect_all_link();
+						Delay1ms(10);
+						//g_variable.reconnect_g24_flag = 0;
+						YC_key_action_handle(KEY_PAIRING_24G);
+					}
+				}
+				else
+				{
+					g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+				}
+									
+				goto NextLoop;
+			}
+
+			else
+			{
+				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+				g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+			}
+		}
+		else
+		{
+			g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+		}
+
+		if(temp0 == HID_KEY_FN)
+		{
+			if(temp1 == HID_KEY_T){
+				kb_set_multikey(0x0070);
+				//goto NextLoop;
+			}
+			else if(temp1 == HID_KEY_Y){
+				kb_set_multikey(0x006F);
+				//goto NextLoop;
+			}
+			else if(temp1 == HID_KEY_U){
+				kb_set_multikey(0x0183);
+				//goto NextLoop;
+			}
+			else if(temp1 == HID_KEY_I){
+				kb_set_multikey(0x00ea);
+				//goto NextLoop;
+			}
+			else if(temp1 == HID_KEY_O){
+				kb_set_multikey(0x00e9);
+				//goto NextLoop;
+			}
+			else if(temp1 == HID_KEY_P){
+				kb_set_multikey(0x00e2);
+				//goto NextLoop;
+			}
+		}
+		else
+		{
+			g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+		}
+
+	    //24G 鐎靛湱鐖
+	    /*
+		#ifdef COMBO_CONNECT_KEY_ENABLE_FLAG
+		if((temp0 == COMBO_CONNECT_KEY1_KEY_CODE)&&(temp1 == COMBO_CONNECT_KEY2_KEY_CODE))
+		{
+		    g_variable.delay_enter_lpm_timer = 10;
+
+			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+			{
+				g_variable.button1_flag |= KEY_FLAG_24G_DEVICE_BUTTON;
+				goto NextLoop;
+			}
+			else
+			{
+				g_variable.button1_flag &= ~KEY_FLAG_24G_DEVICE_BUTTON;
+			}
+		}
+		else
+		{
+			g_variable.button1_flag &= ~KEY_FLAG_24G_DEVICE_BUTTON;
+		}
+		#endif
+		*/
+	/*	if((temp0 == HID_KEY_ESCAPE)&&(temp1 == HID_KEY_Q))
+		{
+			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+			{   
+				m_24g_paring_addr[0] = 0x20;
+				m_24g_paring_addr[1] = 0x15;
+				m_24g_paring_addr[2] = 0x10;
+				m_24g_paring_addr[3] = 0x05;
+				
+				g_variable.pairing_g24_timeout = G24_PAIRING_TIME_OUT_20S;
+				YC_disconnect_all_link();
+				Delay1ms(10);
+				g_variable.reconnect_g24_flag = 0;
+				YC_key_action_handle(KEY_PAIRING_24G);
+			}
+		}*/
+
+		#ifdef BackLight_ENABLE
+		if(!g_variable.Backlight_mode_off_flag){
+			Backlight_mode3_1();
+		}
+				
+		if(g_variable.Backlight_sleep_flag){
+			GPIO_SetOutput(RGB_POWER_ONOFF,1);
+			g_variable.Backlight_sleep_flag = 0;
+			Backlight_mode_storage();
+		}
+		else {
+			//濡崇础閸掑洦宕
+		    if((temp0 == 0x7f)&&(temp1== HID_KEY_0)){\
+				
+				GPIO_SetOutput(RGB_POWER_ONOFF,1);
+				if(g_variable.Backlight_mode_flag == 0){
+					g_variable.Backlight_mode_flag = 1;
+				}
+				else if(g_variable.Backlight_mode_flag == 1){
+					g_variable.Backlight_mode_flag = 4;
+				}
+				else if(g_variable.Backlight_mode_flag == 4){
+					g_variable.Backlight_mode_flag = 2;
+				}
+				else if(g_variable.Backlight_mode_flag == 2){
+					g_variable.Backlight_mode_flag = 3;
+				}
+				else if(g_variable.Backlight_mode_flag == 3){
+					g_variable.Backlight_mode_flag = 6;
+				}
+				/*else if(g_variable.Backlight_mode_flag == 5){
+					g_variable.Backlight_mode_flag = 6;
+				}*/
+				else if(g_variable.Backlight_mode_flag == 6){
+					g_variable.Backlight_mode_flag = 9;
+				}
+				/*else if(g_variable.Backlight_mode_flag == 7){
+					g_variable.Backlight_mode_flag = 9;
+				}*/
+				/*else if(g_variable.Backlight_mode_flag == 8){
+					g_variable.Backlight_mode_flag = 9;
+				}*/
+				else if(g_variable.Backlight_mode_flag == 9){
+					g_variable.Backlight_mode_flag = 0;
+				}
+				Backlight_mode_switch();
+				goto NextLoop;
+			}
+
+			//閸掑洦宕叉０婊嗗
+			/*if ((temp0 == 0x7f)&&(temp1== HID_KEY_PAGE_UP)){
+				g_variable.Backlight_mode_flag = 1;
+				if(g_variable.Backlight_mode_flag == 1){
+					/*
+					if(g_variable.Backlight_color_flag == 0)		
+						g_variable.Backlight_color_flag = 1;       //缁?
+					else if(g_variable.Backlight_color_flag == 1)  
+						g_variable.Backlight_color_flag = 2;       //閽?
+					else if(g_variable.Backlight_color_flag == 2)
+						g_variable.Backlight_color_flag = 3;       //姒?
+					else if(g_variable.Backlight_color_flag == 3)
+						g_variable.Backlight_color_flag = 4;		//闂?
+					else if(g_variable.Backlight_color_flag == 4)
+						g_variable.Backlight_color_flag = 5;		//缁?
+					else if(g_variable.Backlight_color_flag == 5)
+						g_variable.Backlight_color_flag = 6;		//閻?
+					else if(g_variable.Backlight_color_flag == 6)
+						g_variable.Backlight_color_flag = 0;      //缂?
+					*/
+					/*g_variable.Backlight_color_flag++;
+					if(g_variable.Backlight_color_flag >= 7)
+						g_variable.Backlight_color_flag = 0;
+					Backlight_mode1_color_switch();
+				}
+				goto NextLoop;
+			}   */
+
+			//閼冲苯鍘滄禍顔煎閸旂姴鍣
+			if(g_variable.Backlight_mode_flag == 1)
+			{
+				if((temp0 == 0x7f)&&((temp1 == HID_KEY_MINUS) ||(temp1 == HID_KEY_EQUAL)))
+				{
+					
+					GPIO_SetOutput(RGB_POWER_ONOFF,1);
+					if(temp1 == HID_KEY_EQUAL){
+						if(g_variable.Backlight_lightness_flag == 0){
+							g_variable.Backlight_lightness_flag = 85;
+						}
+						else if(g_variable.Backlight_lightness_flag == 85){
+							g_variable.Backlight_lightness_flag = 170;
+						}
+						else if(g_variable.Backlight_lightness_flag == 170){
+							g_variable.Backlight_lightness_flag = 255;
+						}
+					}
+					else if(temp1 == HID_KEY_MINUS){
+						
+						if(g_variable.Backlight_lightness_flag == 255){
+							g_variable.Backlight_lightness_flag = 170;
+						}
+						else if(g_variable.Backlight_lightness_flag == 170){
+							g_variable.Backlight_lightness_flag = 85;
+						}
+						else if(g_variable.Backlight_lightness_flag == 85){
+							g_variable.Backlight_lightness_flag = 0;
+							
+						}
+					}
+					Backlight_mode1_lightness_switch();
+					goto NextLoop;
+				}
+			}
+		}
+		#endif
+	}
+	kb_motion_keyscan(pEvt);
+	if (!fast_connect_flag)		
+		kb_keyscan_send();
+NextLoop:
+	;
+}
+
+void kb_keyscan_send()
+{
+	if(g_variable.bit_key1_flag)
+	{
+		g_variable.bit_key1_flag = 0;
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+			kb_hidBuff1[0] = 0x10;
+		else
+			kb_hidBuff1[0] = 0x05;
+		kb_hidBuff1[1] = g_variable.bit_key1[0];
+		kb_hidBuff1[2] = g_variable.bit_key1[1];
+		kb_hidBuff1[3] = g_variable.bit_key1[2];
+		kb_hidBuff1[4] = g_variable.bit_key1[3];
+		kb_hidBuff1[5] = g_variable.bit_key1[4];
+		kb_hidBuff1[6] = g_variable.bit_key1[5];
+		kb_hidBuff1[7] = g_variable.bit_key1[6];
+		IPC_TxHidData(kb_hidBuff1, 8);
+	}
+	
+	if(g_variable.bit_key2_flag)
+	{
+		g_variable.bit_key2_flag = 0;
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+			kb_hidBuff2[0] = 0x11;
+		else
+			kb_hidBuff2[0] = 0x06;
+		kb_hidBuff2[1] = g_variable.bit_key2[0];
+		kb_hidBuff2[2] = g_variable.bit_key2[1];
+		kb_hidBuff2[3] = g_variable.bit_key2[2];
+		kb_hidBuff2[4] = g_variable.bit_key2[3];
+		kb_hidBuff2[5] = g_variable.bit_key2[4];
+		kb_hidBuff2[6] = g_variable.bit_key2[5];
+		kb_hidBuff2[7] = g_variable.bit_key2[6];
+		IPC_TxHidData(kb_hidBuff2, 8);
+	}
+}
+
+void kb_need_keyscan()
+{
+	kb_motion();
+	//  if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+	// 	|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+	// {
+	// 	kb_bt_pincode_enter();
+	// }
+	// else
+	// {
+	// 	/*
+	// 	  if ((GPIO_GetInputStatus(INT_GPIO) == 0) )//&& (tperr == 0))
+	// 	  {
+	// 		g_variable.mouse_data_send_flag = 0;
+	// 		g_variable.delay_enter_lpm_timer = 10;
+		  	
+	// 	 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+	// 	 	{
+	// 			if(m_customize_timer != g_variable.send_timer)
+	// 			{
+	// 				g_variable.send_timer = m_customize_timer;
+	// 			}
+	// 			else 
+	// 				return;
+	// 		}
+	// 		Touch_data_get();
+	// 		kb_set_mouse_data();
+	// 	}
+	// 	else
+	// 	*/
+	// 	{
+	// 	//	g_variable.sensor_x_l = 0;
+	// 	//	g_variable.sensor_x_h = 0;
+	// 	//	g_variable.sensor_y_l = 0;
+	// 	//	g_variable.sensor_y_h = 0;
+	// 	//	g_variable.sensor_wheel = 0;
+	// 	//	g_variable.sensor_titl = 0;
+			
+	// 	if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+	// 	||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+	// 	|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+	// 	)
+	// 		kb_motion();
+	// 	else
+	// 	{
+	// 		if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+	// 		{
+	// 			kb_send_combination_key(g_variable.key_combination_ctrl,0);
+	// 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+	// 		}
+	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+	// 		{	
+	// 			g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+	// 		}
+	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+	// 		{
+	// 			g_variable.key_combination_keyvalue = 0;
+	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+	// 			g_variable.key_combination_ctrl = 0;
+	// 			if(!g_variable.one_key_press_wait_release_timer)
+	// 				g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+	// 			else
+	// 				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+	// 		}
+	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
+	// 		{
+	// 			g_variable.key_combination_keyvalue = 0;
+	// 			g_variable.key_combination_ctrl = 0;
+	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+	// 			g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+	// 		}
+	// 	}
+	// 	}
+	// }
+}
+
+
+
+void kb_motion_keyscan(tKSEVENT *pEvt)
+{
+	
+	byte temp = 0;
+	byte temp1 = 0;
+	byte templast = 0;
+
+	byte i=0;
+	byte j = 0;
+	byte k = 0;
+	byte cur_hidbuff[8];
+
+	xmemclear(hidBuff,HID_REPORTLEN_1);
+	xmemclear(multikey,HID_REPORTLEN_2);
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+		{
+			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
+			|| (pEvt->ksPool[i] == HID_KEY_SCROLL_LOCK))
+			{
+				m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+			}
+			if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
+			{
+				fn_flag = 1;
+			}
+
+			if(pEvt->standardSel)
+				control_key_flag = 1;
+		}
+	}
+
+	if (1) {
+		xmemcpy(&cur_hidbuff[2], pEvt->ksPool, 6);
+		templast = fn_flag;
+		temp = cur_hidbuff[2];
+
+		if ((templast == 0x7f) && (temp != 0x7f) && (temp != 0)) {
+			cur_hidbuff[7] = cur_hidbuff[6];
+			cur_hidbuff[6] = cur_hidbuff[5];
+			cur_hidbuff[5] = cur_hidbuff[4];
+			cur_hidbuff[4] = cur_hidbuff[3];
+			cur_hidbuff[3] = cur_hidbuff[2];
+			cur_hidbuff[2] = 0x7f;
+		}
+
+		for (i = 3; i < 8; i++) {
+			temp = cur_hidbuff[i];
+
+			if (temp == 0x7f) {
+				for (j = i; j < 7; j++) {
+					cur_hidbuff[j] = cur_hidbuff[j + 1];
+				}
+
+				cur_hidbuff[7] = 0;
+				break;
+			}
+		}
+	}
+
+	cur_hidbuff[0] = pEvt->standardSel;
+	fn_flag = cur_hidbuff[2];
+
+	hidBuff[1] = cur_hidbuff[0];
+
+	if (((cur_hidbuff[2] == 0)||((cur_hidbuff[2] == 0x7f)&&(cur_hidbuff[3] == 0))) && (cur_hidbuff[0] == 0)) {
+
+		if (SendReport1) {
+			hidBuff[0] = HID_REPORTID_1;
+			IPC_TxHidData(hidBuff, HID_REPORTLEN_1);
+			SendReport1 = false;
+			hidBuff[0] = 0;
+		}
+        
+		if (SendReport2) {
+			multikey[0] = HID_REPORTID_2;
+			IPC_TxHidData(multikey, HID_REPORTLEN_2);
+			SendReport2 = false;
+			multikey[0] = 0;
+		}
+	}
+
+	if (cur_hidbuff[2] == 0x7f) {
+		k = 3;
+	}
+	else {
+		k = 2;
+	}
+			
+	for (i = k;i < 8;i++)
+	{    
+		temp = cur_hidbuff[i];
+
+		if ((temp == 0) && (cur_hidbuff[0] == 0)) {
+			break;
+		}
+		if(temp == HID_MULTIKEY_AC_HOME)
+		{
+			kb_set_multikey(0x0223);
+		}
+		else if(temp == HID_MULTIKEY_AC_SEARCH)
+		{
+			kb_set_multikey(0x0221);
+		}
+		else if(temp == HID_MULTIKEY_MAIL)
+		{
+			kb_set_multikey(0x018a);
+		}
+		else if(temp == HID_MULTIKEY_CALCULATOR)
+		{
+			kb_set_multikey(0x0192);
+		}
+		#ifdef FN_KEY_ENABLE
+		//if(1) 
+		//{
+			//if (((temp >= HID_KEY_F1)&&(temp <= HID_KEY_F12))||((temp >= HID_KEY_RIGHT_ARROW)&&(temp <= HID_KEY_UP_ARROW))
+			//	||(temp == 0x49))
+			//{
+					if(temp == HID_KEY_ESC && k == 3)
+					{			
+						if(fn_lock_flag)
+						{
+							fn_lock_flag = 0;
+							g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+						}
+						else
+						{
+							fn_lock_flag = 1;	
+							g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+						}
+						temp = HID_KEY_NULL;
+					}
+
+					if ( (k == 2 && !fn_lock_flag) || (k == 3 && fn_lock_flag == 1))
+					{
+					    if(temp == HID_KEY_F1){
+							kb_set_multikey(0x0070);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F2){
+							kb_set_multikey(0x006F);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F3){
+							hidBuff[1] = 0x01;
+							temp = HID_KEY_A;	
+						}
+					    else if(temp == HID_KEY_F4){
+							hidBuff[1] = 0x01;
+							temp = HID_KEY_C;	
+						}
+						else if(temp == HID_KEY_F5){
+							hidBuff[1] = 0x01;
+							temp = HID_KEY_V;	
+						}
+						else if(temp == HID_KEY_F6){
+							hidBuff[1] = 0x01;
+							temp = HID_KEY_X;	
+						}
+						else if(temp == HID_KEY_F7){
+							kb_set_multikey(0x00b6);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F8){
+							kb_set_multikey(0x00cd);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F9){
+							kb_set_multikey(0x00b5);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F10){
+							kb_set_multikey(0x00e2);
+							//goto NextLoop;
+						}
+						else if(temp == HID_KEY_F11){
+
+							kb_set_multikey(0x00ea);						
+						}
+						else if(temp == HID_KEY_F12){
+							kb_set_multikey(0x00e9);
+							//goto NextLoop;
+						}
+						// else if(temp == HID_KEY_ESC)
+						// {			
+						// 	if(fn_lock_flag)
+						// 	{
+						// 		fn_lock_flag = 0;
+						// 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+						// 	}
+						// 	else
+						// 	{
+						// 		fn_lock_flag = 1;	
+						// 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+						// 	}
+						// 	temp = HID_KEY_NULL;
+						// }
+					}
+				//}
+			//}
+						
+		if (SendReport2)
+				goto NextLoop;
+		#endif
+        
+		if (k == 3) {
+			if (temp != 0)
+				hidBuff[i] = temp;
+		}
+		else {
+			if (temp != 0)
+				hidBuff[i + 1] = temp;
+		}
+		SendReport1 = true;
+		
+#ifdef FN_KEY_ENABLE
+NextLoop:
+	;
+#endif
+	}
+	
+	if (SendReport1) {
+		hidBuff[0] = HID_REPORTID_1;
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+			hidBuff[2] = m_24g_led_flag;
+		else
+			hidBuff[2] = 0;
+		IPC_TxHidData(hidBuff, HID_REPORTLEN_1);
+	}
+
+	if (SendReport2) {
+		multikey[0] = HID_REPORTID_2;
+		IPC_TxHidData(multikey, HID_REPORTLEN_2);
+	}
+
+	return;
+}
+
+
+
+
+void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
+{
+	g_variable.key_combination_ctrl = special_key;	
+	g_variable.key_combination_keyvalue = standrad_key;
+
+	if(press_state & 1)
+	{
+		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
+			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+		else	
+			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+	}
+	else
+	{
+		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+	}
+}
+
+
+byte key_fn_function(byte state ,byte key_value)
+{
+	byte temp = 0;
+
+	if(state & 1)
+		g_variable.one_key_press_wait_release_timer = 0;
+
+	temp = key_value;	
+
+	// if(g_variable.system_mode == OSMODE_IOS)
+	// {
+	// 	if(key_value == HID_KEY_RIGHT_ALT)
+	// 		temp = HID_KEY_RIGHT_GUI;
+	// 	else if(key_value == HID_KEY_RIGHT_CTL)
+	// 		temp = HID_KEY_RIGHT_ALT;	
+	// 	else if(key_value == HID_KEY_LEFT_GUI)
+	// 		temp = HID_KEY_LEFT_ALT;
+	// 	else if(key_value == HID_KEY_LEFT_ALT)
+	// 		temp = HID_KEY_LEFT_GUI;	
+	// }	
+	
+	if(fn_flag == 1)			// Fn lock
+         {
+
+		if((key_value == HID_KEY_A) || (key_value == HID_KEY_S) )
+		{
+			if(key_value == HID_KEY_A)
+			{
+				g_variable.system_mode = OSMODE_IOS;
+			}
+			else if(key_value == HID_KEY_S)
+			{
+				g_variable.system_mode = OSMODE_WINDOWS;
+
+			}
+	                  g_variable.systemflag = 1;
+			temp = HID_KEY_NULL;
+			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		}
+		else if(key_value == HID_KEY_ESC)
+		{
+			if(state & 1)
+			{						
+				if(fn_lock_flag)
+				{
+					fn_lock_flag = 0;
+				}
+				else
+					fn_lock_flag = 1;
+					
+					g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+				
+				
+			}
+			temp = HID_KEY_NULL;
+		}
+                /*
+                  if(key_value == HID_KEY_UP_ARROW)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_UP_ARROW);	
+		       }
+		       else
+		       {
+		             kb_combination_key_press(state,KEY_NONE,HID_KEY_PAGE_UP);
+		       }
+		}
+		if(key_value == HID_KEY_DOWN_ARROW)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_DOWN_ARROW);	
+		       }
+		       else
+		       {
+		             kb_combination_key_press(state,KEY_NONE,HID_KEY_PAGE_DOWN);
+		       }
+		}	
+		if(key_value == HID_KEY_LEFT_ARROW)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_LEFT_ARROW);	
+		       }
+		       else
+		       {
+		             kb_combination_key_press(state,KEY_NONE,HID_KEY_HOME);
+		       }
+		}
+		if(key_value == HID_KEY_RIGHT_ARROW)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_RIGHT_ARROW);	
+		       }
+		       else
+		       {
+		             kb_combination_key_press(state,KEY_NONE,HID_KEY_END);
+		       }
+		}
+                   */
+			
+		
+	}
+     
+
+	
+    if((fn_flag == 1)&&(fast_connect_flag == 0))
+	{	
+		
+		switch (key_value)
+		{ 
+			case HID_KEY_ESC:
+				temp = HID_KEY_TILDE;
+				break;		
+			case HID_KEY_F1:
+				temp = HID_MULTIKEY_LIGHT_DOWN;
+				break;
+			case HID_KEY_F2:
+				temp = HID_MULTIKEY_LIGHT_UP;
+				break;
+			case HID_KEY_F3:
+				temp = HID_KEY_F3;
+				break;
+			case HID_KEY_F4:
+				temp = HID_KEY_F4;
+				break;
+			case HID_KEY_F5:
+				temp = HID_KEY_F5;
+				break;
+			case HID_KEY_F6:
+				temp = HID_KEY_F6;
+				break;
+			case HID_KEY_F7:
+				temp = HID_MULTIKEY_PRE_TRACK;
+				break;
+			case HID_KEY_F8:
+				temp = HID_MULTIKEY_PALY;
+				break;
+			case HID_KEY_F9:
+				temp = HID_MULTIKEY_NEXT_TRACK;
+				break;
+			case HID_KEY_F10:
+				temp = HID_MULTIKEY_MUTE;
+				break;
+			case HID_KEY_F11:
+				temp = HID_MULTIKEY_VOL_DOWN;
+				break;
+			case HID_KEY_F12:
+				temp = HID_MULTIKEY_VOL_UP;
+				break;
+			default :
+				break;
+		}
+	}
+	else
+	{
+                  if(key_value == HID_KEY_HOME)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_LEFT_ARROW);	
+		       }
+		}
+		if(key_value == HID_KEY_PAGE_UP)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_UP_ARROW);	
+		       }
+		}	
+		if(key_value == HID_KEY_PAGE_DOWN)
+		{
+		       if(g_variable.system_mode == OSMODE_IOS)
+		       {
+		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_DOWN_ARROW);	
+		       }
+		}	       
+	}
+	return temp;
+}
+
+
+
+void kb_multikey_setup(tKSEVENT *pEvt)
+{
+	byte i = 0;
+	
+	for (i = 0;i < 6;i++)
+	{		
+		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+		{
+			
+			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+			{
+				kb_set_multikey(0x0183); 
+			}
+			else
+			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+			{ 
+				kb_set_multikey(0x00cd);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+			{
+				kb_set_multikey(0x00b7);
+			}	
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+			{
+				kb_set_multikey(0x00b6);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+			{
+				kb_set_multikey(0x00b5);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+			{
+				kb_set_multikey(0x00ea);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+			{
+				kb_set_multikey(0x00e9);
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+			{
+				kb_set_multikey(0x00e2);
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+			{
+				kb_set_multikey(0x0194);
+			}	
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+			{
+				kb_set_multikey(0x018a);//mail
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+			{
+				kb_set_multikey(0x0192);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+			{
+				kb_set_multikey(0x022a);//www Favorites
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+			{
+				kb_set_multikey(0x0225);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+			{
+				kb_set_multikey(0x0226);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+			{
+				kb_set_multikey(0x0224);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+			{
+				kb_set_multikey(0x0227);
+			}	
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+			{
+				kb_set_multikey(0x0221);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+			{
+				kb_set_multikey(0x0223);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+			{
+				kb_set_multikey(0x0070);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+			{
+				kb_set_multikey(0x006f);
+			}	
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_IOS_SOFT_KB)  //IOS VIR KB
+		      	{
+		        	kb_set_multikey(0x00b8);
+		      	}
+		      else if (pEvt->ksPool[i] ==  HID_MULTIKEY_OS_LOCK)
+		      	{
+		        	kb_set_multikey(0x0030);
+		      	}	
+		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS)
+		      	{
+		        	kb_set_multikey(0x0306);
+		      	}
+		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SOFT_KB)
+		      	{
+		        	kb_set_multikey(0x0307);
+		      	}
+		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_POWER_DOWN)
+		      	{
+		        	kb_set_systemkey(0x01);
+		      	}
+		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_SLEEP)
+		      	{
+		        	kb_set_systemkey(0x02);
+		      	}
+		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_WAKE_UP)
+		      	{
+		        	kb_set_systemkey(0x04);
+		      	}
+			
+			if(mult_key_status == KEY_WAIT_RELEASE)
+			{
+				mult_key_value = pEvt->ksPool[i];
+				pEvt->ksPool[i] = 0;
+			}
+		}
+	}
+}
+
Index: kbhid.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/kbhid.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/kbhid.h	(working copy)
@@ -0,0 +1,300 @@
+#ifndef _KB_KEY_HID_
+#define _KB_KEY_HID_
+
+
+    /// KB USB usages
+enum UsbUsage {
+        HID_KEY_A 	= 0x04,
+        HID_KEY_B 	= 0x05,
+        HID_KEY_C 	= 0x06,
+        HID_KEY_D 	= 0x07,
+        HID_KEY_E 	= 0x08,
+        HID_KEY_F 	= 0x09,
+        HID_KEY_G 	= 0x0a,
+        HID_KEY_H 	= 0x0b,
+        HID_KEY_I  	= 0x0c,
+        HID_KEY_J 	= 0x0d,
+        HID_KEY_K 	= 0x0e,
+        HID_KEY_L 	= 0x0f,
+        HID_KEY_M 	= 0x10,
+        HID_KEY_N 	= 0x11,
+        HID_KEY_O	= 0x12,
+        HID_KEY_P	= 0x13,
+        HID_KEY_Q	= 0x14,
+        HID_KEY_R	= 0x15,
+        HID_KEY_S	= 0x16,
+        HID_KEY_T	= 0x17,
+        HID_KEY_U	= 0x18,
+        HID_KEY_V	= 0x19,
+        HID_KEY_W 	= 0x1a,
+        HID_KEY_X	= 0x1b,
+        HID_KEY_Y	= 0x1c,
+        HID_KEY_Z	= 0x1d,
+    
+        HID_KEY_1	= 0x1e,
+        HID_KEY_2	= 0x1f,
+        HID_KEY_3	= 0x20,
+        HID_KEY_4	= 0x21,
+        HID_KEY_5	= 0x22,
+        HID_KEY_6	= 0x23,
+        HID_KEY_7	= 0x24,
+        HID_KEY_8	= 0x25,
+        HID_KEY_9	= 0x26,
+        HID_KEY_0	= 0x27,
+    
+        HID_KEY_ENTER 				= 0x28,
+        HID_KEY_ESC				= 0x29,
+        HID_KEY_BACKSPACE		= 0x2a,
+        HID_KEY_TAB				= 0x2b,
+        HID_KEY_SPACE 				= 0x2c,
+        HID_KEY_MINUS				= 0x2d,		// -_
+        HID_KEY_EQUAL				= 0x2e,		// =+
+        HID_KEY_LEFT_BRACKET 		= 0x2f,		// [{
+        HID_KEY_RIGHT_BRACKET 	= 0x30,		// ]}
+        HID_KEY_BACK_SLASH 		= 0x31,		// \|
+    
+        HID_KEY_K42				= 0x32,
+        HID_KEY_SEMICOLON			= 0x33,		// ;:
+        HID_KEY_QUOTE				= 0x34,		// ' "
+        HID_KEY_TILDE				= 0x35,		// `~
+        HID_KEY_LESS_THAN			= 0x36,		// ,<
+        HID_KEY_GREAT_THAN		= 0x37,		// .>
+        HID_KEY_SLASH				= 0x38,		// /?
+        HID_KEY_CAPS_LOCK			= 0x39,
+
+        HID_KEY_F1		= 0x3a,
+        HID_KEY_F2		= 0x3b,
+        HID_KEY_F3		= 0x3c,
+        HID_KEY_F4		= 0x3d,
+        HID_KEY_F5		= 0x3e,
+        HID_KEY_F6		= 0x3f,
+        HID_KEY_F7		= 0x40,
+        HID_KEY_F8		= 0x41,
+        HID_KEY_F9		= 0x42,
+        HID_KEY_F10	= 0x43,
+        HID_KEY_F11	= 0x44,
+        HID_KEY_F12	= 0x45,
+    
+        HID_KEY_PRINT_SCREEN	= 0x46,
+        HID_KEY_SCROLL_LOCK	= 0x47,
+        HID_KEY_PAUSE			= 0x48,
+        HID_KEY_INSERT			= 0x49,
+        HID_KEY_HOME			= 0x4a,
+        HID_KEY_PAGE_UP		= 0x4b,
+        HID_KEY_DELETE		= 0x4c,
+        HID_KEY_END			= 0x4d,
+        HID_KEY_PAGE_DOWN	= 0x4e,
+        
+        HID_KEY_RIGHT_ARROW	= 0x4f,
+        HID_KEY_LEFT_ARROW	= 0x50,
+        HID_KEY_DOWN_ARROW	= 0x51,
+        HID_KEY_UP_ARROW		= 0x52,
+        
+        HID_KEY_NUM_LOCK		= 0x53,
+        HID_KEY_KP_SLASH		= 0x54,
+        HID_KEY_KP_ASTERISK	= 0x55,
+        HID_KEY_KP_MINUS		= 0x56,
+        HID_KEY_KP_PLUS		= 0x57,
+        HID_KEY_KP_ENTER		= 0x58,
+        HID_KEY_KP_1			= 0x59,
+        HID_KEY_KP_2			= 0x5a,
+        HID_KEY_KP_3			= 0x5b,
+        HID_KEY_KP_4			= 0x5c,
+        HID_KEY_KP_5			= 0x5d,
+        HID_KEY_KP_6			= 0x5e,
+        HID_KEY_KP_7			= 0x5f,
+        HID_KEY_KP_8			= 0x60,
+        HID_KEY_KP_9			= 0x61,
+        HID_KEY_KP_0			= 0x62,
+        HID_KEY_KP_DEL		= 0x63,
+  
+        HID_KEY_K45			= 0x64,
+        HID_KEY_APP			= 0x65,
+        HID_KEY_POWER			= 0x66,
+        HID_KEY_KP_EQUAL		= 0x67,
+        
+        HID_KEY_F13			= 0x68,
+        HID_KEY_F14			= 0x69,
+        HID_KEY_F15			= 0x6A,
+        HID_KEY_F16			= 0x6B,
+        HID_KEY_F17			= 0x6C,
+        HID_KEY_F18			= 0x6D,
+        HID_KEY_F19			= 0x6E,
+        HID_KEY_F20			= 0x6F,
+        HID_KEY_F21			= 0x70,
+        HID_KEY_F22			= 0x71,
+        HID_KEY_F23			= 0x72,
+        HID_KEY_F24			= 0x73,
+        
+        HID_KEY_EXECUTE		= 0x74,
+        HID_KEY_HELP			= 0x75,
+        HID_KEY_MENU			= 0x76,
+        HID_KEY_SELECT		= 0x77,
+    
+        HID_KEY_STOP			= 0x78,
+        HID_KEY_AGAIN			= 0x79,
+        HID_KEY_UNDO			= 0x7a,
+        HID_KEY_CUT			= 0x7b,
+        HID_KEY_COPY			= 0x7c,
+        HID_KEY_PASTE			= 0x7d,
+        HID_KEY_FIND			= 0x7e,
+        HID_KEY_MUTE			= 0x7f,
+        HID_KEY_VOL_UP		= 0x80,
+        HID_KEY_VOL_DOWN		= 0x81,
+    
+        HID_KEY_LOCKING_CAPS_LOCK		= 0x82,
+        HID_KEY_LOCKING_NUM_LOCK		= 0x83,
+        HID_KEY_LOCKING_SCROLL_LOCK		= 0x84,
+        HID_KEY_KP_COMMA					= 0x85,
+        HID_KEY_KP_EQUAL_AS400			= 0x86,
+        
+        HID_KEY_K56				= 0x87,
+        HID_KEY_K133  				= 0x88,
+        HID_KEY_K14  				= 0x89,
+        HID_KEY_K132  				= 0x8a,
+        HID_KEY_K131 				= 0x8b,
+    
+        HID_KEY_INTL_6				= 0x8c,
+        HID_KEY_INTL_7				= 0x8d,
+        HID_KEY_INTL_8				= 0x8e,
+        HID_KEY_INTL_9				= 0x8f,
+        HID_KEY_KR_R  				= 0x90,
+        HID_KEY_KR_L  				= 0x91,
+        HID_KEY_LANG_3			= 0x92,
+        HID_KEY_LANG_4			= 0x93,
+        HID_KEY_LANG_5			= 0x94,
+        HID_KEY_LANG_6			= 0x95,
+    
+        HID_KEY_LANG_7			= 0x96,
+        HID_KEY_LANG_8			= 0x97,
+        HID_KEY_LANG_9			= 0x98,
+        HID_KEY_ALT_ERASE			= 0x99,
+        HID_KEY_SYS_REQ			= 0x9a,
+        HID_KEY_CANCEL			= 0x9b,
+        HID_KEY_CLEAR				= 0x9c,
+        HID_KEY_PRIOR				= 0x9d,
+        HID_KEY_RETURN			= 0x9e,
+        HID_KEY_SEPARATOR		= 0x9f,
+    
+        HID_KEY_OUT				= 0xa0,
+        HID_KEY_OPER				= 0xa1,
+        HID_KEY_CLEAR_AGAIN		= 0xa2,
+        HID_KEY_CRSEL				= 0xa3,
+        HID_KEY_EXSEL				= 0xa4,
+    
+        // Reserved 0xa5~0xaf
+        HID_KEY_KP_00						= 0xb0,
+        HID_KEY_KP_000						= 0xb1,
+        HID_KEY_THOUSANDS_SEPERATOR	= 0xb2,
+        HID_KEY_DECIMAL_SEPERATOR		= 0xb3,
+        HID_KEY_CURRENCY_UNIT			= 0xb4,
+        HID_KEY_CURRENCY_SUB_UNIT		= 0xb5,
+        HID_KEY_KP_LEFT_PAREN			= 0xb6,
+        HID_KEY_KP_RIGHT_PAREN			= 0xb7,
+        HID_KEY_KP_LEFT_CURLY_BRACE		= 0xb8,
+        HID_KEY_KP_RIGHT_CURLY_BRACE	= 0xb9,
+        HID_KEY_KP_TAB					= 0xba,
+        HID_KEY_KP_BACKSPACE				= 0xbb,
+        HID_KEY_KP_A						= 0xbc,
+        HID_KEY_KP_B						= 0xbd,
+        HID_KEY_KP_C						= 0xbe,
+        HID_KEY_KP_D						= 0xbf,
+        HID_KEY_KP_E						= 0xc0,
+        HID_KEY_KP_F						= 0xc1,
+        HID_KEY_KP_XOR					= 0xc2,
+        HID_KEY_KP_CARET					= 0xc3,
+        HID_KEY_KP_PERCENT				= 0xc4,
+        HID_KEY_KP_LESS_THAN				= 0xc5,
+        HID_KEY_KP_GREATER_THAN			= 0xc6,
+        HID_KEY_KP_AMPERSAND				= 0xc7,
+    
+        HID_KEY_KP_DOUBLE_AMPERSAND	= 0xc8,
+        HID_KEY_KP_VERTICAL_BAR			= 0xc9,
+        HID_KEY_KP_DOUBLE_VERTICAL_BAR	= 0xca,
+        HID_KEY_KP_COLON					= 0xcb,
+        HID_KEY_KP_HASH					= 0xcc,
+        HID_KEY_KP_SPACE					= 0xcd,
+        HID_KEY_KP_AT						= 0xce,
+        HID_KEY_KP_EXCLAMATION			= 0xcf,
+        HID_KEY_KP_MEM_STORE			= 0xd0,
+        HID_KEY_KP_MEM_RECALL			= 0xd1,
+    
+        HID_KEY_KP_MEM_CLEAR				= 0xd2,
+        HID_KEY_KP_MEM_ADD				= 0xd3,
+        HID_KEY_KP_MEM_SUBTRACT			= 0xd4,
+        HID_KEY_KP_MEM_MULTIPLY			= 0xd5,
+        HID_KEY_KP_MEM_DIVIDE				= 0xd6,
+        HID_KEY_KP_PLUS_MINUS				= 0xd7,
+        HID_KEY_KP_CLEAR					= 0xd8,
+        HID_KEY_KP_CLEAR_ENTRY			= 0xd9,
+        HID_KEY_KP_BINARY					= 0xda,
+        HID_KEY_KP_OCTAL					= 0xdb,
+    
+        HID_KEY_KP_DECIMAL				= 0xdc,
+        HID_KEY_KP_HEX					= 0xdd,
+        // 0xde~0xdf reserved
+        
+        HID_KEY_LEFT_CTL			= 0xe0,
+        HID_KEY_LEFT_SHIFT			= 0xe1,
+        HID_KEY_LEFT_ALT 			= 0xe2,
+        HID_KEY_LEFT_GUI 			= 0xe3,
+        HID_KEY_RIGHT_CTL			= 0xe4,
+        HID_KEY_RIGHT_SHIFT		= 0xe5,
+        HID_KEY_RIGHT_ALT			= 0xe6,
+        HID_KEY_RIGHT_GUI			= 0xe7,
+        // 0xe8~0xff reserved
+        HID_KEY_FN 					= 0x7f,
+        HID_KEY_PB					= 0xef,
+        HID_KEY_NULL 				= 0x00,
+};
+
+enum multKey{
+//mult key
+	HID_MULTIKEY_MEDIA		= 0xF1,
+ 	HID_MULTIKEY_PALY		= 0xF2,
+ 	HID_MULTIKEY_STOP		= 0xF3,
+ 	HID_MULTIKEY_PRE_TRACK	= 0xF4,
+ 	HID_MULTIKEY_NEXT_TRACK	= 0xF5,
+ 	HID_MULTIKEY_VOL_DOWN	= 0xF6,
+ 	HID_MULTIKEY_VOL_UP		= 0xF7,
+ 	HID_MULTIKEY_MUTE			= 0xF8,
+ 	HID_MULTIKEY_MY_COMPUTER 	= 0xF9,
+ 	HID_MULTIKEY_MAIL			= 0xFA,
+ 	HID_MULTIKEY_CALCULATOR	= 0xFB,
+
+
+ 	HID_MULTIKEY_AC_FAVORITES	= 0xD0,
+ 	HID_MULTIKEY_AC_FORWARD	= 0xD1,
+ 	HID_MULTIKEY_AC_BACK		= 0xD2,
+ 	HID_MULTIKEY_AC_STOP		= 0xD3,
+ 	HID_MULTIKEY_AC_REFRESH	= 0xD4,
+ 	HID_MULTIKEY_AC_SEARCH	= 0xD5,
+ 	HID_MULTIKEY_AC_HOME		= 0xD6,
+ 	HID_MULTIKEY_LIGHT_DOWN	= 0xD7,
+ 	HID_MULTIKEY_LIGHT_UP		= 0xD8,
+ 	HID_MULTIKEY_IOS_SOFT_KB 	= 0xD9,		
+	HID_MULTIKEY_OS_LOCK 		= 0xDA,		//lock screen
+	HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS = 0xDB,	
+	HID_MULTIKEY_ANDROID_SOFT_KB	= 0xDC,
+	HID_SYSTEM_KEY_POWER_DOWN 	= 0xDD,
+	HID_SYSTEM_KEY_SLEEP 			= 0xDE,
+	HID_SYSTEM_KEY_WAKE_UP		= 0xDF
+};
+
+enum hidReportId{
+	HID_REPORTID_1 = 0x01,
+	HID_REPORTID_2 = 0x02,
+	HID_REPORTID_3 = 0x03,
+	HID_REPORTID_BATTERY = 0x04,
+	HID_REPORTID_FAST_CONN_NAME = 0x05,
+	HID_REPORTID_SYSTEM = 0x06
+};
+
+enum hidReportLen{
+	HID_REPORTLEN_1 = 0x09,
+	HID_REPORTLEN_2 = 0x03,
+	HID_REPORTLEN_3 = 0x02,
+	HID_REPORTLEN_4 = 0x02,
+};
+
+#endif
Index: keyscan.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/keyscan.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/keyscan.h	(working copy)
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+#include "common.h"
+
+#ifndef _KEYSCAN_
+#define _KEYSCAN_
+
+#define KS_SEL_RGUI					0x80
+#define KS_SEL_RALT					0x40
+#define KS_SEL_RSHIFT				0x20
+#define KS_SEL_RCTRL				0x10
+#define KS_SEL_LGUI					0x08
+#define KS_SEL_LALT					0x04
+#define KS_SEL_LSHIFT				0x02
+#define KS_SEL_LCTRL				0x01
+
+#define KS_BUFF_POLL_LEN 6
+typedef struct {
+	byte standardSel;
+	byte ksPool[KS_BUFF_POLL_LEN];
+}tKSEVENT;
+
+/**
+ * This function initlialize key scan hardware.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void KS_Initialize(void);
+
+/**
+ * This function Get Keyscan event message.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+tKSEVENT *KS_GetCurrentEvt();
+
+/**
+ * This function scan ks matrix.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+void KS_ScanMatrix();
+
+void KS_Unistall();
+
+
+#endif
+ 
\ No newline at end of file
Index: keyscan.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/keyscan.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/keyscan.c	(working copy)
@@ -0,0 +1,474 @@
+#include "keyscan.h"
+
+
+extern code byte col[KB_KSCAN_COL_NUM+1];
+extern code byte  ksMap[KS_KEY_MAP_LEN];
+
+
+#define GET_RAW_KEY_SEL(y, g, n)	REG_GPIO_PUP (g) &= ~n; \
+	REG_GPIO_OE(g) |= n; \
+	REG_GPIO_OUT(g) &= ~n;	\
+	y = ~ REG_GPIO_IN(0);	\
+	REG_GPIO_PUP(g) |= n;	\
+	REG_GPIO_OE(g) &= ~n
+
+
+#define GET_RAW_KEY_SEL0(y,x)		GPIO_SetOutput(x, 0); \
+		y = ~ REG_GPIO_IN(0);	\
+		GPIO_SetInput(x, 0)
+
+tKSEVENT xdata ksEvtPool;
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+static byte bit_count(byte v)
+{
+	unsigned char c;
+	for (c = 0; v; c++) {
+    	v &= v - 1;
+    }
+    return c;
+}
+
+
+//byte col[] = {25,26};
+static void keyIn(byte key)
+{
+	byte i = 0;
+
+	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+	{
+		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
+		return;
+	}
+/*
+
+	if (key == HID_KEY_RIGHT_GUI)
+	{
+		ksEvtPool.standardSel |= KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_ALT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RALT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_SHIFT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_CTL) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_GUI) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_ALT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LALT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_SHIFT)
+	{
+		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_CTL) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+		return;
+	}
+*/	
+	//special key
+
+	// for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+	// {
+	// 	if (ksEvtPool.ksPool[i] == key)
+	// 		break;
+	// 	if (ksEvtPool.ksPool[i] == 0) 
+	// 	{
+	// 		if(mult_key_value != key)
+	// 			ksEvtPool.ksPool[i] = key;
+	// 		break;
+	// 	}
+	// }
+	for (i=0 ; i<24 ; i++) {
+
+		if(i<KS_BUFF_POLL_LEN)
+		{
+			if (ksEvtPool.ksPool[i] == key)
+				break;
+			if (ksEvtPool.ksPool[i] == 0) 
+			{
+				ksEvtPool.ksPool[i] = key;
+				break;
+			}
+		}
+		else
+		{
+			if(key < 0x38)
+			{
+				g_variable.bit_key1[key/8] |= 0x01<<(key%8);
+				g_variable.bit_key1_flag = 1;
+			}
+			else
+			{ 
+				g_variable.bit_key2[(key/8)-7] |= 0x01<<(key%8);
+				g_variable.bit_key2_flag = 1;
+			}
+		}
+	}
+}
+
+static void keyOut(byte key)
+{
+	byte i = 0 ;
+	byte found = 0;
+
+	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+	{
+
+		ksEvtPool.standardSel  &= ~(0x01 << (key & 0x07));
+		return;
+	}
+	for (i=0 ; i<24 ; i++) 
+	{	if(i<KS_BUFF_POLL_LEN)
+		{
+			if (found == 0) 
+			{
+				if (ksEvtPool.ksPool[i] == key) {
+					if (i == KS_BUFF_POLL_LEN-1) {
+						ksEvtPool.ksPool[i] = 0;
+					}
+					found = 1;
+				}
+			}
+			else 
+			{
+				ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+				if (ksEvtPool.ksPool[i] == 0)
+					break;
+				if (i == KS_BUFF_POLL_LEN-1) {
+					ksEvtPool.ksPool[i] = 0;
+				}
+			}
+		}
+		else 
+		{
+			if(key < 0x38)
+			{
+				g_variable.bit_key1[key/8] &= ~(0x01<<(key%8));
+				g_variable.bit_key1_flag = 1;
+			}
+			else 
+			{
+				g_variable.bit_key2[(key/8)-7] &= ~(0x01<<(key%8));
+				g_variable.bit_key2_flag = 1;
+			}
+		}
+	}
+}
+	// if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
+	// {
+	// 	if(mult_key_status == KEY_WAIT_RELEASE)
+	// 	{
+	// 		mult_key_status = KEY_RELEASE;
+	// 	}
+	// }
+	// else
+	// 	standard_key_release_flag = 1;
+
+	// if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+	// {
+	// 	ksEvtPool.standardSel  &= ~(0x01 << (key & 0x07));
+	// 	return;
+	// }
+	
+
+/*
+	if (key == HID_KEY_RIGHT_GUI ) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_ALT ) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RALT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_SHIFT) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_CTL) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_GUI)
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_ALT)
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LALT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_SHIFT) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_CTL) 
+	{
+		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
+		return;
+	}
+*/	
+// 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+// 	{
+// 		if (found == 0) 
+// 		{
+// 			if (ksEvtPool.ksPool[i] == key) {
+// 				if (i == KS_BUFF_POLL_LEN-1) {
+// 					ksEvtPool.ksPool[i] = 0;
+// 				}
+// 				found = 1;
+// 			}
+// 		}
+// 		else 
+// 		{
+// 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+// 			if (ksEvtPool.ksPool[i] == 0)
+// 				break;
+// 			if (i == KS_BUFF_POLL_LEN-1) {
+// 				ksEvtPool.ksPool[i] = 0;
+// 			}
+// 		}
+// 	}
+// }
+
+static void ksRawInitialize()
+{
+	byte i = 0;
+	
+	for (i=0; i<8; i++) {
+		GPIO_SetInput(i, 0);
+	}
+}
+
+static void ksColInitialize()
+{
+	byte i = 0;
+	for (i=0; col[i]!=0; i++) {
+		GPIO_SetInput(col[i], 0);
+	}
+}
+
+void KS_Initialize()
+{
+	REG_GPIO_SELECT(0) = 0;
+	REG_GPIO_SELECT(1) = 0;
+	REG_GPIO_SELECT(2) = 0;
+	ksRawInitialize();
+	ksColInitialize();
+}
+
+void KS_Unistall()
+{
+	byte i = 0;
+	byte temp = 0;
+	byte tgroup = 0;
+	byte tgpionum = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+		REG_GPIO_OE(tgroup) |= tgpionum;
+		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+	}
+	
+	GPIO_fillpd();
+	
+	temp = REG_GPIO_IN(0);
+
+	if(long_press_flag)
+	{
+		GPIO_SetWakeupByCurrentState(0);
+		GPIO_SetWakeupByCurrentState(1);
+		GPIO_SetWakeupByCurrentState(2);
+		GPIO_SetWakeupByCurrentState(3);
+		GPIO_SetWakeupByCurrentState(4);
+		GPIO_SetWakeupByCurrentState(5);
+		GPIO_SetWakeupByCurrentState(6);
+		GPIO_SetWakeupByCurrentState(7);
+	}
+	else
+	{
+		YC_GPIOWakeupL[0] = temp;
+		YC_GPIOWakeupH[0] = ~temp;
+	}
+
+}
+
+
+void KS_ScanMatrix()
+{
+	byte i = 0;
+	byte j = 0;
+	byte tgroup = 0;
+	byte tgpionum = 0;
+	byte temp = 0;
+	byte check = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+			ksSelMapCurr[i] &= ksSelMapCheck[i];
+		}
+	}
+}
+
+byte array_is_empty(byte * str1,byte len)
+{
+	byte i;
+	for (i=0;i < len;i++)
+	{
+		if (str1[i] != 0)
+			return 0x00;
+	}
+	return 0x01;
+}
+
+
+tKSEVENT *KS_GetCurrentEvt()
+{
+	//
+	byte i = 0;
+	byte j = 0;
+	byte k = 0;
+	byte temp = 0;
+	byte flag = 0;
+	byte offset = 0;
+	byte state = 0;
+	byte keyCounttemp = 0;
+	byte key_value_temp = 0;
+	byte ghost = 0;
+	byte rawCount = 0;
+	
+	KS_ScanMatrix();
+
+	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+	{
+		g_variable.button_flag |= 0x02;
+	}
+	else
+	{	
+		g_variable.button_flag &= 0xFD;
+		g_variable.button_timer[1] = 0;
+	}
+
+	for (i=0; col[i]!=0; i++) 
+	{
+		temp = ksSelMapCurr[i];
+		rawCount = bit_count(temp);
+		if(rawCount >= 2)		// col[i] has more than two key press
+		{
+			for(j=0 ; j<8 ;j++)
+			{
+				if(temp & (1<<j))	// Ci_Rj press
+				{
+					for(k=0 ; col[k]!=0; k++)
+					{
+						if(k!= i)
+						{
+							if(ksSelMapCurr[k] & (1<<j))	// R line has another key press
+							{
+								ghost = 1;
+								break;
+							}	
+						}
+					}
+				}
+			}
+		}
+		
+		if (temp!=0)
+		{
+			keyCounttemp += bit_count(temp);
+		}
+	}
+	keyCount = keyCounttemp;
+	
+	for (i=0; col[i]!=0; i++)
+	{
+		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+		state = ksSelMapCurr[i];
+		if (temp == 0) 
+		{
+			continue;
+		}
+		else 
+		{
+
+			if (ghost) 
+				return NULL;
+			ksSelMapOld[i] = ksSelMapCurr[i];
+			for (j = 0 ; j<8 ; j++) 
+			{
+				if (temp&1)
+				{
+					offset = i<<3 |j;
+					//key_value_temp = key_fn_function(state,ksMap[offset]);
+					if (state & 1)
+					{
+						keyIn(ksMap[offset]);
+					}
+					else
+					{
+						keyOut(ksMap[offset]);
+					}
+				}
+				temp = temp >>1;
+				state = state>>1;
+			}
+			flag = 1;
+		}
+	}
+	
+	// if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+	// {
+	// 	standard_key_release_flag = 2;		//media key and standard key  release the same time
+	// }
+
+	if(flag)
+	//if (flag || standard_key_release_flag == 2) 
+	{
+		return &ksEvtPool;
+	}
+	else
+	{
+		return NULL;
+	}
+	
+
+}
+
Index: led.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/led.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/led.h	(working copy)
@@ -0,0 +1,16 @@
+#ifndef _LED_H
+#define _LED_H
+#include "common.h"
+
+#define LED_ON   1
+#define LED_OFF 0
+
+
+void LED_all_shutdown();
+void LED_handle();
+void LED_device_poweron();
+void LED_device_poweroff();
+
+#endif /* YC_LED_H */
+
+
Index: output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: output/FW
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: led.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/led.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/led.c	(working copy)
@@ -0,0 +1,143 @@
+#include "led.h"
+
+
+void LED_all_shutdown()
+{
+	GPIO_SetOutput(NUM_LOCK_LED_GPIO,LED_OFF);
+	GPIO_SetOutput(CAPS_LED_GPIO,LED_OFF);	
+	GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
+	GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
+	GPIO_SetOutput(SCRLK_LED_GPIO,LED_OFF);
+}
+
+
+void LED_device_poweron()
+{
+    #if 1
+	if(g_variable.current_device_num == 1)
+		GPIO_Setout(BT_LED_GPIO,LED_ON);
+	else if(g_variable.current_device_num == 2)
+		GPIO_Setout(BT2_LED_GPIO,LED_ON);
+	else if(g_variable.current_device_num == 3)
+	{	
+		GPIO_SetOutput(BT_LED_GPIO,LED_ON);
+	}
+	else
+	{
+		GPIO_SetOutput(G24_LED_GPIO,LED_ON);
+	}
+   #else
+		GPIO_Setout(LOWPOWER_LED_GPIO,LED_ON);   
+   #endif
+}
+
+void LED_device_poweroff()
+{
+	if(g_variable.current_device_num == 1)
+		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+	else if(g_variable.current_device_num == 2)
+		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+	else if(g_variable.current_device_num == 3)
+	{	
+		GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
+	}
+	else
+	{
+		GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
+	}
+}
+
+
+void LED_handle()
+{
+	if (power_on_flag != 2)
+		return;
+
+	if(!g_variable.pairing_timeout && !g_variable.pairing_g24_timeout)
+	{
+		//low battery LED process
+		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+		{
+			System_long_sleep();
+		}
+		else if (g_variable.battery_status == BAT_STATUS_LOW)
+		{
+			if (g_variable.battery_low_led_flash_flag == 0)
+			{
+				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+				g_variable.battery_low_led_flash_flag = 1;
+			}
+		}
+		else
+		{
+			if (g_variable.battery_low_led_flash_flag == 1)
+			{
+				g_variable.battery_low_led_flash_flag = 0;
+				g_variable.battery_low_led_flash_interval = 0;
+				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+			}
+		}
+
+		//capslock  numlock  scrolllock LED process
+		if (YC_check_is_connected())
+		{
+			if(g_variable.sleepTimer < KB_NUM_CAPS_LED_ON_TIMER)
+			{
+			   
+				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK && !g_variable.battery_low_led_flash_interval)
+				{
+					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
+				}
+				else
+				{
+					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval){
+						GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+					}
+				}
+				
+				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+				{
+					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+				}
+				else 
+				{
+					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+				}	
+
+				
+				if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+				{
+					GPIO_Setout(SCRLK_LED_GPIO, LED_ON);
+				}
+				else 
+				{
+					GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+				}
+                                    
+			}
+			else
+			{
+				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+				GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+				if(!g_variable.battery_low_led_flash_interval && !g_variable.powerOn_timer){
+					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+				}
+
+			}			
+		}
+		else
+		{
+			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+			GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+			if(!g_variable.battery_low_led_flash_interval && !g_variable.powerOn_timer){
+				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+			}
+
+		}
+	}
+}
+
+
+
Index: output/FW.COD
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/FW.COD	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/FW.COD	(working copy)
@@ -0,0 +1,12713 @@
+LX51 LINKER/LOCATER V4.66.41.0                                                          03/11/2026  16:44:14  PAGE 1
+
+
+
+
+
+ASSEMBLER CODE PACKING OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+----- FUNCTION _YC_load_record_list (BEGIN) -----
+ FILE: 'bluetooth.c'
+    4: void YC_load_record_list(byte index)
+    5: {
+000737 904F26            MOV      DPTR,#index
+00073A EF                MOV      A,R7
+00073B F0                MOVX     @DPTR,A
+    6: 	if (g_variable.recon_count == 0)
+    7: 		return;
+00073C 904CF0            MOV      DPTR,#g_variable+031H
+00073F E0                MOVX     A,@DPTR
+000740 7003              JNZ      $ + 5H
+000742 02085E            LJMP     ?C0002?BLUETOOTH
+000745         ?C0001?BLUETOOTH:
+    8: 	g_variable.recon_count--;
+000745 904CF0            MOV      DPTR,#g_variable+031H
+000748 E0                MOVX     A,@DPTR
+000749 14                DEC      A
+00074A F0                MOVX     @DPTR,A
+    9: 	ble_reconnect_flag = 0;
+00074B E4                CLR      A
+00074C 904DF8            MOV      DPTR,#ble_reconnect_flag
+00074F F0                MOVX     @DPTR,A
+   10: 	fast_connect_flag = 0;
+000750 904E69            MOV      DPTR,#fast_connect_flag
+000753 F0                MOVX     @DPTR,A
+   11: 	if (bd_key_record_list[index].device_type == TYPE_BLE)		
+000754 904F26            MOV      DPTR,#index
+000757 E0                MOVX     A,@DPTR
+000758 FF                MOV      R7,A
+000759 75F01F            MOV      B,#01FH
+00075C A4                MUL      AB
+00075D 2402              ADD      A,#LOW bd_key_record_list
+00075F F582              MOV      DPL,A
+000761 E4                CLR      A
+000762 344E              ADDC     A,#HIGH bd_key_record_list
+000764 F583              MOV      DPH,A
+000766 E0                MOVX     A,@DPTR
+000767 6401              XRL      A,#01H
+000769 7070              JNZ      ?C0003?BLUETOOTH
+   12: 	{
+   13: 		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+00076B EF                MOV      A,R7
+00076C 75F01F            MOV      B,#01FH
+00076F A4                MUL      AB
+000770 2403              ADD      A,#LOW bd_key_record_list+01H
+000772 F9                MOV      R1,A
+000773 744E              MOV      A,#HIGH bd_key_record_list+01H
+000775 35F0              ADDC     A,B
+000777 FA                MOV      R2,A
+000778 7B01              MOV      R3,#01H
+00077A 7E42              MOV      R6,#HIGH m_reconn_addr
+00077C 7F74              MOV      R7,#LOW m_reconn_addr
+00077E 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+000781 7406              MOV      A,#06H
+000783 F0                MOVX     @DPTR,A
+000784 1210CE            LCALL    _xmemcpy
+   14: 		xmemcpy(m_le_ltk,bd_key_record_list[index].device_link_key,16);
+000787 904F26            MOV      DPTR,#index
+00078A E0                MOVX     A,@DPTR
+00078B 75F01F            MOV      B,#01FH
+00078E A4                MUL      AB
+00078F 2409              ADD      A,#LOW bd_key_record_list+07H
+000791 F9                MOV      R1,A
+000792 744E              MOV      A,#HIGH bd_key_record_list+07H
+000794 35F0              ADDC     A,B
+000796 FA                MOV      R2,A
+000797 7B01              MOV      R3,#01H
+000799 7E44              MOV      R6,#HIGH m_le_ltk
+00079B 7F7B              MOV      R7,#LOW m_le_ltk
+00079D 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0007A0 7410              MOV      A,#010H
+0007A2 F0                MOVX     @DPTR,A
+0007A3 1210CE            LCALL    _xmemcpy
+   15: 		xmemcpy(m_le_lap,bd_key_record_list[index].local_addr,6);
+0007A6 904F26            MOV      DPTR,#index
+0007A9 E0                MOVX     A,@DPTR
+0007AA 75F01F            MOV      B,#01FH
+0007AD A4                MUL      AB
+0007AE 2419              ADD      A,#LOW bd_key_record_list+017H
+0007B0 F9                MOV      R1,A
+0007B1 744E              MOV      A,#HIGH bd_key_record_list+017H
+0007B3 35F0              ADDC     A,B
+0007B5 FA                MOV      R2,A
+0007B6 7B01              MOV      R3,#01H
+0007B8 7E44              MOV      R6,#HIGH m_le_lap
+0007BA 7FF9              MOV      R7,#LOW m_le_lap
+0007BC 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0007BF 7406              MOV      A,#06H
+0007C1 F0                MOVX     @DPTR,A
+0007C2 1210CE            LCALL    _xmemcpy
+   16: 		IPC_TxControlCmd(IPC_CMD_START_ADV_REC);		//ble reconnect
+0007C5 7F2B              MOV      R7,#02BH
+0007C7 12085F            LCALL    _IPC_TxControlCmd
+   17: 		ble_reconnect_flag = 1;
+0007CA 904DF8            MOV      DPTR,#ble_reconnect_flag
+0007CD 7401              MOV      A,#01H
+0007CF F0                MOVX     @DPTR,A
+   18: 		g_variable.recon_count = 0;
+0007D0 E4                CLR      A
+0007D1 904CF0            MOV      DPTR,#g_variable+031H
+0007D4 F0                MOVX     @DPTR,A
+   19: 		m_ltk_exists = 1;
+0007D5 90448B            MOV      DPTR,#m_ltk_exists
+0007D8 04                INC      A
+0007D9 F0                MOVX     @DPTR,A
+   20: 	}
+0007DA 22                RET      
+0007DB         ?C0003?BLUETOOTH:
+   21: 	else if (bd_key_record_list[index].device_type == TYPE_BT)
+0007DB 904F26            MOV      DPTR,#index
+0007DE E0                MOVX     A,@DPTR
+0007DF FF                MOV      R7,A
+0007E0 75F01F            MOV      B,#01FH
+0007E3 A4                MUL      AB
+0007E4 2402              ADD      A,#LOW bd_key_record_list
+0007E6 F582              MOV      DPL,A
+0007E8 E4                CLR      A
+0007E9 344E              ADDC     A,#HIGH bd_key_record_list
+0007EB F583              MOV      DPH,A
+0007ED E0                MOVX     A,@DPTR
+0007EE 6402              XRL      A,#02H
+0007F0 7046              JNZ      ?C0005?BLUETOOTH
+   22: 	{
+   23: 		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+0007F2 EF                MOV      A,R7
+0007F3 75F01F            MOV      B,#01FH
+0007F6 A4                MUL      AB
+0007F7 2403              ADD      A,#LOW bd_key_record_list+01H
+0007F9 F9                MOV      R1,A
+0007FA 744E              MOV      A,#HIGH bd_key_record_list+01H
+0007FC 35F0              ADDC     A,B
+0007FE FA                MOV      R2,A
+0007FF 7B01              MOV      R3,#01H
+000801 7E42              MOV      R6,#HIGH m_reconn_addr
+000803 7F74              MOV      R7,#LOW m_reconn_addr
+000805 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+000808 7406              MOV      A,#06H
+00080A F0                MOVX     @DPTR,A
+00080B 1210CE            LCALL    _xmemcpy
+   24: 		xmemcpy(m_linkkey,bd_key_record_list[index].device_link_key,16);
+00080E 904F26            MOV      DPTR,#index
+000811 E0                MOVX     A,@DPTR
+000812 75F01F            MOV      B,#01FH
+000815 A4                MUL      AB
+000816 2409              ADD      A,#LOW bd_key_record_list+07H
+000818 F9                MOV      R1,A
+000819 744E              MOV      A,#HIGH bd_key_record_list+07H
+00081B 35F0              ADDC     A,B
+00081D FA                MOV      R2,A
+00081E 7B01              MOV      R3,#01H
+000820 7E42              MOV      R6,#HIGH m_linkkey
+000822 7F62              MOV      R7,#LOW m_linkkey
+000824 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+000827 7410              MOV      A,#010H
+000829 F0                MOVX     @DPTR,A
+00082A 1210CE            LCALL    _xmemcpy
+   25: 		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+00082D 7F03              MOV      R7,#03H
+00082F 115F              ACALL    _IPC_TxControlCmd
+   26: 		m_link_key_exists = 1;
+000831 90425E            MOV      DPTR,#m_link_key_exists
+000834 7401              MOV      A,#01H
+000836 F0                MOVX     @DPTR,A
+   27: 	}
+000837 22                RET      
+000838         ?C0005?BLUETOOTH:
+   28: 	else		
+   29: 	{
+   30: 		fast_connect_flag = 1;
+000838 904E69            MOV      DPTR,#fast_connect_flag
+00083B 7401              MOV      A,#01H
+00083D F0                MOVX     @DPTR,A
+   31: 	#ifdef BLE_FAST_CONNECT_ENABLE
+   32: 			m_le_lap[0] = 0x0F;
+00083E 9044F9            MOV      DPTR,#m_le_lap
+000841 740F              MOV      A,#0FH
+000843 F0                MOVX     @DPTR,A
+   33: 			m_le_lap[1] = 0x0F;
+000844 A3                INC      DPTR
+000845 F0                MOVX     @DPTR,A
+   34: 			m_le_lap[2] = 0x0F;
+000846 A3                INC      DPTR
+000847 F0                MOVX     @DPTR,A
+   35: 			m_le_lap[3] = 0x0F;
+000848 A3                INC      DPTR
+000849 F0                MOVX     @DPTR,A
+   36: 			m_le_lap[4] = 0x0F;
+00084A A3                INC      DPTR
+00084B F0                MOVX     @DPTR,A
+   37: 			m_le_lap[5] = 0x0F;
+00084C A3                INC      DPTR
+00084D F0                MOVX     @DPTR,A
+   38: 			ble_fast_connect_flag =1;
+00084E 904DD3            MOV      DPTR,#ble_fast_connect_flag
+000851 7401              MOV      A,#01H
+000853 F0                MOVX     @DPTR,A
+   39: 			IPC_TxControlCmd(IPC_CMD_START_ADV_REC);
+000854 7F2B              MOV      R7,#02BH
+000856 115F              ACALL    _IPC_TxControlCmd
+   40: 			m_link_key_exists = 1;
+000858 90425E            MOV      DPTR,#m_link_key_exists
+00085B 7401              MOV      A,#01H
+00085D F0                MOVX     @DPTR,A
+   41: 	#endif
+   42: 	#ifdef BT_FAST_CONNECT_ENABLE
+   43: 			m_reconn_addr[0] = 0xFF;
+   44: 			m_reconn_addr[1] = 0xFF;
+   45: 			m_reconn_addr[2] = 0xFF;
+   46: 			m_reconn_addr[3] = 0xFF;
+   47: 			m_reconn_addr[4] = 0xFF;
+   48: 			m_reconn_addr[5] = 0xFF;
+   49: 			xmemclear_ff((byte *)m_linkkey,16); 
+   50: 			IPC_TxControlCmd(IPC_CMD_RECONNECT);
+   51: 			m_link_key_exists = 1;	
+   52: 			g_variable.fast_connect_send_name = 1;
+   53: 	#endif
+   54: 	}	
+   55: }
+00085E         ?C0002?BLUETOOTH:
+00085E 22                RET      
+----- FUNCTION _YC_load_record_list (END) -------
+
+
+----- FUNCTION _IPC_TxControlCmd (BEGIN) -----
+00085F 904F02            MOV      DPTR,#cmd
+000862 EF                MOV      A,R7
+000863 F0                MOVX     @DPTR,A
+000864 7803              MOV      R0,#LOW cmdBuff
+000866 7C4F              MOV      R4,#HIGH cmdBuff
+000868 7D01              MOV      R5,#01H
+00086A 7BFF              MOV      R3,#0FFH
+00086C 7A07              MOV      R2,#HIGH _?ix1000
+00086E 7934              MOV      R1,#LOW _?ix1000
+000870 7E00              MOV      R6,#00H
+000872 7F03              MOV      R7,#03H
+000874 120390            LCALL    ?C?COPY
+000877 904F02            MOV      DPTR,#cmd
+00087A E0                MOVX     A,@DPTR
+00087B 904F05            MOV      DPTR,#cmdBuff+02H
+00087E F0                MOVX     @DPTR,A
+00087F 7B01              MOV      R3,#01H
+000881 7A4F              MOV      R2,#HIGH cmdBuff
+000883 7903              MOV      R1,#LOW cmdBuff
+000885 7D03              MOV      R5,#03H
+;----                  JMP      _ipcTx
+----- FUNCTION _IPC_TxControlCmd (END) -------
+
+
+----- FUNCTION _ipcTx (BEGIN) -----
+000887 904EE4            MOV      DPTR,#src
+00088A EB                MOV      A,R3
+00088B F0                MOVX     @DPTR,A
+00088C A3                INC      DPTR
+00088D EA                MOV      A,R2
+00088E F0                MOVX     @DPTR,A
+00088F A3                INC      DPTR
+000890 E9                MOV      A,R1
+000891 F0                MOVX     @DPTR,A
+000892 A3                INC      DPTR
+000893 ED                MOV      A,R5
+000894 F0                MOVX     @DPTR,A
+000895 904B9C            MOV      DPTR,#ipcTxWritePtr
+000898 E0                MOVX     A,@DPTR
+000899 FF                MOV      R7,A
+00089A A3                INC      DPTR
+00089B E0                MOVX     A,@DPTR
+00089C 904EE8            MOV      DPTR,#dest
+00089F CF                XCH      A,R7
+0008A0 F0                MOVX     @DPTR,A
+0008A1 A3                INC      DPTR
+0008A2 EF                MOV      A,R7
+0008A3 F0                MOVX     @DPTR,A
+0008A4         ?C0008?IPC:
+0008A4 904B9A            MOV      DPTR,#ipcTxReadPtr
+0008A7 E0                MOVX     A,@DPTR
+0008A8 FE                MOV      R6,A
+0008A9 A3                INC      DPTR
+0008AA E0                MOVX     A,@DPTR
+0008AB FF                MOV      R7,A
+0008AC 904B9C            MOV      DPTR,#ipcTxWritePtr
+0008AF E0                MOVX     A,@DPTR
+0008B0 FC                MOV      R4,A
+0008B1 A3                INC      DPTR
+0008B2 E0                MOVX     A,@DPTR
+0008B3 FD                MOV      R5,A
+0008B4 7B64              MOV      R3,#064H
+0008B6 12397E            LCALL    _bufsize
+0008B9 904EE7            MOV      DPTR,#len
+0008BC E0                MOVX     A,@DPTR
+0008BD FE                MOV      R6,A
+0008BE EF                MOV      A,R7
+0008BF C3                CLR      C
+0008C0 9E                SUBB     A,R6
+0008C1 40E1              JC       ?C0008?IPC
+0008C3         ?C0009?IPC:
+0008C3         ?C0010?IPC:
+0008C3 904EE7            MOV      DPTR,#len
+0008C6 E0                MOVX     A,@DPTR
+0008C7 FF                MOV      R7,A
+0008C8 14                DEC      A
+0008C9 F0                MOVX     @DPTR,A
+0008CA EF                MOV      A,R7
+0008CB 603F              JZ       ?C0011?IPC
+0008CD 904EE4            MOV      DPTR,#src
+0008D0 E0                MOVX     A,@DPTR
+0008D1 FB                MOV      R3,A
+0008D2 A3                INC      DPTR
+0008D3 E4                CLR      A
+0008D4 75F001            MOV      B,#01H
+0008D7 120424            LCALL    ?C?ILDIX
+0008DA A9F0              MOV      R1,B
+0008DC FA                MOV      R2,A
+0008DD 1203B6            LCALL    ?C?CLDPTR
+0008E0 FF                MOV      R7,A
+0008E1 904EE8            MOV      DPTR,#dest
+0008E4 E4                CLR      A
+0008E5 75F001            MOV      B,#01H
+0008E8 120424            LCALL    ?C?ILDIX
+0008EB 85F082            MOV      DPL,B
+0008EE F583              MOV      DPH,A
+0008F0 EF                MOV      A,R7
+0008F1 F0                MOVX     @DPTR,A
+0008F2 904EE8            MOV      DPTR,#dest
+0008F5 E0                MOVX     A,@DPTR
+0008F6 FE                MOV      R6,A
+0008F7 A3                INC      DPTR
+0008F8 E0                MOVX     A,@DPTR
+0008F9 FF                MOV      R7,A
+0008FA BE4BC6            CJNE     R6,#04BH,?C0010?IPC
+0008FD BF36C3            CJNE     R7,#036H,?C0010?IPC
+000900 904EE8            MOV      DPTR,#dest
+000903 744A              MOV      A,#04AH
+000905 F0                MOVX     @DPTR,A
+000906 A3                INC      DPTR
+000907 74A0              MOV      A,#0A0H
+000909 F0                MOVX     @DPTR,A
+00090A 80B7              SJMP     ?C0010?IPC
+00090C         ?C0011?IPC:
+00090C 904EE8            MOV      DPTR,#dest
+00090F E0                MOVX     A,@DPTR
+000910 FF                MOV      R7,A
+000911 A3                INC      DPTR
+000912 E0                MOVX     A,@DPTR
+000913 904B9C            MOV      DPTR,#ipcTxWritePtr
+000916 CF                XCH      A,R7
+000917 F0                MOVX     @DPTR,A
+000918 A3                INC      DPTR
+000919 EF                MOV      A,R7
+00091A F0                MOVX     @DPTR,A
+00091B 22                RET      
+----- FUNCTION _ipcTx (END) -------
+
+
+----- FUNCTION _YC_key_action_handle (BEGIN) -----
+ FILE: 'kb_process.c'
+    5: void YC_key_action_handle(byte key_num)
+    6: {
+00091C 904F29            MOV      DPTR,#key_num
+00091F EF                MOV      A,R7
+000920 F0                MOVX     @DPTR,A
+    7: 	switch (key_num)
+    8: 	{
+000921 14                DEC      A
+000922 B40D00            CJNE     A,#0DH,?C0293?KB_PROCESS
+000925         ?C0293?KB_PROCESS:
+000925 4002              JC       $ + 4H
+000927 41E6              AJMP     ?C0025?KB_PROCESS
+000929 900937            MOV      DPTR,#0937H
+00092C 75F003            MOV      B,#03H
+00092F A4                MUL      AB
+000930 C583              XCH      A,DPH
+000932 25F0              ADD      A,B
+000934 C583              XCH      A,DPH
+000936 73                JMP      @A+DPTR
+000937         ?C0294?KB_PROCESS:
+000937 02095E            LJMP     ?C0004?KB_PROCESS
+00093A 02095E            LJMP     ?C0004?KB_PROCESS
+00093D 02095E            LJMP     ?C0004?KB_PROCESS
+000940 020AE6            LJMP     ?C0025?KB_PROCESS
+000943 0209A5            LJMP     ?C0009?KB_PROCESS
+000946 0209E9            LJMP     ?C0013?KB_PROCESS
+000949 0209F1            LJMP     ?C0014?KB_PROCESS
+00094C 020A3C            LJMP     ?C0016?KB_PROCESS
+00094F 020A3C            LJMP     ?C0016?KB_PROCESS
+000952 020AA3            LJMP     ?C0020?KB_PROCESS
+000955 020AE6            LJMP     ?C0025?KB_PROCESS
+000958 020AE6            LJMP     ?C0025?KB_PROCESS
+00095B 02099D            LJMP     ?C0008?KB_PROCESS
+    9: 	case KEY_RECON_0:
+   10: 	case KEY_RECON_1:
+   11: 	case KEY_RECON_2:
+   12: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+00095E         ?C0004?KB_PROCESS:
+   13: 			||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+00095E 904CC5            MOV      DPTR,#g_variable+06H
+000961 E0                MOVX     A,@DPTR
+000962 FF                MOV      R7,A
+000963 6403              XRL      A,#03H
+000965 6004              JZ       ?C0006?KB_PROCESS
+000967 EF                MOV      A,R7
+000968 B4020D            CJNE     A,#02H,?C0005?KB_PROCESS
+00096B         ?C0006?KB_PROCESS:
+   14: 		{
+   15: 			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+00096B 7F22              MOV      R7,#022H
+00096D 115F              ACALL    _IPC_TxControlCmd
+   16: 			g_variable.key_action = key_num;
+00096F 904F29            MOV      DPTR,#key_num
+000972 E0                MOVX     A,@DPTR
+000973 904CED            MOV      DPTR,#g_variable+02EH
+000976 F0                MOVX     @DPTR,A
+   17: 		}
+000977 22                RET      
+000978         ?C0005?KB_PROCESS:
+   18: 		else
+   19: 		{
+   20: 			recon_index = key_num-1;
+000978 904F29            MOV      DPTR,#key_num
+00097B E0                MOVX     A,@DPTR
+00097C 14                DEC      A
+00097D 904DD6            MOV      DPTR,#recon_index
+000980 F0                MOVX     @DPTR,A
+   21: 			kscurrmult = 0x05;
+000981 904213            MOV      DPTR,#kscurrmult
+000984 7405              MOV      A,#05H
+000986 F0                MOVX     @DPTR,A
+   22: 			g_variable.recon_count = 5;
+000987 904CF0            MOV      DPTR,#g_variable+031H
+00098A F0                MOVX     @DPTR,A
+   23: 			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+00098B 7F04              MOV      R7,#04H
+00098D 115F              ACALL    _IPC_TxControlCmd
+   24: 			Delay1ms(10);
+00098F 7F0A              MOV      R7,#0AH
+000991 D1C0              ACALL    _Delay1ms
+   25: 			IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
+000993 7F2A              MOV      R7,#02AH
+000995 115F              ACALL    _IPC_TxControlCmd
+   26: 			g_variable.key_action = KEY_NONE;
+000997 E4                CLR      A
+000998 904CED            MOV      DPTR,#g_variable+02EH
+00099B F0                MOVX     @DPTR,A
+   27: 		}
+   28: 		break;
+00099C 22                RET      
+   29: 	case KEY_STOP_DISCOVERY:
+00099D         ?C0008?KB_PROCESS:
+   30: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+00099D 7F0E              MOV      R7,#0EH
+00099F 115F              ACALL    _IPC_TxControlCmd
+   31: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+0009A1 7F02              MOV      R7,#02H
+0009A3 015F              AJMP     _IPC_TxControlCmd
+   32: 		break;
+   33: 	case KEY_DISCOVERY:
+0009A5         ?C0009?KB_PROCESS:
+   34: 		g_variable.recon_count = 0;
+0009A5 E4                CLR      A
+0009A6 904CF0            MOV      DPTR,#g_variable+031H
+0009A9 F0                MOVX     @DPTR,A
+   35: 		if (YC_disconnect_all_link() || YC_cancel_reconnect() || YC_g24_mode_discovery())
+0009AA 9100              ACALL    YC_disconnect_all_link
+0009AC EF                MOV      A,R7
+0009AD 700A              JNZ      ?C0011?KB_PROCESS
+0009AF F111              ACALL    YC_cancel_reconnect
+0009B1 EF                MOV      A,R7
+0009B2 7005              JNZ      ?C0011?KB_PROCESS
+0009B4 F1E1              ACALL    YC_g24_mode_discovery
+0009B6 EF                MOV      A,R7
+0009B7 600F              JZ       ?C0010?KB_PROCESS
+0009B9         ?C0011?KB_PROCESS:
+   36: 		{
+   37: 			g_variable.key_action = key_num;
+0009B9 904F29            MOV      DPTR,#key_num
+0009BC E0                MOVX     A,@DPTR
+0009BD 904CED            MOV      DPTR,#g_variable+02EH
+0009C0 F0                MOVX     @DPTR,A
+   38: 			action_timeout = 3;
+0009C1 904DFF            MOV      DPTR,#action_timeout
+0009C4 7403              MOV      A,#03H
+0009C6 F0                MOVX     @DPTR,A
+   39: 		}
+0009C7 22                RET      
+0009C8         ?C0010?KB_PROCESS:
+   40: 		else
+   41: 		{
+   42: 			IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);	
+0009C8 7F1E              MOV      R7,#01EH
+0009CA 115F              ACALL    _IPC_TxControlCmd
+   43: 			YC_clear_reconnect_flag();
+0009CC 121FC4            LCALL    YC_clear_reconnect_flag
+   44: 				ble_send_secutiry_request_timer = 0;
+0009CF E4                CLR      A
+0009D0 904DD4            MOV      DPTR,#ble_send_secutiry_request_timer
+0009D3 F0                MOVX     @DPTR,A
+   45: 				ble_fast_connect_flag = 0;
+0009D4 904DD3            MOV      DPTR,#ble_fast_connect_flag
+0009D7 F0                MOVX     @DPTR,A
+   46: 				fast_connect_flag = 0;
+0009D8 904E69            MOV      DPTR,#fast_connect_flag
+0009DB F0                MOVX     @DPTR,A
+   47: 			#if DEVICE_MODE_BT_ONLY
+   48: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+   49: 			#elif DEVICE_MODE_BLE_ONLY	
+   50: //				m_lpm_mode = 0;
+   51: 				YC_get_ble_ramdon_lap();
+   52: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
+   53: 			#else	
+   54: 				YC_get_ble_ramdon_lap();
+0009DC 1227E3            LCALL    YC_get_ble_ramdon_lap
+   55: 				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+0009DF 7F2C              MOV      R7,#02CH
+0009E1 115F              ACALL    _IPC_TxControlCmd
+   56: 			#endif
+   57: 			g_variable.key_action = KEY_NONE;
+0009E3 E4                CLR      A
+0009E4 904CED            MOV      DPTR,#g_variable+02EH
+0009E7 F0                MOVX     @DPTR,A
+   58: 		}
+   59: 		break;
+0009E8 22                RET      
+   60: 	case KEY_DISCONNECT_ALL:
+0009E9         ?C0013?KB_PROCESS:
+   61: 		YC_disconnect_all_link();
+0009E9 9100              ACALL    YC_disconnect_all_link
+   62: 		g_variable.key_action = KEY_NONE;
+0009EB E4                CLR      A
+0009EC 904CED            MOV      DPTR,#g_variable+02EH
+0009EF F0                MOVX     @DPTR,A
+   63: 		break;
+0009F0 22                RET      
+   64: 	case KEY_CLEAR_RECORD:
+0009F1         ?C0014?KB_PROCESS:
+   65: 		xmemclear_ff((byte *)bd_key_record_list,sizeof(BD_KEY_RECORD)*3);
+0009F1 7B01              MOV      R3,#01H
+0009F3 7A4E              MOV      R2,#HIGH bd_key_record_list
+0009F5 7902              MOV      R1,#LOW bd_key_record_list
+0009F7 7D5D              MOV      R5,#05DH
+0009F9 7C00              MOV      R4,#00H
+0009FB 12261C            LCALL    _xmemclear_ff
+   66: 		g_variable.last_device_num = 0xff;
+0009FE 904CC0            MOV      DPTR,#g_variable+01H
+000A01 74FF              MOV      A,#0FFH
+000A03 F0                MOVX     @DPTR,A
+   67: 		g_variable.system_mode = 0xff;
+000A04 A3                INC      DPTR
+000A05 F0                MOVX     @DPTR,A
+   68: 		Delay1ms(200);
+000A06 7FC8              MOV      R7,#0C8H
+000A08 D1C0              ACALL    _Delay1ms
+   69: 		GPIO_Setout(EEPROM_WP_GPIO,0);
+000A0A C201              CLR      ?_GPIO_Setout?BIT
+000A0C 7FFF              MOV      R7,#0FFH
+000A0E 51EC              ACALL    _GPIO_Setout
+   70: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)&bd_key_record_list);
+000A10 7B01              MOV      R3,#01H
+000A12 7A4E              MOV      R2,#HIGH bd_key_record_list
+000A14 7902              MOV      R1,#LOW bd_key_record_list
+000A16 7D5D              MOV      R5,#05DH
+000A18 7C00              MOV      R4,#00H
+000A1A 7F60              MOV      R7,#060H
+000A1C 7E7F              MOV      R6,#07FH
+000A1E D112              ACALL    _IIC_WriteBlock
+   71: 		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,1 ,(byte *)&g_variable.last_device_num);
+000A20 7B01              MOV      R3,#01H
+000A22 7A4C              MOV      R2,#HIGH g_variable+01H
+000A24 79C0              MOV      R1,#LOW g_variable+01H
+000A26 7D01              MOV      R5,#01H
+000A28 7C00              MOV      R4,#00H
+000A2A 7FBD              MOV      R7,#0BDH
+000A2C 7E7F              MOV      R6,#07FH
+000A2E D112              ACALL    _IIC_WriteBlock
+   72: 		GPIO_Setout(EEPROM_WP_GPIO,1);
+000A30 D201              SETB     ?_GPIO_Setout?BIT
+000A32 7FFF              MOV      R7,#0FFH
+000A34 51EC              ACALL    _GPIO_Setout
+   73: 		g_variable.key_action = KEY_NONE;
+000A36 E4                CLR      A
+000A37 904CED            MOV      DPTR,#g_variable+02EH
+000A3A F0                MOVX     @DPTR,A
+   74: 		break;
+000A3B 22                RET      
+   75: 	case KEY_START_24G:
+   76: 	case KEY_OPEN_24G:
+000A3C         ?C0016?KB_PROCESS:
+   77: 		g_variable.recon_count = 0;
+000A3C E4                CLR      A
+000A3D 904CF0            MOV      DPTR,#g_variable+031H
+000A40 F0                MOVX     @DPTR,A
+   78: 		if ( YC_cancel_reconnect())
+000A41 F111              ACALL    YC_cancel_reconnect
+000A43 EF                MOV      A,R7
+000A44 6009              JZ       ?C0017?KB_PROCESS
+   79: 		{
+   80: 			g_variable.key_action = key_num;
+000A46 904F29            MOV      DPTR,#key_num
+000A49 E0                MOVX     A,@DPTR
+000A4A 904CED            MOV      DPTR,#g_variable+02EH
+000A4D F0                MOVX     @DPTR,A
+   81: 		}
+000A4E 22                RET      
+000A4F         ?C0017?KB_PROCESS:
+   82: 		else
+   83: 		{
+   84: 			IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+000A4F 7B01              MOV      R3,#01H
+000A51 7A4C              MOV      R2,#HIGH m_24g_addr
+000A53 7900              MOV      R1,#LOW m_24g_addr
+000A55 7D04              MOV      R5,#04H
+000A57 7C00              MOV      R4,#00H
+000A59 7F52              MOV      R7,#052H
+000A5B 7E7F              MOV      R6,#07FH
+000A5D 12204E            LCALL    _IIC_Read
+   85: 			Delay1ms(10);
+000A60 7F0A              MOV      R7,#0AH
+000A62 D1C0              ACALL    _Delay1ms
+   86: 			fast_connect_flag = 0;
+000A64 E4                CLR      A
+000A65 904E69            MOV      DPTR,#fast_connect_flag
+000A68 F0                MOVX     @DPTR,A
+   87: 			if (m_24g_addr[0] == 0xff && m_24g_addr[1] == 0xff && m_24g_addr[2] == 0xff && m_24g_addr[3] == 0xff)
+000A69 904C00            MOV      DPTR,#m_24g_addr
+000A6C E0                MOVX     A,@DPTR
+000A6D F4                CPL      A
+000A6E 7021              JNZ      ?C0019?KB_PROCESS
+000A70 A3                INC      DPTR
+000A71 E0                MOVX     A,@DPTR
+000A72 B4FF1C            CJNE     A,#0FFH,?C0019?KB_PROCESS
+000A75 A3                INC      DPTR
+000A76 E0                MOVX     A,@DPTR
+000A77 B4FF17            CJNE     A,#0FFH,?C0019?KB_PROCESS
+000A7A A3                INC      DPTR
+000A7B E0                MOVX     A,@DPTR
+000A7C B4FF12            CJNE     A,#0FFH,?C0019?KB_PROCESS
+   88: 			{
+   89: 				m_24g_addr[0] = 0x0f;
+000A7F 904C00            MOV      DPTR,#m_24g_addr
+000A82 740F              MOV      A,#0FH
+000A84 F0                MOVX     @DPTR,A
+   90: 				m_24g_addr[1] = 0x0f;
+000A85 A3                INC      DPTR
+000A86 F0                MOVX     @DPTR,A
+   91: 				m_24g_addr[2] = 0x0f;
+000A87 A3                INC      DPTR
+000A88 F0                MOVX     @DPTR,A
+   92: 				m_24g_addr[3] = 0x0f;
+000A89 A3                INC      DPTR
+000A8A F0                MOVX     @DPTR,A
+   93: 				fast_connect_flag = 1;
+000A8B 904E69            MOV      DPTR,#fast_connect_flag
+000A8E 7401              MOV      A,#01H
+000A90 F0                MOVX     @DPTR,A
+   94: 			}
+000A91         ?C0019?KB_PROCESS:
+   95: 				
+   96: 			IPC_TxControlCmd(IPC_CMD_START_24G);
+000A91 7F21              MOV      R7,#021H
+000A93 115F              ACALL    _IPC_TxControlCmd
+   97: 			
+   98: 			g_variable.g24_currentState = CHANGE_TO_24G_CONNECTING;
+000A95 904CC5            MOV      DPTR,#g_variable+06H
+000A98 7402              MOV      A,#02H
+000A9A F0                MOVX     @DPTR,A
+   99: 			g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000A9B E4                CLR      A
+000A9C A3                INC      DPTR
+000A9D F0                MOVX     @DPTR,A
+  100: 			g_variable.key_action = KEY_NONE;
+000A9E 904CED            MOV      DPTR,#g_variable+02EH
+000AA1 F0                MOVX     @DPTR,A
+  101: 		}
+  102: 		break;
+000AA2 22                RET      
+  103: 	case KEY_PAIRING_24G:
+000AA3         ?C0020?KB_PROCESS:
+  104: 		g_variable.recon_count = 0;
+000AA3 E4                CLR      A
+000AA4 904CF0            MOV      DPTR,#g_variable+031H
+000AA7 F0                MOVX     @DPTR,A
+  105: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+000AA8 9100              ACALL    YC_disconnect_all_link
+000AAA EF                MOV      A,R7
+000AAB 7005              JNZ      ?C0022?KB_PROCESS
+000AAD F111              ACALL    YC_cancel_reconnect
+000AAF EF                MOV      A,R7
+000AB0 6009              JZ       ?C0021?KB_PROCESS
+000AB2         ?C0022?KB_PROCESS:
+  106: 		{
+  107: 			g_variable.key_action = key_num;
+000AB2 904F29            MOV      DPTR,#key_num
+000AB5 E0                MOVX     A,@DPTR
+000AB6 904CED            MOV      DPTR,#g_variable+02EH
+000AB9 F0                MOVX     @DPTR,A
+  108: 		}
+000ABA 22                RET      
+000ABB         ?C0021?KB_PROCESS:
+  109: 		else
+  110: 		{
+  111: 			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+000ABB 904CC5            MOV      DPTR,#g_variable+06H
+000ABE E0                MOVX     A,@DPTR
+000ABF 6401              XRL      A,#01H
+000AC1 601D              JZ       ?C0024?KB_PROCESS
+  112: 			{
+  113: 				fast_connect_flag = 0;
+000AC3 E4                CLR      A
+000AC4 904E69            MOV      DPTR,#fast_connect_flag
+000AC7 F0                MOVX     @DPTR,A
+  114: 				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+000AC8 7F23              MOV      R7,#023H
+000ACA 115F              ACALL    _IPC_TxControlCmd
+  115: 				g_variable.g24_currentState = CHANGE_TO_24G_PAIRING;
+000ACC 904CC5            MOV      DPTR,#g_variable+06H
+000ACF 7401              MOV      A,#01H
+000AD1 F0                MOVX     @DPTR,A
+  116: 				g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000AD2 E4                CLR      A
+000AD3 A3                INC      DPTR
+000AD4 F0                MOVX     @DPTR,A
+  117: 				g_variable.pairing_g24_timeout = BT_PAIRING_TIME_OUT_2MIN;
+000AD5 904CEE            MOV      DPTR,#g_variable+02FH
+000AD8 74F0              MOV      A,#0F0H
+000ADA F0                MOVX     @DPTR,A
+  118: 				g_variable.pairing_timeout = 0;
+000ADB E4                CLR      A
+000ADC 904CE9            MOV      DPTR,#g_variable+02AH
+000ADF F0                MOVX     @DPTR,A
+  119: 			}
+000AE0         ?C0024?KB_PROCESS:
+  120: 			g_variable.key_action = KEY_NONE;
+000AE0 E4                CLR      A
+000AE1 904CED            MOV      DPTR,#g_variable+02EH
+000AE4 F0                MOVX     @DPTR,A
+  121: 		}
+  122: 		break;
+000AE5 22                RET      
+  123: 	default:
+000AE6         ?C0025?KB_PROCESS:
+  124: 		g_variable.key_action = KEY_NONE;
+000AE6 E4                CLR      A
+000AE7 904CED            MOV      DPTR,#g_variable+02EH
+000AEA F0                MOVX     @DPTR,A
+  125: 		break;
+  126: 	}
+  127: }
+000AEB 22                RET      
+----- FUNCTION _YC_key_action_handle (END) -------
+
+
+----- FUNCTION _GPIO_Setout (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+000AEC EF                MOV      A,R7
+000AED F4                CPL      A
+000AEE 600D              JZ       ?C0007?GPIO
+000AF0         ?C0006?GPIO:
+000AF0 7B01              MOV      R3,#01H
+000AF2 7A80              MOV      R2,#080H
+000AF4 7974              MOV      R1,#074H
+000AF6 A201              MOV      C,bit_val
+000AF8 9200              MOV      ?_gpioSetBit?BIT,C
+000AFA 123D29            LCALL    _gpioSetBit
+000AFD         ?C0007?GPIO:
+000AFD 22                RET      
+----- FUNCTION _GPIO_Setout (END) -------
+
+
+----- FUNCTION LED_handle (BEGIN) -----
+ FILE: 'led.c'
+   51: void LED_handle()
+   52: {
+   53: 	if (power_on_flag != 2)
+   54: 		return;
+000AFE 904DFE            MOV      DPTR,#power_on_flag
+000B01 E0                MOVX     A,@DPTR
+000B02 6402              XRL      A,#02H
+000B04 6002              JZ       $ + 4H
+000B06 61FF              AJMP     ?C0017?LED
+000B08         ?C0016?LED:
+   55: 
+   56: 	if(!g_variable.pairing_timeout && !g_variable.pairing_g24_timeout)
+000B08 904CE9            MOV      DPTR,#g_variable+02AH
+000B0B E0                MOVX     A,@DPTR
+000B0C 6002              JZ       $ + 4H
+000B0E 61FF              AJMP     ?C0017?LED
+000B10 904CEE            MOV      DPTR,#g_variable+02FH
+000B13 E0                MOVX     A,@DPTR
+000B14 6002              JZ       $ + 4H
+000B16 61FF              AJMP     ?C0017?LED
+   57: 	{
+   58: 		//low battery LED process
+   59: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+000B18 904CD5            MOV      DPTR,#g_variable+016H
+000B1B E0                MOVX     A,@DPTR
+000B1C B40204            CJNE     A,#02H,?C0019?LED
+   60: 		{
+   61: 			System_long_sleep();
+000B1F F1CF              ACALL    System_long_sleep
+   62: 		}
+000B21 802E              SJMP     ?C0020?LED
+000B23         ?C0019?LED:
+   63: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
+000B23 904CD5            MOV      DPTR,#g_variable+016H
+000B26 E0                MOVX     A,@DPTR
+000B27 B40114            CJNE     A,#01H,?C0021?LED
+   64: 		{
+   65: 			if (g_variable.battery_low_led_flash_flag == 0)
+000B2A 904CF7            MOV      DPTR,#g_variable+038H
+000B2D E0                MOVX     A,@DPTR
+000B2E 7021              JNZ      ?C0020?LED
+   66: 			{
+   67: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+000B30 904CE2            MOV      DPTR,#g_variable+023H
+000B33 740C              MOV      A,#0CH
+000B35 F0                MOVX     @DPTR,A
+   68: 				g_variable.battery_low_led_flash_flag = 1;
+000B36 904CF7            MOV      DPTR,#g_variable+038H
+000B39 7401              MOV      A,#01H
+000B3B F0                MOVX     @DPTR,A
+   69: 			}
+   70: 		}
+000B3C 8013              SJMP     ?C0020?LED
+000B3E         ?C0021?LED:
+   71: 		else
+   72: 		{
+   73: 			if (g_variable.battery_low_led_flash_flag == 1)
+000B3E 904CF7            MOV      DPTR,#g_variable+038H
+000B41 E0                MOVX     A,@DPTR
+000B42 B4010C            CJNE     A,#01H,?C0020?LED
+   74: 			{
+   75: 				g_variable.battery_low_led_flash_flag = 0;
+000B45 E4                CLR      A
+000B46 F0                MOVX     @DPTR,A
+   76: 				g_variable.battery_low_led_flash_interval = 0;
+000B47 904CE2            MOV      DPTR,#g_variable+023H
+000B4A F0                MOVX     @DPTR,A
+   77: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+000B4B C201              CLR      ?_GPIO_Setout?BIT
+000B4D 7F0F              MOV      R7,#0FH
+000B4F 51EC              ACALL    _GPIO_Setout
+   78: 			}
+   79: 		}
+000B51         ?C0020?LED:
+   80: 
+   81: 		//capslock  numlock  scrolllock LED process
+   82: 		if (YC_check_is_connected())
+000B51 12180E            LCALL    YC_check_is_connected
+000B54 EF                MOV      A,R7
+000B55 7002              JNZ      $ + 4H
+000B57 61DB              AJMP     ?C0025?LED
+   83: 		{
+   84: 			if(g_variable.sleepTimer < KB_NUM_CAPS_LED_ON_TIMER)
+000B59 C3                CLR      C
+000B5A 904CE4            MOV      DPTR,#g_variable+025H
+000B5D E0                MOVX     A,@DPTR
+000B5E 9478              SUBB     A,#078H
+000B60 904CE3            MOV      DPTR,#g_variable+024H
+000B63 E0                MOVX     A,@DPTR
+000B64 9400              SUBB     A,#00H
+000B66 504F              JNC      ?C0026?LED
+   85: 			{
+   86: 			   
+   87: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK && !g_variable.battery_low_led_flash_interval)
+000B68 904CB7            MOV      DPTR,#m_caps_num_lock
+000B6B E0                MOVX     A,@DPTR
+000B6C 30E00E            JNB      ACC.0,?C0027?LED
+000B6F 904CE2            MOV      DPTR,#g_variable+023H
+000B72 E0                MOVX     A,@DPTR
+000B73 7008              JNZ      ?C0027?LED
+   88: 				{
+   89: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
+000B75 D201              SETB     ?_GPIO_Setout?BIT
+000B77 7F0F              MOV      R7,#0FH
+000B79 51EC              ACALL    _GPIO_Setout
+   90: 				}
+000B7B 8012              SJMP     ?C0028?LED
+000B7D         ?C0027?LED:
+   91: 				else
+   92: 				{
+   93: 					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval){
+000B7D 904CE5            MOV      DPTR,#g_variable+026H
+000B80 E0                MOVX     A,@DPTR
+000B81 700C              JNZ      ?C0028?LED
+000B83 904CE2            MOV      DPTR,#g_variable+023H
+000B86 E0                MOVX     A,@DPTR
+000B87 7006              JNZ      ?C0028?LED
+   94: 						GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+000B89 C201              CLR      ?_GPIO_Setout?BIT
+000B8B 7F0F              MOV      R7,#0FH
+000B8D 51EC              ACALL    _GPIO_Setout
+   95: 					}
+   96: 				}
+000B8F         ?C0028?LED:
+   97: 				
+   98: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+000B8F 904CB7            MOV      DPTR,#m_caps_num_lock
+000B92 E0                MOVX     A,@DPTR
+000B93 30E108            JNB      ACC.1,?C0030?LED
+   99: 				{
+  100: 					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+000B96 D201              SETB     ?_GPIO_Setout?BIT
+000B98 7F10              MOV      R7,#010H
+000B9A 51EC              ACALL    _GPIO_Setout
+  101: 				}
+000B9C 8006              SJMP     ?C0031?LED
+000B9E         ?C0030?LED:
+  102: 				else 
+  103: 				{
+  104: 					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+000B9E C201              CLR      ?_GPIO_Setout?BIT
+000BA0 7F10              MOV      R7,#010H
+000BA2 51EC              ACALL    _GPIO_Setout
+  105: 				}	
+000BA4         ?C0031?LED:
+  106: 
+  107: 				
+  108: 				if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+000BA4 904CB7            MOV      DPTR,#m_caps_num_lock
+000BA7 E0                MOVX     A,@DPTR
+000BA8 30E206            JNB      ACC.2,?C0032?LED
+  109: 				{
+  110: 					GPIO_Setout(SCRLK_LED_GPIO, LED_ON);
+000BAB D201              SETB     ?_GPIO_Setout?BIT
+000BAD 7F1F              MOV      R7,#01FH
+000BAF 41EC              AJMP     _GPIO_Setout
+  111: 				}
+000BB1         ?C0032?LED:
+  112: 				else 
+  113: 				{
+  114: 					GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+000BB1 C201              CLR      ?_GPIO_Setout?BIT
+000BB3 7F1F              MOV      R7,#01FH
+000BB5 41EC              AJMP     _GPIO_Setout
+  115: 				}
+  116:                                     
+  117: 			}
+000BB7         ?C0026?LED:
+  118: 			else
+  119: 			{
+  120: 				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+000BB7 C201              CLR      ?_GPIO_Setout?BIT
+000BB9 7F10              MOV      R7,#010H
+000BBB 51EC              ACALL    _GPIO_Setout
+  121: 				GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+000BBD C201              CLR      ?_GPIO_Setout?BIT
+000BBF 7F1F              MOV      R7,#01FH
+000BC1 51EC              ACALL    _GPIO_Setout
+  122: 				if(!g_variable.battery_low_led_flash_interval && !g_variable.powerOn_timer){
+000BC3 904CE2            MOV      DPTR,#g_variable+023H
+000BC6 E0                MOVX     A,@DPTR
+000BC7 7036              JNZ      ?C0017?LED
+000BC9 904CE5            MOV      DPTR,#g_variable+026H
+000BCC E0                MOVX     A,@DPTR
+000BCD 7030              JNZ      ?C0017?LED
+  123: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+000BCF C201              CLR      ?_GPIO_Setout?BIT
+000BD1 7F0F              MOV      R7,#0FH
+000BD3 51EC              ACALL    _GPIO_Setout
+  124: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+000BD5 C201              CLR      ?_GPIO_Setout?BIT
+000BD7 7F0F              MOV      R7,#0FH
+000BD9 41EC              AJMP     _GPIO_Setout
+  125: 				}
+  126: 
+  127: 			}			
+  128: 		}
+000BDB         ?C0025?LED:
+  129: 		else
+  130: 		{
+  131: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+000BDB C201              CLR      ?_GPIO_Setout?BIT
+000BDD 7F10              MOV      R7,#010H
+000BDF 51EC              ACALL    _GPIO_Setout
+  132: 			GPIO_Setout(SCRLK_LED_GPIO, LED_OFF);
+000BE1 C201              CLR      ?_GPIO_Setout?BIT
+000BE3 7F1F              MOV      R7,#01FH
+000BE5 51EC              ACALL    _GPIO_Setout
+  133: 			if(!g_variable.battery_low_led_flash_interval && !g_variable.powerOn_timer){
+000BE7 904CE2            MOV      DPTR,#g_variable+023H
+000BEA E0                MOVX     A,@DPTR
+000BEB 7012              JNZ      ?C0017?LED
+000BED 904CE5            MOV      DPTR,#g_variable+026H
+000BF0 E0                MOVX     A,@DPTR
+000BF1 700C              JNZ      ?C0017?LED
+  134: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+000BF3 C201              CLR      ?_GPIO_Setout?BIT
+000BF5 7F0F              MOV      R7,#0FH
+000BF7 51EC              ACALL    _GPIO_Setout
+  135: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+000BF9 C201              CLR      ?_GPIO_Setout?BIT
+000BFB 7F0F              MOV      R7,#0FH
+000BFD 51EC              ACALL    _GPIO_Setout
+  136: 			}
+  137: 
+  138: 		}
+  139: 	}
+  140: }
+000BFF         ?C0017?LED:
+000BFF 22                RET      
+----- FUNCTION LED_handle (END) -------
+
+
+----- FUNCTION YC_disconnect_all_link (BEGIN) -----
+ FILE: 'bluetooth.c'
+  177: byte YC_disconnect_all_link()
+  178: {
+  179: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED 
+  180: 		||g_variable.br_currentState == CHANGE_TO_BR_CONNECTING)
+000C00 904CC9            MOV      DPTR,#g_variable+0AH
+000C03 E0                MOVX     A,@DPTR
+000C04 FF                MOV      R7,A
+000C05 6404              XRL      A,#04H
+000C07 6004              JZ       ?C0030?BLUETOOTH
+000C09 EF                MOV      A,R7
+000C0A B40307            CJNE     A,#03H,?C0029?BLUETOOTH
+000C0D         ?C0030?BLUETOOTH:
+  181: 	{
+  182: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+000C0D 7F04              MOV      R7,#04H
+000C0F 115F              ACALL    _IPC_TxControlCmd
+  183: 		return 1;
+000C11 7F01              MOV      R7,#01H
+000C13 22                RET      
+  184: 	}
+000C14         ?C0029?BLUETOOTH:
+  185: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED 
+000C14 904CC7            MOV      DPTR,#g_variable+08H
+000C17 E0                MOVX     A,@DPTR
+000C18 FF                MOV      R7,A
+000C19 6404              XRL      A,#04H
+000C1B 6004              JZ       ?C0033?BLUETOOTH
+000C1D EF                MOV      A,R7
+000C1E B40307            CJNE     A,#03H,?C0032?BLUETOOTH
+000C21         ?C0033?BLUETOOTH:
+  186: 		||g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTING)
+  187: 	{
+  188: 		IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+000C21 7F11              MOV      R7,#011H
+000C23 115F              ACALL    _IPC_TxControlCmd
+  189: 		return 1;
+000C25 7F01              MOV      R7,#01H
+000C27 22                RET      
+  190: 	}
+000C28         ?C0032?BLUETOOTH:
+  191: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+000C28 904CC5            MOV      DPTR,#g_variable+06H
+000C2B E0                MOVX     A,@DPTR
+000C2C FF                MOV      R7,A
+000C2D 6403              XRL      A,#03H
+000C2F 6004              JZ       ?C0035?BLUETOOTH
+000C31 EF                MOV      A,R7
+000C32 B40207            CJNE     A,#02H,?C0034?BLUETOOTH
+000C35         ?C0035?BLUETOOTH:
+  192: 		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+  193: 	{
+  194: 		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+000C35 7F22              MOV      R7,#022H
+000C37 115F              ACALL    _IPC_TxControlCmd
+  195: 		return 1;
+000C39 7F01              MOV      R7,#01H
+000C3B 22                RET      
+  196: 	}
+000C3C         ?C0034?BLUETOOTH:
+  197: 	return 0;
+000C3C 7F00              MOV      R7,#00H
+  198: }
+000C3E 22                RET      
+----- FUNCTION YC_disconnect_all_link (END) -------
+
+
+----- FUNCTION kb_button_press_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  654: void kb_button_press_timer500ms()
+  655: {
+  656: 	
+  657: //key status 
+  658: /*
+  659: 	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
+  660: 	{
+  661: 		if (g_variable.button_timer[0] < 250)
+  662: 			g_variable.button_timer[0]++;
+  663: 		if (g_variable.button_timer[0] == 2)
+  664: 		{
+  665: 			YC_key_action_handle(KEY_DISCOVERY);
+  666: 		}
+  667: 	}
+  668: 	else
+  669: 		g_variable.button_timer[0] = 0;
+  670: */		
+  671: 	
+  672: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+000C3F 904CCE            MOV      DPTR,#g_variable+0FH
+000C42 E0                MOVX     A,@DPTR
+000C43 30E13D            JNB      ACC.1,?C0114?SYS
+  673: 	{
+  674: 		if (g_variable.button_timer[1] < 250)
+000C46 904CD0            MOV      DPTR,#g_variable+011H
+000C49 E0                MOVX     A,@DPTR
+000C4A C3                CLR      C
+000C4B 94FA              SUBB     A,#0FAH
+000C4D 5003              JNC      ?C0115?SYS
+  675: 			g_variable.button_timer[1]++;
+000C4F E0                MOVX     A,@DPTR
+000C50 04                INC      A
+000C51 F0                MOVX     @DPTR,A
+000C52         ?C0115?SYS:
+  676: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+000C52 904CD0            MOV      DPTR,#g_variable+011H
+000C55 E0                MOVX     A,@DPTR
+000C56 64B4              XRL      A,#0B4H
+000C58 7036              JNZ      ?C0120?SYS
+  677: 		{
+  678: 			press_long_time_flag++;
+000C5A 904DF6            MOV      DPTR,#press_long_time_flag
+000C5D E0                MOVX     A,@DPTR
+000C5E 04                INC      A
+000C5F F0                MOVX     @DPTR,A
+  679: 			if(press_long_time_flag <= 2)
+000C60 E0                MOVX     A,@DPTR
+000C61 D3                SETB     C
+000C62 9402              SUBB     A,#02H
+000C64 5007              JNC      ?C0117?SYS
+  680: 			{
+  681: 				g_variable.button_timer[1] = 0;
+000C66 E4                CLR      A
+000C67 904CD0            MOV      DPTR,#g_variable+011H
+000C6A F0                MOVX     @DPTR,A
+  682: 			}
+000C6B 8023              SJMP     ?C0120?SYS
+000C6D         ?C0117?SYS:
+  683: 			else if(press_long_time_flag == 3)
+000C6D 904DF6            MOV      DPTR,#press_long_time_flag
+000C70 E0                MOVX     A,@DPTR
+000C71 B4031C            CJNE     A,#03H,?C0120?SYS
+  684: 			{
+  685: 				long_press_flag = 1;
+000C74 904DEF            MOV      DPTR,#long_press_flag
+000C77 7401              MOV      A,#01H
+000C79 F0                MOVX     @DPTR,A
+  686: 				g_variable.button_timer[1] = 0;
+000C7A E4                CLR      A
+000C7B 904CD0            MOV      DPTR,#g_variable+011H
+000C7E F0                MOVX     @DPTR,A
+  687: 				System_long_sleep();
+000C7F F1CF              ACALL    System_long_sleep
+  688: 			}
+  689: 		}
+  690: 	}
+000C81 800D              SJMP     ?C0120?SYS
+000C83         ?C0114?SYS:
+  691: 	else
+  692: 	{
+  693: 		press_long_time_flag = 0;
+000C83 E4                CLR      A
+000C84 904DF6            MOV      DPTR,#press_long_time_flag
+000C87 F0                MOVX     @DPTR,A
+  694: 		long_press_flag = 0;
+000C88 904DEF            MOV      DPTR,#long_press_flag
+000C8B F0                MOVX     @DPTR,A
+  695: 		g_variable.button_timer[1] = 0;
+000C8C 904CD0            MOV      DPTR,#g_variable+011H
+000C8F F0                MOVX     @DPTR,A
+  696: 	}
+000C90         ?C0120?SYS:
+  697: 		
+  698: 	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
+000C90 904CCE            MOV      DPTR,#g_variable+0FH
+000C93 E0                MOVX     A,@DPTR
+000C94 30E438            JNB      ACC.4,?C0121?SYS
+  699: 	{
+  700: 		g_variable.delay_enter_lpm_timer = 10;
+000C97 904CEA            MOV      DPTR,#g_variable+02BH
+000C9A 740A              MOV      A,#0AH
+000C9C F0                MOVX     @DPTR,A
+  701: 		if (g_variable.button_timer[2] < 250)
+000C9D 904CD1            MOV      DPTR,#g_variable+012H
+000CA0 E0                MOVX     A,@DPTR
+000CA1 C3                CLR      C
+000CA2 94FA              SUBB     A,#0FAH
+000CA4 5003              JNC      ?C0122?SYS
+  702: 			g_variable.button_timer[2]++;
+000CA6 E0                MOVX     A,@DPTR
+000CA7 04                INC      A
+000CA8 F0                MOVX     @DPTR,A
+000CA9         ?C0122?SYS:
+  703: 		if (g_variable.button_timer[2] == 6)
+000CA9 904CD1            MOV      DPTR,#g_variable+012H
+000CAC E0                MOVX     A,@DPTR
+000CAD 6406              XRL      A,#06H
+000CAF 7047              JNZ      ?C0126?SYS
+  704: 		{
+  705: 			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+000CB1 904CC3            MOV      DPTR,#g_variable+04H
+000CB4 E0                MOVX     A,@DPTR
+000CB5 FF                MOV      R7,A
+000CB6 6004              JZ       ?C0125?SYS
+000CB8 64FE              XRL      A,#0FEH
+000CBA 703C              JNZ      ?C0126?SYS
+000CBC         ?C0125?SYS:
+  706: 			{
+  707: 				g_variable.button_24G_rec_flag = 0;
+000CBC E4                CLR      A
+000CBD 904CCD            MOV      DPTR,#g_variable+0EH
+000CC0 F0                MOVX     @DPTR,A
+  708: 				YC_disconnect_all_link();
+000CC1 9100              ACALL    YC_disconnect_all_link
+  709: 				LED_all_shutdown();
+000CC3 D1D8              ACALL    LED_all_shutdown
+  710: 				Delay1ms(10);
+000CC5 7F0A              MOV      R7,#0AH
+000CC7 D1C0              ACALL    _Delay1ms
+  711: 				YC_key_action_handle(KEY_PAIRING_24G);
+000CC9 7F0A              MOV      R7,#0AH
+000CCB 311C              ACALL    _YC_key_action_handle
+  712: 			}
+  713: 		}
+  714: 	}
+000CCD 8029              SJMP     ?C0126?SYS
+000CCF         ?C0121?SYS:
+  715: 	else
+  716: 	{
+  717: 		if(g_variable.button_24G_rec_flag)
+000CCF 904CCD            MOV      DPTR,#g_variable+0EH
+000CD2 E0                MOVX     A,@DPTR
+000CD3 601E              JZ       ?C0127?SYS
+  718: 		{
+  719: 			g_variable.button_24G_rec_flag = 0;
+000CD5 E4                CLR      A
+000CD6 F0                MOVX     @DPTR,A
+  720: 			YC_key_action_handle(KEY_STOP_DISCOVERY);
+000CD7 7F0D              MOV      R7,#0DH
+000CD9 311C              ACALL    _YC_key_action_handle
+  721: 			g_variable.release_data = 1;
+000CDB 904CEB            MOV      DPTR,#g_variable+02CH
+000CDE 7401              MOV      A,#01H
+000CE0 F0                MOVX     @DPTR,A
+  722: 			g_variable.last_device_num = g_variable.current_device_num;
+000CE1 904CC3            MOV      DPTR,#g_variable+04H
+000CE4 E0                MOVX     A,@DPTR
+000CE5 904CC0            MOV      DPTR,#g_variable+01H
+000CE8 F0                MOVX     @DPTR,A
+  723: 			g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_NORMAL;
+000CE9 904CBF            MOV      DPTR,#g_variable
+000CEC 7401              MOV      A,#01H
+000CEE F0                MOVX     @DPTR,A
+  724: 			YC_update_eeprom_data();
+000CEF B17B              ACALL    YC_update_eeprom_data
+  725: 			System_Reset_Connect();
+000CF1 F1D8              ACALL    System_Reset_Connect
+  726: 		}
+000CF3         ?C0127?SYS:
+  727: 		g_variable.button_timer[2] = 0;
+000CF3 E4                CLR      A
+000CF4 904CD1            MOV      DPTR,#g_variable+012H
+000CF7 F0                MOVX     @DPTR,A
+  728: 	}
+000CF8         ?C0126?SYS:
+  729: 
+  730: 	
+  731: 	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
+000CF8 904CCE            MOV      DPTR,#g_variable+0FH
+000CFB E0                MOVX     A,@DPTR
+000CFC 30E346            JNB      ACC.3,?C0128?SYS
+  732: 	{
+  733: 		g_variable.delay_enter_lpm_timer = 10;
+000CFF 904CEA            MOV      DPTR,#g_variable+02BH
+000D02 740A              MOV      A,#0AH
+000D04 F0                MOVX     @DPTR,A
+  734: 		if (g_variable.button_timer[3] < 250)
+000D05 904CD2            MOV      DPTR,#g_variable+013H
+000D08 E0                MOVX     A,@DPTR
+000D09 C3                CLR      C
+000D0A 94FA              SUBB     A,#0FAH
+000D0C 5003              JNC      ?C0129?SYS
+  735: 			g_variable.button_timer[3]++;
+000D0E E0                MOVX     A,@DPTR
+000D0F 04                INC      A
+000D10 F0                MOVX     @DPTR,A
+000D11         ?C0129?SYS:
+  736: 		if (g_variable.button_timer[3] == 6)
+000D11 904CD2            MOV      DPTR,#g_variable+013H
+000D14 E0                MOVX     A,@DPTR
+000D15 6406              XRL      A,#06H
+000D17 7061              JNZ      ?C0134?SYS
+  737: 		{
+  738: 			//do discoverable
+  739: 			g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+000D19 904CE9            MOV      DPTR,#g_variable+02AH
+000D1C 74F0              MOV      A,#0F0H
+000D1E F0                MOVX     @DPTR,A
+  740: 			g_variable.pairing_g24_timeout = 0;
+000D1F E4                CLR      A
+000D20 904CEE            MOV      DPTR,#g_variable+02FH
+000D23 F0                MOVX     @DPTR,A
+  741: 			YC_key_action_handle(KEY_DISCOVERY);
+000D24 7F05              MOV      R7,#05H
+000D26 311C              ACALL    _YC_key_action_handle
+  742: 			LED_all_shutdown();
+000D28 D1D8              ACALL    LED_all_shutdown
+  743: 			g_variable.button_reconnect_flag = 0;
+000D2A E4                CLR      A
+000D2B 904CCC            MOV      DPTR,#g_variable+0DH
+000D2E F0                MOVX     @DPTR,A
+  744: 			g_variable.release_data = 1;
+000D2F 904CEB            MOV      DPTR,#g_variable+02CH
+000D32 04                INC      A
+000D33 F0                MOVX     @DPTR,A
+  745: 			g_variable.temp_device_num = g_variable.last_device_num;
+000D34 904CC0            MOV      DPTR,#g_variable+01H
+000D37 E0                MOVX     A,@DPTR
+000D38 904CC4            MOV      DPTR,#g_variable+05H
+000D3B F0                MOVX     @DPTR,A
+  746: 			g_variable.last_device_num = g_variable.current_device_num;
+000D3C 904CC3            MOV      DPTR,#g_variable+04H
+000D3F E0                MOVX     A,@DPTR
+000D40 904CC0            MOV      DPTR,#g_variable+01H
+000D43 F0                MOVX     @DPTR,A
+  747: 		}
+  748: 	}
+000D44 22                RET      
+000D45         ?C0128?SYS:
+  749: 	else
+  750: 	{
+  751: 		if (g_variable.button_reconnect_flag)
+000D45 904CCC            MOV      DPTR,#g_variable+0DH
+000D48 E0                MOVX     A,@DPTR
+000D49 602A              JZ       ?C0132?SYS
+  752: 		{
+  753: 			g_variable.button_reconnect_flag = 0;
+000D4B E4                CLR      A
+000D4C F0                MOVX     @DPTR,A
+  754: 
+  755: 			if(g_variable.last_device_num !=g_variable.current_device_num)		//switch device,
+000D4D 904CC3            MOV      DPTR,#g_variable+04H
+000D50 E0                MOVX     A,@DPTR
+000D51 FF                MOV      R7,A
+000D52 904CC0            MOV      DPTR,#g_variable+01H
+000D55 E0                MOVX     A,@DPTR
+000D56 6F                XRL      A,R7
+000D57 601C              JZ       ?C0132?SYS
+  756: 			{
+  757: 				g_variable.release_data = 1;
+000D59 904CEB            MOV      DPTR,#g_variable+02CH
+000D5C 7401              MOV      A,#01H
+000D5E F0                MOVX     @DPTR,A
+  758: 				LED_all_shutdown();
+000D5F D1D8              ACALL    LED_all_shutdown
+  759: 				g_variable.last_device_num = g_variable.current_device_num;
+000D61 904CC3            MOV      DPTR,#g_variable+04H
+000D64 E0                MOVX     A,@DPTR
+000D65 904CC0            MOV      DPTR,#g_variable+01H
+000D68 F0                MOVX     @DPTR,A
+  760: 				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_NORMAL;
+000D69 904CBF            MOV      DPTR,#g_variable
+000D6C 7401              MOV      A,#01H
+000D6E F0                MOVX     @DPTR,A
+  761: 				
+  762: 				YC_disconnect_all_link();
+000D6F 9100              ACALL    YC_disconnect_all_link
+  763: 				YC_update_eeprom_data();
+000D71 B17B              ACALL    YC_update_eeprom_data
+  764: 				System_Reset_Connect();
+000D73 F1D8              ACALL    System_Reset_Connect
+  765: 			}
+  766: 		}
+000D75         ?C0132?SYS:
+  767: 		g_variable.button_timer[3] = 0;
+000D75 E4                CLR      A
+000D76 904CD2            MOV      DPTR,#g_variable+013H
+000D79 F0                MOVX     @DPTR,A
+  768: 	}
+  769: 
+  770: /*
+  771: 	if (g_variable.button_flag & KEY_FLAG_FN_SYSTEM_MODE_BUTTON)
+  772: 	{
+  773: 		if (g_variable.button_timer[0] < 250)
+  774: 			g_variable.button_timer[0]++;
+  775: 		if (g_variable.button_timer[0] == 6)
+  776: 		{
+  777: 			if(key_value_temp == HID_KEY_I)
+  778: 			{
+  779: 				g_variable.system_mode = OSMODE_IOS;
+  780: 			}
+  781: 			else if(key_value_temp == HID_KEY_O)
+  782: 			{
+  783: 				g_variable.system_mode = OSMODE_MAC;
+  784: 
+  785: 			}
+  786: 			else if(key_value_temp == HID_KEY_U)
+  787: 			{
+  788: 				g_variable.system_mode = OSMODE_WINDOWS;
+  789: 
+  790: 			}
+  791: 			g_variable.powerOn_timer = 10;
+  792: 			if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+  793: 			{
+  794: 				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+  795: 			}
+  796: 			else	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+  797: 			{
+  798: 				bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+  799: 				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+  800: 			}
+  801: 		}
+  802: 	}
+  803: 	else
+  804: 	{
+  805: 		g_variable.button_timer[0] = 0;
+  806: 	}		
+  807:        */
+  808: }
+000D7A         ?C0134?SYS:
+000D7A 22                RET      
+----- FUNCTION kb_button_press_timer500ms (END) -------
+
+
+----- FUNCTION YC_update_eeprom_data (BEGIN) -----
+ FILE: 'bluetooth.c'
+  298: void YC_update_eeprom_data()
+  299: {
+  300: 	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
+  301: 	{
+000D7B 904CBF            MOV      DPTR,#g_variable
+000D7E E0                MOVX     A,@DPTR
+000D7F FF                MOV      R7,A
+000D80 7002              JNZ      $ + 4H
+000D82 C111              AJMP     ?C0059?BLUETOOTH
+  302: 		if (g_variable.update_eeprom_flag != EEPROM_STORE_TYPE_NORMAL)
+  303: 			Delay1ms(200);
+000D84 6401              XRL      A,#01H
+000D86 6004              JZ       ?C0055?BLUETOOTH
+  304: 		GPIO_Setout(EEPROM_WP_GPIO,0);
+000D88 7FC8              MOV      R7,#0C8H
+000D8A D1C0              ACALL    _Delay1ms
+000D8C         ?C0055?BLUETOOTH:
+  305: 		if (g_variable.update_eeprom_flag == EEPROM_STORE_TYPE_G24)
+000D8C C201              CLR      ?_GPIO_Setout?BIT
+000D8E 7FFF              MOV      R7,#0FFH
+000D90 51EC              ACALL    _GPIO_Setout
+  306: 		{
+000D92 904CBF            MOV      DPTR,#g_variable
+000D95 E0                MOVX     A,@DPTR
+000D96 6402              XRL      A,#02H
+000D98 7031              JNZ      ?C0056?BLUETOOTH
+  307: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+  308: 			IIC_WriteBlock(EEPROM_RECON_INFO_G24_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+000D9A 7B01              MOV      R3,#01H
+000D9C 7A4C              MOV      R2,#HIGH m_24g_addr
+000D9E 7900              MOV      R1,#LOW m_24g_addr
+000DA0 7D04              MOV      R5,#04H
+000DA2 FC                MOV      R4,A
+000DA3 7F52              MOV      R7,#052H
+000DA5 7E7F              MOV      R6,#07FH
+000DA7 D112              ACALL    _IIC_WriteBlock
+  309: 			IIC_WriteBlock(EEPROM_RECON_INFO_G24_FN_LOCK ,1 ,(byte *)&fn_lock_flag);
+000DA9 7B01              MOV      R3,#01H
+000DAB 7A4C              MOV      R2,#HIGH g_variable+02H
+000DAD 79C1              MOV      R1,#LOW g_variable+02H
+000DAF 7D01              MOV      R5,#01H
+000DB1 7C00              MOV      R4,#00H
+000DB3 7F57              MOV      R7,#057H
+000DB5 7E7F              MOV      R6,#07FH
+000DB7 D112              ACALL    _IIC_WriteBlock
+  310: 		}	
+000DB9 7B01              MOV      R3,#01H
+000DBB 7A4D              MOV      R2,#HIGH fn_lock_flag
+000DBD 79FA              MOV      R1,#LOW fn_lock_flag
+000DBF 7D01              MOV      R5,#01H
+000DC1 7C00              MOV      R4,#00H
+000DC3 7F56              MOV      R7,#056H
+000DC5 7E7F              MOV      R6,#07FH
+000DC7 D112              ACALL    _IIC_WriteBlock
+  311: 		else if (g_variable.update_eeprom_flag == EEPROM_STORE_TYPE_BT)
+000DC9 8017              SJMP     ?C0057?BLUETOOTH
+000DCB         ?C0056?BLUETOOTH:
+  312: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,(sizeof(BD_KEY_RECORD)*3) , (byte *)&bd_key_record_list);
+000DCB 904CBF            MOV      DPTR,#g_variable
+000DCE E0                MOVX     A,@DPTR
+000DCF B40310            CJNE     A,#03H,?C0057?BLUETOOTH
+  313: 		
+000DD2 7B01              MOV      R3,#01H
+000DD4 7A4E              MOV      R2,#HIGH bd_key_record_list
+000DD6 7902              MOV      R1,#LOW bd_key_record_list
+000DD8 7D5D              MOV      R5,#05DH
+000DDA 7C00              MOV      R4,#00H
+000DDC 7F60              MOV      R7,#060H
+000DDE 7E7F              MOV      R6,#07FH
+000DE0 D112              ACALL    _IIC_WriteBlock
+000DE2         ?C0057?BLUETOOTH:
+  314: 		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,1 ,(byte *)&g_variable.last_device_num);
+000DE2 7B01              MOV      R3,#01H
+000DE4 7A4C              MOV      R2,#HIGH g_variable+01H
+000DE6 79C0              MOV      R1,#LOW g_variable+01H
+000DE8 7D01              MOV      R5,#01H
+000DEA 7C00              MOV      R4,#00H
+000DEC 7FBD              MOV      R7,#0BDH
+000DEE 7E7F              MOV      R6,#07FH
+000DF0 D112              ACALL    _IIC_WriteBlock
+  315: 		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+000DF2 7B01              MOV      R3,#01H
+000DF4 7A4C              MOV      R2,#HIGH g_variable+033H
+000DF6 79F2              MOV      R1,#LOW g_variable+033H
+000DF8 7D02              MOV      R5,#02H
+000DFA 7C00              MOV      R4,#00H
+000DFC 7FBE              MOV      R7,#0BEH
+000DFE 7E7F              MOV      R6,#07FH
+000E00 D112              ACALL    _IIC_WriteBlock
+  316: 
+  317: 		GPIO_Setout(EEPROM_WP_GPIO,1);
+000E02 D201              SETB     ?_GPIO_Setout?BIT
+000E04 7FFF              MOV      R7,#0FFH
+000E06 51EC              ACALL    _GPIO_Setout
+  318: 		Delay1ms(10);
+000E08 7F0A              MOV      R7,#0AH
+000E0A D1C0              ACALL    _Delay1ms
+  319: 		g_variable.update_eeprom_flag = 0;
+000E0C E4                CLR      A
+000E0D 904CBF            MOV      DPTR,#g_variable
+000E10 F0                MOVX     @DPTR,A
+  320: 	}
+  321: }
+000E11         ?C0059?BLUETOOTH:
+000E11 22                RET      
+----- FUNCTION YC_update_eeprom_data (END) -------
+
+
+----- FUNCTION _IIC_WriteBlock (BEGIN) -----
+000E12 904EB8            MOV      DPTR,#addr
+000E15 EE                MOV      A,R6
+000E16 F0                MOVX     @DPTR,A
+000E17 A3                INC      DPTR
+000E18 EF                MOV      A,R7
+000E19 F0                MOVX     @DPTR,A
+000E1A A3                INC      DPTR
+000E1B EC                MOV      A,R4
+000E1C F0                MOVX     @DPTR,A
+000E1D A3                INC      DPTR
+000E1E ED                MOV      A,R5
+000E1F F0                MOVX     @DPTR,A
+000E20 A3                INC      DPTR
+000E21 EB                MOV      A,R3
+000E22 F0                MOVX     @DPTR,A
+000E23 A3                INC      DPTR
+000E24 EA                MOV      A,R2
+000E25 F0                MOVX     @DPTR,A
+000E26 A3                INC      DPTR
+000E27 E9                MOV      A,R1
+000E28 F0                MOVX     @DPTR,A
+000E29         ?C0007?IIC:
+000E29 904EBA            MOV      DPTR,#len
+000E2C E0                MOVX     A,@DPTR
+000E2D 7002              JNZ      ?C0012?IIC
+000E2F A3                INC      DPTR
+000E30 E0                MOVX     A,@DPTR
+000E31         ?C0012?IIC:
+000E31 7002              JNZ      $ + 4H
+000E33 C1BF              AJMP     ?C0011?IIC
+000E35 904EB8            MOV      DPTR,#addr
+000E38 E0                MOVX     A,@DPTR
+000E39 FE                MOV      R6,A
+000E3A A3                INC      DPTR
+000E3B E0                MOVX     A,@DPTR
+000E3C FF                MOV      R7,A
+000E3D 440F              ORL      A,#0FH
+000E3F 2401              ADD      A,#01H
+000E41 FD                MOV      R5,A
+000E42 E4                CLR      A
+000E43 3E                ADDC     A,R6
+000E44 FC                MOV      R4,A
+;---- Variable 'cris' assigned to Register 'R4/R5' ----
+000E45 C3                CLR      C
+000E46 ED                MOV      A,R5
+000E47 9F                SUBB     A,R7
+000E48 FF                MOV      R7,A
+000E49 EC                MOV      A,R4
+000E4A 9E                SUBB     A,R6
+000E4B FE                MOV      R6,A
+000E4C 904EBF            MOV      DPTR,#curr_len
+000E4F F0                MOVX     @DPTR,A
+000E50 A3                INC      DPTR
+000E51 EF                MOV      A,R7
+000E52 F0                MOVX     @DPTR,A
+000E53 904EBA            MOV      DPTR,#len
+000E56 E0                MOVX     A,@DPTR
+000E57 FC                MOV      R4,A
+000E58 A3                INC      DPTR
+000E59 E0                MOVX     A,@DPTR
+000E5A FD                MOV      R5,A
+000E5B D3                SETB     C
+000E5C 9F                SUBB     A,R7
+000E5D EC                MOV      A,R4
+000E5E 9E                SUBB     A,R6
+000E5F 400A              JC       ?C0009?IIC
+000E61 904EBF            MOV      DPTR,#curr_len
+000E64 E0                MOVX     A,@DPTR
+000E65 FE                MOV      R6,A
+000E66 A3                INC      DPTR
+000E67 E0                MOVX     A,@DPTR
+000E68 FF                MOV      R7,A
+000E69 8004              SJMP     ?C0010?IIC
+000E6B         ?C0009?IIC:
+000E6B AE04              MOV      R6,AR4
+000E6D AF05              MOV      R7,AR5
+000E6F         ?C0010?IIC:
+000E6F 904EBF            MOV      DPTR,#curr_len
+000E72 EE                MOV      A,R6
+000E73 F0                MOVX     @DPTR,A
+000E74 FC                MOV      R4,A
+000E75 A3                INC      DPTR
+000E76 EF                MOV      A,R7
+000E77 F0                MOVX     @DPTR,A
+000E78 FD                MOV      R5,A
+000E79 C3                CLR      C
+000E7A 904EBB            MOV      DPTR,#len+01H
+000E7D E0                MOVX     A,@DPTR
+000E7E 9D                SUBB     A,R5
+000E7F F0                MOVX     @DPTR,A
+000E80 904EBA            MOV      DPTR,#len
+000E83 E0                MOVX     A,@DPTR
+000E84 9C                SUBB     A,R4
+000E85 F0                MOVX     @DPTR,A
+000E86 904EB8            MOV      DPTR,#addr
+000E89 E0                MOVX     A,@DPTR
+000E8A FE                MOV      R6,A
+000E8B A3                INC      DPTR
+000E8C E0                MOVX     A,@DPTR
+000E8D FF                MOV      R7,A
+000E8E 904EBC            MOV      DPTR,#pbuff
+000E91 E0                MOVX     A,@DPTR
+000E92 FB                MOV      R3,A
+000E93 A3                INC      DPTR
+000E94 E0                MOVX     A,@DPTR
+000E95 FA                MOV      R2,A
+000E96 A3                INC      DPTR
+000E97 E0                MOVX     A,@DPTR
+000E98 F9                MOV      R1,A
+000E99 123C8E            LCALL    _IIC_write
+000E9C 7F0A              MOV      R7,#0AH
+000E9E D1C0              ACALL    _Delay1ms
+000EA0 904EBF            MOV      DPTR,#curr_len
+000EA3 E0                MOVX     A,@DPTR
+000EA4 FE                MOV      R6,A
+000EA5 A3                INC      DPTR
+000EA6 E0                MOVX     A,@DPTR
+000EA7 FF                MOV      R7,A
+000EA8 904EBD            MOV      DPTR,#pbuff+01H
+000EAB EE                MOV      A,R6
+000EAC 8FF0              MOV      B,R7
+000EAE 12040E            LCALL    ?C?IILDX
+000EB1 904EB9            MOV      DPTR,#addr+01H
+000EB4 E0                MOVX     A,@DPTR
+000EB5 2F                ADD      A,R7
+000EB6 F0                MOVX     @DPTR,A
+000EB7 904EB8            MOV      DPTR,#addr
+000EBA E0                MOVX     A,@DPTR
+000EBB 3E                ADDC     A,R6
+000EBC F0                MOVX     @DPTR,A
+000EBD C129              AJMP     ?C0007?IIC
+000EBF         ?C0011?IIC:
+000EBF 22                RET      
+----- FUNCTION _IIC_WriteBlock (END) -------
+
+
+----- FUNCTION _Delay1ms (BEGIN) -----
+;---- Variable 'Time' assigned to Register 'R7' ----
+000EC0         ?C0014?UTILITIES:
+000EC0 EF                MOV      A,R7
+000EC1 D3                SETB     C
+000EC2 9400              SUBB     A,#00H
+000EC4 4011              JC       ?C0020?UTILITIES
+;---- Variable 'j' assigned to Register 'R4/R5' ----
+000EC6 E4                CLR      A
+000EC7 FD                MOV      R5,A
+000EC8 FC                MOV      R4,A
+000EC9         ?C0017?UTILITIES:
+000EC9 0D                INC      R5
+000ECA BD0001            CJNE     R5,#00H,?C0028?UTILITIES
+000ECD 0C                INC      R4
+000ECE         ?C0028?UTILITIES:
+000ECE BC04F8            CJNE     R4,#04H,?C0017?UTILITIES
+000ED1 BDA6F5            CJNE     R5,#0A6H,?C0017?UTILITIES
+000ED4         ?C0016?UTILITIES:
+000ED4 1F                DEC      R7
+000ED5 80E9              SJMP     ?C0014?UTILITIES
+000ED7         ?C0020?UTILITIES:
+000ED7 22                RET      
+----- FUNCTION _Delay1ms (END) -------
+
+
+----- FUNCTION LED_all_shutdown (BEGIN) -----
+ FILE: 'led.c'
+    4: void LED_all_shutdown()
+    5: {
+    6: 	GPIO_SetOutput(NUM_LOCK_LED_GPIO,LED_OFF);
+    7: 	GPIO_SetOutput(CAPS_LED_GPIO,LED_OFF);	
+000ED8 C206              CLR      ?_GPIO_SetOutput?BIT
+000EDA 7F0F              MOV      R7,#0FH
+000EDC D1F4              ACALL    _GPIO_SetOutput
+    8: 	GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
+000EDE C206              CLR      ?_GPIO_SetOutput?BIT
+000EE0 7F10              MOV      R7,#010H
+000EE2 D1F4              ACALL    _GPIO_SetOutput
+    9: 	GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
+000EE4 C206              CLR      ?_GPIO_SetOutput?BIT
+000EE6 7F0F              MOV      R7,#0FH
+000EE8 D1F4              ACALL    _GPIO_SetOutput
+   10: 	GPIO_SetOutput(SCRLK_LED_GPIO,LED_OFF);
+000EEA C206              CLR      ?_GPIO_SetOutput?BIT
+000EEC 7F0F              MOV      R7,#0FH
+000EEE D1F4              ACALL    _GPIO_SetOutput
+   11: }
+000EF0 C206              CLR      ?_GPIO_SetOutput?BIT
+000EF2 7F1F              MOV      R7,#01FH
+;----                  JMP      _GPIO_SetOutput
+----- FUNCTION LED_all_shutdown (END) -------
+
+
+----- FUNCTION _GPIO_SetOutput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+000EF4 AC07              MOV      R4,AR7
+000EF6 EC                MOV      A,R4
+000EF7 F4                CPL      A
+000EF8 6016              JZ       ?C0017?GPIO
+000EFA         ?C0016?GPIO:
+000EFA AF04              MOV      R7,AR4
+000EFC D204              SETB     ?_GPIO_Setoe?BIT
+000EFE 123DCA            LCALL    _GPIO_Setoe
+000F01 AF04              MOV      R7,AR4
+000F03 A206              MOV      C,st
+000F05 9201              MOV      ?_GPIO_Setout?BIT,C
+000F07 51EC              ACALL    _GPIO_Setout
+000F09 AF04              MOV      R7,AR4
+000F0B C202              CLR      ?_GPIO_SetPu?BIT
+000F0D 123D8A            LCALL    _GPIO_SetPu
+000F10         ?C0017?GPIO:
+000F10 22                RET      
+----- FUNCTION _GPIO_SetOutput (END) -------
+
+
+----- FUNCTION YC_cancel_reconnect (BEGIN) -----
+ FILE: 'bluetooth.c'
+  152: byte YC_cancel_reconnect()
+  153: {
+  154: 	if (g_variable.br_currentState == CHANGE_TO_BR_RECONNECT)
+  155: 	{
+000F11 904CC9            MOV      DPTR,#g_variable+0AH
+000F14 E0                MOVX     A,@DPTR
+000F15 B40207            CJNE     A,#02H,?C0025?BLUETOOTH
+  156: 		IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+  157: 		return 1;
+000F18 7F1E              MOV      R7,#01EH
+000F1A 115F              ACALL    _IPC_TxControlCmd
+  158: 	}
+000F1C 7F01              MOV      R7,#01H
+000F1E 22                RET      
+  159: 
+000F1F         ?C0025?BLUETOOTH:
+  160: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_DIRECT_ADV)
+000F1F 904CC7            MOV      DPTR,#g_variable+08H
+000F22 E0                MOVX     A,@DPTR
+000F23 B40207            CJNE     A,#02H,?C0027?BLUETOOTH
+  161: 	{
+  162: 		//stop adv
+  163: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+000F26 7F0E              MOV      R7,#0EH
+000F28 115F              ACALL    _IPC_TxControlCmd
+  164: 		return 1;
+000F2A 7F01              MOV      R7,#01H
+000F2C 22                RET      
+  165: 	}
+000F2D         ?C0027?BLUETOOTH:
+  166: 	return 0;
+000F2D 7F00              MOV      R7,#00H
+  167: }
+000F2F 22                RET      
+----- FUNCTION YC_cancel_reconnect (END) -------
+
+
+----- FUNCTION YC_System_Main (BEGIN) -----
+ FILE: 'sys.c'
+ 1010: void YC_System_Main(void)
+ 1011: {
+ 1012: 	kb_cb_init();
+ 1013: 	while(1) {
+000F30 12367B            LCALL    kb_cb_init
+000F33         ?C0177?SYS:
+ 1014: 		IPC_DealSingleStep();
+ 1015: 		kb_need_keyscan();
+000F33 123A28            LCALL    IPC_DealSingleStep
+ 1016: 		YC_update_eeprom_data();
+000F36 121F53            LCALL    kb_need_keyscan
+ 1017: 		LED_handle();
+000F39 B17B              ACALL    YC_update_eeprom_data
+ 1018: 
+000F3B 51FE              ACALL    LED_handle
+ 1019: #ifdef PC_SLEEP_STATUS_GET		
+ 1020: 		if(m_pc_sleep_flag)
+000F3D 904D7D            MOV      DPTR,#m_pc_sleep_flag
+000F40 E0                MOVX     A,@DPTR
+000F41 6003              JZ       ?C0179?SYS
+ 1021: 		{
+ 1022: 			System_G24_long_lpm();
+000F43 121BB9            LCALL    System_G24_long_lpm
+ 1023: 		}
+000F46         ?C0179?SYS:
+ 1024: #endif		
+ 1025: 		switch (current_task) {
+000F46 900B7E            MOV      DPTR,#current_task
+000F49 E0                MOVX     A,@DPTR
+000F4A 14                DEC      A
+000F4B 600D              JZ       ?C0184?SYS
+000F4D 24FE              ADD      A,#0FEH
+000F4F 70E2              JNZ      ?C0177?SYS
+ 1026: 		case FIX_ENTER_HIBERNATE:
+000F51         ?C0181?SYS:
+ 1027: 			KS_Unistall();
+000F51 1230BA            LCALL    KS_Unistall
+ 1028: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+ 1029: 			LED_all_shutdown();
+000F54 D1D8              ACALL    LED_all_shutdown
+ 1030: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+000F56 F195              ACALL    IPC_WaitLpm
+000F58         ?C0182?SYS:
+ 1031: 			while(1);
+000F58 80FE              SJMP     ?C0182?SYS
+ 1032: 			break;
+ 1033: 			
+ 1034: 		case FIX_ENTER_LPM:
+000F5A         ?C0184?SYS:
+ 1035: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer  ||control_key_flag || fn
+>> _flag ||g_variable.one_key_press_wait_release_timer
+000F5A 904CEA            MOV      DPTR,#g_variable+02BH
+000F5D E0                MOVX     A,@DPTR
+000F5E 701E              JNZ      ?C0186?SYS
+000F60 904CEC            MOV      DPTR,#g_variable+02DH
+000F63 E0                MOVX     A,@DPTR
+000F64 7018              JNZ      ?C0186?SYS
+000F66 904CE5            MOV      DPTR,#g_variable+026H
+000F69 E0                MOVX     A,@DPTR
+000F6A 7012              JNZ      ?C0186?SYS
+000F6C 904DE9            MOV      DPTR,#control_key_flag
+000F6F E0                MOVX     A,@DPTR
+000F70 700C              JNZ      ?C0186?SYS
+000F72 904DF5            MOV      DPTR,#fn_flag
+000F75 E0                MOVX     A,@DPTR
+000F76 7006              JNZ      ?C0186?SYS
+000F78 904CF8            MOV      DPTR,#g_variable+039H
+000F7B E0                MOVX     A,@DPTR
+000F7C 6005              JZ       ?C0185?SYS
+000F7E         ?C0186?SYS:
+ 1036: 			) 
+ 1037: 			{
+ 1038: 				IPC_AbandonLpm();
+000F7E 123C37            LCALL    IPC_AbandonLpm
+ 1039: 				break;
+000F81 80B0              SJMP     ?C0177?SYS
+ 1040: 			}
+000F83         ?C0185?SYS:
+ 1041: 			else
+ 1042: 			{
+ 1043: 				KS_Unistall();
+000F83 1230BA            LCALL    KS_Unistall
+ 1044: 				if(g_variable.g24_long_sleep_flag)
+000F86 904D01            MOV      DPTR,#g_variable+042H
+000F89 E0                MOVX     A,@DPTR
+000F8A 6002              JZ       ?C0188?SYS
+ 1045: 					LED_all_shutdown();				
+000F8C D1D8              ACALL    LED_all_shutdown
+000F8E         ?C0188?SYS:
+ 1046: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+000F8E F195              ACALL    IPC_WaitLpm
+ 1047: 				break;
+000F90 80A1              SJMP     ?C0177?SYS
+ 1048: 			}
+ 1049: 		}
+ 1050: 	}
+000F92 809F              SJMP     ?C0177?SYS
+000F94 22                RET      
+----- FUNCTION YC_System_Main (END) -------
+
+
+----- FUNCTION IPC_WaitLpm (BEGIN) -----
+000F95 E4                CLR      A
+000F96 900B7F            MOV      DPTR,#lpm_flag
+000F99 F0                MOVX     @DPTR,A
+000F9A 900B7E            MOV      DPTR,#current_task
+000F9D F0                MOVX     @DPTR,A
+000F9E 7F01              MOV      R7,#01H
+000FA0 C1C0              AJMP     _Delay1ms
+----- FUNCTION IPC_WaitLpm (END) -------
+
+
+----- FUNCTION LED_device_poweron (BEGIN) -----
+ FILE: 'led.c'
+   14: void LED_device_poweron()
+   15: {
+   16:     #if 1
+   17: 	if(g_variable.current_device_num == 1)
+000FA2 904CC3            MOV      DPTR,#g_variable+04H
+000FA5 E0                MOVX     A,@DPTR
+000FA6 B40106            CJNE     A,#01H,?C0002?LED
+   18: 		GPIO_Setout(BT_LED_GPIO,LED_ON);
+000FA9 D201              SETB     ?_GPIO_Setout?BIT
+000FAB 7FFF              MOV      R7,#0FFH
+000FAD 41EC              AJMP     _GPIO_Setout
+000FAF         ?C0002?LED:
+   19: 	else if(g_variable.current_device_num == 2)
+000FAF 904CC3            MOV      DPTR,#g_variable+04H
+000FB2 E0                MOVX     A,@DPTR
+000FB3 B40206            CJNE     A,#02H,?C0004?LED
+   20: 		GPIO_Setout(BT2_LED_GPIO,LED_ON);
+000FB6 D201              SETB     ?_GPIO_Setout?BIT
+000FB8 7FFF              MOV      R7,#0FFH
+000FBA 41EC              AJMP     _GPIO_Setout
+000FBC         ?C0004?LED:
+   21: 	else if(g_variable.current_device_num == 3)
+000FBC 904CC3            MOV      DPTR,#g_variable+04H
+000FBF E0                MOVX     A,@DPTR
+000FC0 B40306            CJNE     A,#03H,?C0006?LED
+   22: 	{	
+   23: 		GPIO_SetOutput(BT_LED_GPIO,LED_ON);
+000FC3 D206              SETB     ?_GPIO_SetOutput?BIT
+000FC5 7FFF              MOV      R7,#0FFH
+000FC7 C1F4              AJMP     _GPIO_SetOutput
+   24: 	}
+000FC9         ?C0006?LED:
+   25: 	else
+   26: 	{
+   27: 		GPIO_SetOutput(G24_LED_GPIO,LED_ON);
+000FC9 D206              SETB     ?_GPIO_SetOutput?BIT
+000FCB 7F0F              MOV      R7,#0FH
+000FCD C1F4              AJMP     _GPIO_SetOutput
+   28: 	}
+   29:    #else
+   30: 		GPIO_Setout(LOWPOWER_LED_GPIO,LED_ON);   
+   31:    #endif
+----- FUNCTION LED_device_poweron (END) -------
+
+
+----- FUNCTION System_long_sleep (BEGIN) -----
+ FILE: 'sys.c'
+   81: void System_long_sleep()
+   82: { 
+   83: 	m_reconnect_continue = 0;
+   84: 	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+000FCF E4                CLR      A
+000FD0 904D38            MOV      DPTR,#m_reconnect_continue
+000FD3 F0                MOVX     @DPTR,A
+   85: }
+000FD4 7F19              MOV      R7,#019H
+000FD6 015F              AJMP     _IPC_TxControlCmd
+----- FUNCTION System_long_sleep (END) -------
+
+
+----- FUNCTION System_Reset_Connect (BEGIN) -----
+ FILE: 'sys.c'
+  102: void System_Reset_Connect()
+;----                  JMP      System_Hardware_reset
+  103: {
+  104: 	System_Hardware_reset();
+----- FUNCTION System_Reset_Connect (END) -------
+
+
+----- FUNCTION System_Hardware_reset (BEGIN) -----
+ FILE: 'sys.c'
+   75: static void System_Hardware_reset()
+   76: {
+   77: 	m_reset_reg = 1;
+   78: 	while(1);
+000FD8 908010            MOV      DPTR,#m_reset_reg
+000FDB 7401              MOV      A,#01H
+000FDD F0                MOVX     @DPTR,A
+000FDE         ?C0005?SYS:
+   79: }
+000FDE 80FE              SJMP     ?C0005?SYS
+000FE0 22                RET      
+----- FUNCTION System_Hardware_reset (END) -------
+
+
+----- FUNCTION YC_g24_mode_discovery (BEGIN) -----
+ FILE: 'bluetooth.c'
+  200: byte YC_g24_mode_discovery()
+  201: {
+  202: 	if (g_variable.last_device_num == 0xfe ||g_variable.last_device_num == 0x00)
+  203: 	{
+000FE1 904CC0            MOV      DPTR,#g_variable+01H
+000FE4 E0                MOVX     A,@DPTR
+000FE5 FF                MOV      R7,A
+000FE6 64FE              XRL      A,#0FEH
+000FE8 6003              JZ       ?C0037?BLUETOOTH
+000FEA EF                MOV      A,R7
+000FEB 7007              JNZ      ?C0036?BLUETOOTH
+000FED         ?C0037?BLUETOOTH:
+  204: 		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+  205: 		return 1;
+000FED 7F22              MOV      R7,#022H
+000FEF 115F              ACALL    _IPC_TxControlCmd
+  206: 	}
+000FF1 7F01              MOV      R7,#01H
+000FF3 22                RET      
+  207: 	return 0;
+000FF4         ?C0036?BLUETOOTH:
+  208: }
+000FF4 7F00              MOV      R7,#00H
+  209: 
+000FF6 22                RET      
+----- FUNCTION YC_g24_mode_discovery (END) -------
+
+
+----- FUNCTION _YC_store_record_list (BEGIN) -----
+ FILE: 'bluetooth.c'
+   59: void YC_store_record_list(byte link_type,byte index)
+   60: {
+000FF7 904F1F            MOV      DPTR,#index
+000FFA ED                MOV      A,R5
+000FFB F0                MOVX     @DPTR,A
+000FFC 904F1E            MOV      DPTR,#link_type
+000FFF EF                MOV      A,R7
+001000 F0                MOVX     @DPTR,A
+   61: 	if (link_type == TYPE_BLE) 
+   62: 	{
+001001 6401              XRL      A,#01H
+001003 7070              JNZ      ?C0007?BLUETOOTH
+   63: 		bd_key_record_list[index].device_type = TYPE_BLE;
+   64: 		xmemcpy(bd_key_record_list[index].device_addr,m_remote_le_addr,6);
+001005 A3                INC      DPTR
+001006 E0                MOVX     A,@DPTR
+001007 FF                MOV      R7,A
+001008 75F01F            MOV      B,#01FH
+00100B A4                MUL      AB
+00100C 2402              ADD      A,#LOW bd_key_record_list
+00100E F582              MOV      DPL,A
+001010 E4                CLR      A
+001011 344E              ADDC     A,#HIGH bd_key_record_list
+001013 F583              MOV      DPH,A
+001015 7401              MOV      A,#01H
+001017 F0                MOVX     @DPTR,A
+   65: 		xmemcpy(bd_key_record_list[index].device_link_key,m_le_ltk,16);
+001018 EF                MOV      A,R7
+001019 75F01F            MOV      B,#01FH
+00101C A4                MUL      AB
+00101D 2403              ADD      A,#LOW bd_key_record_list+01H
+00101F F582              MOV      DPL,A
+001021 E4                CLR      A
+001022 344E              ADDC     A,#HIGH bd_key_record_list+01H
+001024 AF82              MOV      R7,DPL
+001026 FE                MOV      R6,A
+001027 7B01              MOV      R3,#01H
+001029 7A03              MOV      R2,#HIGH m_remote_le_addr
+00102B 79D0              MOV      R1,#LOW m_remote_le_addr
+00102D 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+001030 7406              MOV      A,#06H
+001032 F0                MOVX     @DPTR,A
+001033 11CE              ACALL    _xmemcpy
+   66: 		xmemcpy(bd_key_record_list[index].local_addr,m_le_lap,6);
+001035 904F1F            MOV      DPTR,#index
+001038 E0                MOVX     A,@DPTR
+001039 75F01F            MOV      B,#01FH
+00103C A4                MUL      AB
+00103D 2409              ADD      A,#LOW bd_key_record_list+07H
+00103F F582              MOV      DPL,A
+001041 E4                CLR      A
+001042 344E              ADDC     A,#HIGH bd_key_record_list+07H
+001044 AF82              MOV      R7,DPL
+001046 FE                MOV      R6,A
+001047 7B01              MOV      R3,#01H
+001049 7A44              MOV      R2,#HIGH m_le_ltk
+00104B 797B              MOV      R1,#LOW m_le_ltk
+00104D 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+001050 7410              MOV      A,#010H
+001052 F0                MOVX     @DPTR,A
+001053 11CE              ACALL    _xmemcpy
+   67: 	}
+001055 904F1F            MOV      DPTR,#index
+001058 E0                MOVX     A,@DPTR
+001059 75F01F            MOV      B,#01FH
+00105C A4                MUL      AB
+00105D 2419              ADD      A,#LOW bd_key_record_list+017H
+00105F F582              MOV      DPL,A
+001061 E4                CLR      A
+001062 344E              ADDC     A,#HIGH bd_key_record_list+017H
+001064 AF82              MOV      R7,DPL
+001066 FE                MOV      R6,A
+001067 7B01              MOV      R3,#01H
+001069 7A44              MOV      R2,#HIGH m_le_lap
+00106B 79F9              MOV      R1,#LOW m_le_lap
+00106D 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+001070 7406              MOV      A,#06H
+001072 F0                MOVX     @DPTR,A
+001073 8059              SJMP     _xmemcpy
+   68: 	else if (link_type == TYPE_BT)
+001075         ?C0007?BLUETOOTH:
+   69: 	{
+001075 904F1E            MOV      DPTR,#link_type
+001078 E0                MOVX     A,@DPTR
+001079 6402              XRL      A,#02H
+00107B 7050              JNZ      ?C0010?BLUETOOTH
+   70: 		bd_key_record_list[index].device_type = TYPE_BT;
+   71: 		xmemcpy(bd_key_record_list[index].device_addr,m_remote_addr,6);
+00107D A3                INC      DPTR
+00107E E0                MOVX     A,@DPTR
+00107F FF                MOV      R7,A
+001080 75F01F            MOV      B,#01FH
+001083 A4                MUL      AB
+001084 2402              ADD      A,#LOW bd_key_record_list
+001086 F582              MOV      DPL,A
+001088 E4                CLR      A
+001089 344E              ADDC     A,#HIGH bd_key_record_list
+00108B F583              MOV      DPH,A
+00108D 7402              MOV      A,#02H
+00108F F0                MOVX     @DPTR,A
+   72: 		xmemcpy(bd_key_record_list[index].device_link_key,m_linkkey,16);
+001090 EF                MOV      A,R7
+001091 75F01F            MOV      B,#01FH
+001094 A4                MUL      AB
+001095 2403              ADD      A,#LOW bd_key_record_list+01H
+001097 F582              MOV      DPL,A
+001099 E4                CLR      A
+00109A 344E              ADDC     A,#HIGH bd_key_record_list+01H
+00109C AF82              MOV      R7,DPL
+00109E FE                MOV      R6,A
+00109F 7B01              MOV      R3,#01H
+0010A1 7A00              MOV      R2,#HIGH m_remote_addr
+0010A3 7940              MOV      R1,#LOW m_remote_addr
+0010A5 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0010A8 7406              MOV      A,#06H
+0010AA F0                MOVX     @DPTR,A
+0010AB 11CE              ACALL    _xmemcpy
+   73: 	}
+0010AD 904F1F            MOV      DPTR,#index
+0010B0 E0                MOVX     A,@DPTR
+0010B1 75F01F            MOV      B,#01FH
+0010B4 A4                MUL      AB
+0010B5 2409              ADD      A,#LOW bd_key_record_list+07H
+0010B7 F582              MOV      DPL,A
+0010B9 E4                CLR      A
+0010BA 344E              ADDC     A,#HIGH bd_key_record_list+07H
+0010BC AF82              MOV      R7,DPL
+0010BE FE                MOV      R6,A
+0010BF 7B01              MOV      R3,#01H
+0010C1 7A42              MOV      R2,#HIGH m_linkkey
+0010C3 7962              MOV      R1,#LOW m_linkkey
+0010C5 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0010C8 7410              MOV      A,#010H
+0010CA F0                MOVX     @DPTR,A
+0010CB 11CE              ACALL    _xmemcpy
+   74: }
+   75: 
+0010CD         ?C0010?BLUETOOTH:
+0010CD 22                RET      
+----- FUNCTION _YC_store_record_list (END) -------
+
+
+----- FUNCTION _xmemcpy (BEGIN) -----
+0010CE 904EEA            MOV      DPTR,#dest
+0010D1 EE                MOV      A,R6
+0010D2 F0                MOVX     @DPTR,A
+0010D3 A3                INC      DPTR
+0010D4 EF                MOV      A,R7
+0010D5 F0                MOVX     @DPTR,A
+0010D6 A3                INC      DPTR
+0010D7 EB                MOV      A,R3
+0010D8 F0                MOVX     @DPTR,A
+0010D9 A3                INC      DPTR
+0010DA EA                MOV      A,R2
+0010DB F0                MOVX     @DPTR,A
+0010DC A3                INC      DPTR
+0010DD E9                MOV      A,R1
+0010DE F0                MOVX     @DPTR,A
+0010DF         ?C0002?UTILITIES:
+0010DF 904EEF            MOV      DPTR,#len
+0010E2 E0                MOVX     A,@DPTR
+0010E3 FF                MOV      R7,A
+0010E4 14                DEC      A
+0010E5 F0                MOVX     @DPTR,A
+0010E6 EF                MOV      A,R7
+0010E7 6027              JZ       ?C0004?UTILITIES
+0010E9 904EEC            MOV      DPTR,#src
+0010EC E0                MOVX     A,@DPTR
+0010ED FB                MOV      R3,A
+0010EE A3                INC      DPTR
+0010EF E4                CLR      A
+0010F0 75F001            MOV      B,#01H
+0010F3 120424            LCALL    ?C?ILDIX
+0010F6 A9F0              MOV      R1,B
+0010F8 FA                MOV      R2,A
+0010F9 1203B6            LCALL    ?C?CLDPTR
+0010FC FF                MOV      R7,A
+0010FD 904EEA            MOV      DPTR,#dest
+001100 E4                CLR      A
+001101 75F001            MOV      B,#01H
+001104 120424            LCALL    ?C?ILDIX
+001107 85F082            MOV      DPL,B
+00110A F583              MOV      DPH,A
+00110C EF                MOV      A,R7
+00110D F0                MOVX     @DPTR,A
+00110E 80CF              SJMP     ?C0002?UTILITIES
+001110         ?C0004?UTILITIES:
+001110 22                RET      
+----- FUNCTION _xmemcpy (END) -------
+
+
+----- FUNCTION _kb_motion_keyscan (BEGIN) -----
+ FILE: 'kb_process.c'
+  849: void kb_motion_keyscan(tKSEVENT *pEvt)
+  850: {
+001111 904E8E            MOV      DPTR,#pEvt
+001114 EB                MOV      A,R3
+001115 F0                MOVX     @DPTR,A
+001116 A3                INC      DPTR
+001117 EA                MOV      A,R2
+001118 F0                MOVX     @DPTR,A
+001119 A3                INC      DPTR
+00111A E9                MOV      A,R1
+00111B F0                MOVX     @DPTR,A
+  851: 	
+  852: 	byte temp = 0;
+00111C E4                CLR      A
+00111D A3                INC      DPTR
+00111E F0                MOVX     @DPTR,A
+  853: 	byte temp1 = 0;
+00111F A3                INC      DPTR
+001120 F0                MOVX     @DPTR,A
+  854: 	byte templast = 0;
+001121 A3                INC      DPTR
+001122 F0                MOVX     @DPTR,A
+  855: 
+  856: 	byte i=0;
+001123 A3                INC      DPTR
+001124 F0                MOVX     @DPTR,A
+  857: 	byte j = 0;
+001125 A3                INC      DPTR
+001126 F0                MOVX     @DPTR,A
+  858: 	byte k = 0;
+001127 A3                INC      DPTR
+001128 F0                MOVX     @DPTR,A
+  859: 	byte cur_hidbuff[8];
+  860: 
+  861: 	xmemclear(hidBuff,HID_REPORTLEN_1);
+001129 7B01              MOV      R3,#01H
+00112B 7A48              MOV      R2,#HIGH hidBuff
+00112D 7900              MOV      R1,#LOW hidBuff
+00112F 7D09              MOV      R5,#09H
+001131 FC                MOV      R4,A
+001132 121AF0            LCALL    _xmemclear
+  862: 	xmemclear(multikey,HID_REPORTLEN_2);
+001135 7B01              MOV      R3,#01H
+001137 7A4E              MOV      R2,#HIGH multikey
+001139 7960              MOV      R1,#LOW multikey
+00113B 7D03              MOV      R5,#03H
+00113D 7C00              MOV      R4,#00H
+00113F 121AF0            LCALL    _xmemclear
+  863: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+001142 904CC5            MOV      DPTR,#g_variable+06H
+001145 E0                MOVX     A,@DPTR
+001146 6403              XRL      A,#03H
+001148 7065              JNZ      ?C0118?KB_PROCESS
+  864: 	{
+  865: 		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+00114A 904E94            MOV      DPTR,#i
+00114D F0                MOVX     @DPTR,A
+00114E         ?C0119?KB_PROCESS:
+00114E 904E94            MOV      DPTR,#i
+001151 E0                MOVX     A,@DPTR
+001152 FF                MOV      R7,A
+001153 C3                CLR      C
+001154 9405              SUBB     A,#05H
+001156 5057              JNC      ?C0118?KB_PROCESS
+  866: 		{
+  867: 			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
+001158 904E8E            MOV      DPTR,#pEvt
+00115B E0                MOVX     A,@DPTR
+00115C FB                MOV      R3,A
+00115D A3                INC      DPTR
+00115E E0                MOVX     A,@DPTR
+00115F FA                MOV      R2,A
+001160 A3                INC      DPTR
+001161 E0                MOVX     A,@DPTR
+001162 2401              ADD      A,#01H
+001164 F9                MOV      R1,A
+001165 E4                CLR      A
+001166 3A                ADDC     A,R2
+001167 FA                MOV      R2,A
+001168 7E00              MOV      R6,#00H
+00116A E9                MOV      A,R1
+00116B 2F                ADD      A,R7
+00116C F9                MOV      R1,A
+00116D EE                MOV      A,R6
+00116E 3A                ADDC     A,R2
+00116F FA                MOV      R2,A
+001170 1203B6            LCALL    ?C?CLDPTR
+001173 FF                MOV      R7,A
+001174 6439              XRL      A,#039H
+001176 6009              JZ       ?C0123?KB_PROCESS
+001178 EF                MOV      A,R7
+001179 6453              XRL      A,#053H
+00117B 6004              JZ       ?C0123?KB_PROCESS
+00117D EF                MOV      A,R7
+00117E B44706            CJNE     A,#047H,?C0122?KB_PROCESS
+001181         ?C0123?KB_PROCESS:
+  868: 			|| (pEvt->ksPool[i] == HID_KEY_SCROLL_LOCK))
+  869: 			{
+  870: 				m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+001181 904D46            MOV      DPTR,#m_24g_led_flag
+001184 7403              MOV      A,#03H
+001186 F0                MOVX     @DPTR,A
+  871: 			}
+001187         ?C0122?KB_PROCESS:
+  872: 			if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
+001187 EF                MOV      A,R7
+001188 B47F06            CJNE     A,#07FH,?C0124?KB_PROCESS
+  873: 			{
+  874: 				fn_flag = 1;
+00118B 904DF5            MOV      DPTR,#fn_flag
+00118E 7401              MOV      A,#01H
+001190 F0                MOVX     @DPTR,A
+  875: 			}
+001191         ?C0124?KB_PROCESS:
+  876: 
+  877: 			if(pEvt->standardSel)
+001191 904E8E            MOV      DPTR,#pEvt
+001194 E0                MOVX     A,@DPTR
+001195 FB                MOV      R3,A
+001196 A3                INC      DPTR
+001197 E0                MOVX     A,@DPTR
+001198 FA                MOV      R2,A
+001199 A3                INC      DPTR
+00119A E0                MOVX     A,@DPTR
+00119B F9                MOV      R1,A
+00119C 1203B6            LCALL    ?C?CLDPTR
+00119F 6006              JZ       ?C0121?KB_PROCESS
+  878: 				control_key_flag = 1;
+0011A1 904DE9            MOV      DPTR,#control_key_flag
+0011A4 7401              MOV      A,#01H
+0011A6 F0                MOVX     @DPTR,A
+  879: 		}
+0011A7         ?C0121?KB_PROCESS:
+0011A7 904E94            MOV      DPTR,#i
+0011AA E0                MOVX     A,@DPTR
+0011AB 04                INC      A
+0011AC F0                MOVX     @DPTR,A
+0011AD 809F              SJMP     ?C0119?KB_PROCESS
+  880: 	}
+0011AF         ?C0118?KB_PROCESS:
+  881: 
+  882: 	if (1) {
+  883: 		xmemcpy(&cur_hidbuff[2], pEvt->ksPool, 6);
+0011AF 7E4E              MOV      R6,#HIGH cur_hidbuff+02H
+0011B1 7F99              MOV      R7,#LOW cur_hidbuff+02H
+0011B3 904E8E            MOV      DPTR,#pEvt
+0011B6 E0                MOVX     A,@DPTR
+0011B7 FB                MOV      R3,A
+0011B8 A3                INC      DPTR
+0011B9 E0                MOVX     A,@DPTR
+0011BA FA                MOV      R2,A
+0011BB A3                INC      DPTR
+0011BC E0                MOVX     A,@DPTR
+0011BD 2401              ADD      A,#01H
+0011BF F9                MOV      R1,A
+0011C0 E4                CLR      A
+0011C1 3A                ADDC     A,R2
+0011C2 FA                MOV      R2,A
+0011C3 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0011C6 7406              MOV      A,#06H
+0011C8 F0                MOVX     @DPTR,A
+0011C9 11CE              ACALL    _xmemcpy
+  884: 		templast = fn_flag;
+0011CB 904DF5            MOV      DPTR,#fn_flag
+0011CE E0                MOVX     A,@DPTR
+0011CF 904E93            MOV      DPTR,#templast
+0011D2 F0                MOVX     @DPTR,A
+  885: 		temp = cur_hidbuff[2];
+0011D3 904E99            MOV      DPTR,#cur_hidbuff+02H
+0011D6 E0                MOVX     A,@DPTR
+0011D7 904E91            MOV      DPTR,#temp
+0011DA F0                MOVX     @DPTR,A
+  886: 
+  887: 		if ((templast == 0x7f) && (temp != 0x7f) && (temp != 0)) {
+0011DB 904E93            MOV      DPTR,#templast
+0011DE E0                MOVX     A,@DPTR
+0011DF 647F              XRL      A,#07FH
+0011E1 7030              JNZ      ?C0127?KB_PROCESS
+0011E3 904E91            MOV      DPTR,#temp
+0011E6 E0                MOVX     A,@DPTR
+0011E7 FF                MOV      R7,A
+0011E8 647F              XRL      A,#07FH
+0011EA 6027              JZ       ?C0127?KB_PROCESS
+0011EC EF                MOV      A,R7
+0011ED 6024              JZ       ?C0127?KB_PROCESS
+  888: 			cur_hidbuff[7] = cur_hidbuff[6];
+0011EF 904E9D            MOV      DPTR,#cur_hidbuff+06H
+0011F2 E0                MOVX     A,@DPTR
+0011F3 A3                INC      DPTR
+0011F4 F0                MOVX     @DPTR,A
+  889: 			cur_hidbuff[6] = cur_hidbuff[5];
+0011F5 904E9C            MOV      DPTR,#cur_hidbuff+05H
+0011F8 E0                MOVX     A,@DPTR
+0011F9 A3                INC      DPTR
+0011FA F0                MOVX     @DPTR,A
+  890: 			cur_hidbuff[5] = cur_hidbuff[4];
+0011FB 904E9B            MOV      DPTR,#cur_hidbuff+04H
+0011FE E0                MOVX     A,@DPTR
+0011FF A3                INC      DPTR
+001200 F0                MOVX     @DPTR,A
+  891: 			cur_hidbuff[4] = cur_hidbuff[3];
+001201 904E9A            MOV      DPTR,#cur_hidbuff+03H
+001204 E0                MOVX     A,@DPTR
+001205 A3                INC      DPTR
+001206 F0                MOVX     @DPTR,A
+  892: 			cur_hidbuff[3] = cur_hidbuff[2];
+001207 904E99            MOV      DPTR,#cur_hidbuff+02H
+00120A E0                MOVX     A,@DPTR
+00120B A3                INC      DPTR
+00120C F0                MOVX     @DPTR,A
+  893: 			cur_hidbuff[2] = 0x7f;
+00120D 904E99            MOV      DPTR,#cur_hidbuff+02H
+001210 747F              MOV      A,#07FH
+001212 F0                MOVX     @DPTR,A
+  894: 		}
+001213         ?C0127?KB_PROCESS:
+  895: 
+  896: 		for (i = 3; i < 8; i++) {
+001213 904E94            MOV      DPTR,#i
+001216 7403              MOV      A,#03H
+001218 F0                MOVX     @DPTR,A
+001219         ?C0128?KB_PROCESS:
+001219 904E94            MOV      DPTR,#i
+00121C E0                MOVX     A,@DPTR
+00121D FF                MOV      R7,A
+00121E C3                CLR      C
+00121F 9408              SUBB     A,#08H
+001221 5052              JNC      ?C0126?KB_PROCESS
+  897: 			temp = cur_hidbuff[i];
+001223 7497              MOV      A,#LOW cur_hidbuff
+001225 2F                ADD      A,R7
+001226 F582              MOV      DPL,A
+001228 E4                CLR      A
+001229 344E              ADDC     A,#HIGH cur_hidbuff
+00122B F583              MOV      DPH,A
+00122D E0                MOVX     A,@DPTR
+00122E 904E91            MOV      DPTR,#temp
+001231 F0                MOVX     @DPTR,A
+  898: 
+  899: 			if (temp == 0x7f) {
+001232 647F              XRL      A,#07FH
+001234 7037              JNZ      ?C0130?KB_PROCESS
+  900: 				for (j = i; j < 7; j++) {
+001236 904E94            MOV      DPTR,#i
+001239 E0                MOVX     A,@DPTR
+00123A A3                INC      DPTR
+00123B F0                MOVX     @DPTR,A
+00123C         ?C0132?KB_PROCESS:
+00123C 904E95            MOV      DPTR,#j
+00123F E0                MOVX     A,@DPTR
+001240 C3                CLR      C
+001241 9407              SUBB     A,#07H
+001243 5021              JNC      ?C0133?KB_PROCESS
+  901: 					cur_hidbuff[j] = cur_hidbuff[j + 1];
+001245 E0                MOVX     A,@DPTR
+001246 FF                MOV      R7,A
+001247 2498              ADD      A,#LOW cur_hidbuff+01H
+001249 F582              MOV      DPL,A
+00124B E4                CLR      A
+00124C 344E              ADDC     A,#HIGH cur_hidbuff+01H
+00124E F583              MOV      DPH,A
+001250 E0                MOVX     A,@DPTR
+001251 FE                MOV      R6,A
+001252 7497              MOV      A,#LOW cur_hidbuff
+001254 2F                ADD      A,R7
+001255 F582              MOV      DPL,A
+001257 E4                CLR      A
+001258 344E              ADDC     A,#HIGH cur_hidbuff
+00125A F583              MOV      DPH,A
+00125C EE                MOV      A,R6
+00125D F0                MOVX     @DPTR,A
+  902: 				}
+00125E 904E95            MOV      DPTR,#j
+001261 E0                MOVX     A,@DPTR
+001262 04                INC      A
+001263 F0                MOVX     @DPTR,A
+001264 80D6              SJMP     ?C0132?KB_PROCESS
+001266         ?C0133?KB_PROCESS:
+  903: 
+  904: 				cur_hidbuff[7] = 0;
+001266 E4                CLR      A
+001267 904E9E            MOV      DPTR,#cur_hidbuff+07H
+00126A F0                MOVX     @DPTR,A
+  905: 				break;
+00126B 8008              SJMP     ?C0126?KB_PROCESS
+  906: 			}
+  907: 		}
+00126D         ?C0130?KB_PROCESS:
+00126D 904E94            MOV      DPTR,#i
+001270 E0                MOVX     A,@DPTR
+001271 04                INC      A
+001272 F0                MOVX     @DPTR,A
+001273 80A4              SJMP     ?C0128?KB_PROCESS
+  908: 	}
+001275         ?C0126?KB_PROCESS:
+  909: 
+  910: 	cur_hidbuff[0] = pEvt->standardSel;
+001275 904E8E            MOV      DPTR,#pEvt
+001278 E0                MOVX     A,@DPTR
+001279 FB                MOV      R3,A
+00127A A3                INC      DPTR
+00127B E0                MOVX     A,@DPTR
+00127C FA                MOV      R2,A
+00127D A3                INC      DPTR
+00127E E0                MOVX     A,@DPTR
+00127F F9                MOV      R1,A
+001280 1203B6            LCALL    ?C?CLDPTR
+001283 904E97            MOV      DPTR,#cur_hidbuff
+001286 F0                MOVX     @DPTR,A
+  911: 	fn_flag = cur_hidbuff[2];
+001287 904E99            MOV      DPTR,#cur_hidbuff+02H
+00128A E0                MOVX     A,@DPTR
+00128B FF                MOV      R7,A
+00128C 904DF5            MOV      DPTR,#fn_flag
+00128F F0                MOVX     @DPTR,A
+  912: 
+  913: 	hidBuff[1] = cur_hidbuff[0];
+001290 904E97            MOV      DPTR,#cur_hidbuff
+001293 E0                MOVX     A,@DPTR
+001294 FE                MOV      R6,A
+001295 904801            MOV      DPTR,#hidBuff+01H
+001298 F0                MOVX     @DPTR,A
+  914: 
+  915: 	if (((cur_hidbuff[2] == 0)||((cur_hidbuff[2] == 0x7f)&&(cur_hidbuff[3] == 0))) && (cur_hidbuff[0] == 0)) {
+001299 EF                MOV      A,R7
+00129A 600C              JZ       ?C0136?KB_PROCESS
+00129C 904E99            MOV      DPTR,#cur_hidbuff+02H
+00129F E0                MOVX     A,@DPTR
+0012A0 647F              XRL      A,#07FH
+0012A2 7046              JNZ      ?C0135?KB_PROCESS
+0012A4 A3                INC      DPTR
+0012A5 E0                MOVX     A,@DPTR
+0012A6 7042              JNZ      ?C0135?KB_PROCESS
+0012A8         ?C0136?KB_PROCESS:
+0012A8 EE                MOV      A,R6
+0012A9 703F              JNZ      ?C0135?KB_PROCESS
+  916: 
+  917: 		if (SendReport1) {
+0012AB 904DED            MOV      DPTR,#SendReport1
+0012AE E0                MOVX     A,@DPTR
+0012AF 6019              JZ       ?C0137?KB_PROCESS
+  918: 			hidBuff[0] = HID_REPORTID_1;
+0012B1 904800            MOV      DPTR,#hidBuff
+0012B4 7401              MOV      A,#01H
+0012B6 F0                MOVX     @DPTR,A
+  919: 			IPC_TxHidData(hidBuff, HID_REPORTLEN_1);
+0012B7 FB                MOV      R3,A
+0012B8 7A48              MOV      R2,#HIGH hidBuff
+0012BA 7900              MOV      R1,#LOW hidBuff
+0012BC 7D09              MOV      R5,#09H
+0012BE 1218C4            LCALL    _IPC_TxHidData
+  920: 			SendReport1 = false;
+0012C1 E4                CLR      A
+0012C2 904DED            MOV      DPTR,#SendReport1
+0012C5 F0                MOVX     @DPTR,A
+  921: 			hidBuff[0] = 0;
+0012C6 904800            MOV      DPTR,#hidBuff
+0012C9 F0                MOVX     @DPTR,A
+  922: 		}
+0012CA         ?C0137?KB_PROCESS:
+  923:         
+  924: 		if (SendReport2) {
+0012CA 904DEE            MOV      DPTR,#SendReport2
+0012CD E0                MOVX     A,@DPTR
+0012CE 601A              JZ       ?C0135?KB_PROCESS
+  925: 			multikey[0] = HID_REPORTID_2;
+0012D0 904E60            MOV      DPTR,#multikey
+0012D3 7402              MOV      A,#02H
+0012D5 F0                MOVX     @DPTR,A
+  926: 			IPC_TxHidData(multikey, HID_REPORTLEN_2);
+0012D6 7B01              MOV      R3,#01H
+0012D8 7A4E              MOV      R2,#HIGH multikey
+0012DA 7960              MOV      R1,#LOW multikey
+0012DC 7D03              MOV      R5,#03H
+0012DE 1218C4            LCALL    _IPC_TxHidData
+  927: 			SendReport2 = false;
+0012E1 E4                CLR      A
+0012E2 904DEE            MOV      DPTR,#SendReport2
+0012E5 F0                MOVX     @DPTR,A
+  928: 			multikey[0] = 0;
+0012E6 904E60            MOV      DPTR,#multikey
+0012E9 F0                MOVX     @DPTR,A
+  929: 		}
+  930: 	}
+0012EA         ?C0135?KB_PROCESS:
+  931: 
+  932: 	if (cur_hidbuff[2] == 0x7f) {
+0012EA 904E99            MOV      DPTR,#cur_hidbuff+02H
+0012ED E0                MOVX     A,@DPTR
+0012EE B47F08            CJNE     A,#07FH,?C0139?KB_PROCESS
+  933: 		k = 3;
+0012F1 904E96            MOV      DPTR,#k
+0012F4 7403              MOV      A,#03H
+0012F6 F0                MOVX     @DPTR,A
+  934: 	}
+0012F7 8006              SJMP     ?C0140?KB_PROCESS
+0012F9         ?C0139?KB_PROCESS:
+  935: 	else {
+  936: 		k = 2;
+0012F9 904E96            MOV      DPTR,#k
+0012FC 7402              MOV      A,#02H
+0012FE F0                MOVX     @DPTR,A
+  937: 	}
+0012FF         ?C0140?KB_PROCESS:
+  938: 			
+  939: 	for (i = k;i < 8;i++)
+0012FF 904E96            MOV      DPTR,#k
+001302 E0                MOVX     A,@DPTR
+001303 904E94            MOV      DPTR,#i
+001306 F0                MOVX     @DPTR,A
+001307         ?C0141?KB_PROCESS:
+001307 904E94            MOV      DPTR,#i
+00130A E0                MOVX     A,@DPTR
+00130B FF                MOV      R7,A
+00130C C3                CLR      C
+00130D 9408              SUBB     A,#08H
+00130F 4002              JC       $ + 4H
+001311 81B1              AJMP     ?C0142?KB_PROCESS
+  940: 	{    
+  941: 		temp = cur_hidbuff[i];
+001313 7497              MOV      A,#LOW cur_hidbuff
+001315 2F                ADD      A,R7
+001316 F582              MOV      DPL,A
+001318 E4                CLR      A
+001319 344E              ADDC     A,#HIGH cur_hidbuff
+00131B F583              MOV      DPH,A
+00131D E0                MOVX     A,@DPTR
+00131E 904E91            MOV      DPTR,#temp
+001321 F0                MOVX     @DPTR,A
+  942: 
+  943: 		if ((temp == 0) && (cur_hidbuff[0] == 0)) {
+001322 7008              JNZ      ?C0144?KB_PROCESS
+001324 904E97            MOV      DPTR,#cur_hidbuff
+001327 E0                MOVX     A,@DPTR
+001328 7002              JNZ      $ + 4H
+00132A 81B1              AJMP     ?C0142?KB_PROCESS
+  944: 			break;
+  945: 		}
+00132C         ?C0144?KB_PROCESS:
+  946: 		if(temp == HID_MULTIKEY_AC_HOME)
+00132C 904E91            MOV      DPTR,#temp
+00132F E0                MOVX     A,@DPTR
+001330 FB                MOV      R3,A
+001331 B4D608            CJNE     A,#0D6H,?C0145?KB_PROCESS
+  947: 		{
+  948: 			kb_set_multikey(0x0223);
+001334 7F23              MOV      R7,#023H
+001336 7E02              MOV      R6,#02H
+001338 91F6              ACALL    _kb_set_multikey
+  949: 		}
+00133A 8026              SJMP     ?C0146?KB_PROCESS
+00133C         ?C0145?KB_PROCESS:
+  950: 		else if(temp == HID_MULTIKEY_AC_SEARCH)
+00133C EB                MOV      A,R3
+00133D B4D508            CJNE     A,#0D5H,?C0147?KB_PROCESS
+  951: 		{
+  952: 			kb_set_multikey(0x0221);
+001340 7F21              MOV      R7,#021H
+001342 7E02              MOV      R6,#02H
+001344 91F6              ACALL    _kb_set_multikey
+  953: 		}
+001346 801A              SJMP     ?C0146?KB_PROCESS
+001348         ?C0147?KB_PROCESS:
+  954: 		else if(temp == HID_MULTIKEY_MAIL)
+001348 904E91            MOV      DPTR,#temp
+00134B E0                MOVX     A,@DPTR
+00134C FB                MOV      R3,A
+00134D B4FA08            CJNE     A,#0FAH,?C0149?KB_PROCESS
+  955: 		{
+  956: 			kb_set_multikey(0x018a);
+001350 7F8A              MOV      R7,#08AH
+001352 7E01              MOV      R6,#01H
+001354 91F6              ACALL    _kb_set_multikey
+  957: 		}
+001356 800A              SJMP     ?C0146?KB_PROCESS
+001358         ?C0149?KB_PROCESS:
+  958: 		else if(temp == HID_MULTIKEY_CALCULATOR)
+001358 EB                MOV      A,R3
+001359 B4FB06            CJNE     A,#0FBH,?C0146?KB_PROCESS
+  959: 		{
+  960: 			kb_set_multikey(0x0192);
+00135C 7F92              MOV      R7,#092H
+00135E 7E01              MOV      R6,#01H
+001360 91F6              ACALL    _kb_set_multikey
+  961: 		}
+001362         ?C0146?KB_PROCESS:
+  962: 		#ifdef FN_KEY_ENABLE
+  963: 		//if(1) 
+  964: 		//{
+  965: 			//if (((temp >= HID_KEY_F1)&&(temp <= HID_KEY_F12))||((temp >= HID_KEY_RIGHT_ARROW)&&(temp <= HID_KEY_UP_ARROW
+>> ))
+  966: 			//	||(temp == 0x49))
+  967: 			//{
+  968: 					if(temp == HID_KEY_ESC && k == 3)
+001362 904E91            MOV      DPTR,#temp
+001365 E0                MOVX     A,@DPTR
+001366 B42927            CJNE     A,#029H,?C0152?KB_PROCESS
+001369 904E96            MOV      DPTR,#k
+00136C E0                MOVX     A,@DPTR
+00136D B40320            CJNE     A,#03H,?C0152?KB_PROCESS
+  969: 					{			
+  970: 						if(fn_lock_flag)
+001370 904DFA            MOV      DPTR,#fn_lock_flag
+001373 E0                MOVX     A,@DPTR
+001374 600A              JZ       ?C0153?KB_PROCESS
+  971: 						{
+  972: 							fn_lock_flag = 0;
+001376 E4                CLR      A
+001377 F0                MOVX     @DPTR,A
+  973: 							g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+001378 904CBF            MOV      DPTR,#g_variable
+00137B 7402              MOV      A,#02H
+00137D F0                MOVX     @DPTR,A
+  974: 						}
+00137E 800B              SJMP     ?C0154?KB_PROCESS
+001380         ?C0153?KB_PROCESS:
+  975: 						else
+  976: 						{
+  977: 							fn_lock_flag = 1;	
+001380 904DFA            MOV      DPTR,#fn_lock_flag
+001383 7401              MOV      A,#01H
+001385 F0                MOVX     @DPTR,A
+  978: 							g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+001386 904CBF            MOV      DPTR,#g_variable
+001389 04                INC      A
+00138A F0                MOVX     @DPTR,A
+  979: 						}
+00138B         ?C0154?KB_PROCESS:
+  980: 						temp = HID_KEY_NULL;
+00138B E4                CLR      A
+00138C 904E91            MOV      DPTR,#temp
+00138F F0                MOVX     @DPTR,A
+  981: 					}
+001390         ?C0152?KB_PROCESS:
+  982: 
+  983: 					if ( (k == 2 && !fn_lock_flag) || (k == 3 && fn_lock_flag == 1))
+001390 904E96            MOV      DPTR,#k
+001393 E0                MOVX     A,@DPTR
+001394 FF                MOV      R7,A
+001395 B40206            CJNE     A,#02H,?C0157?KB_PROCESS
+001398 904DFA            MOV      DPTR,#fn_lock_flag
+00139B E0                MOVX     A,@DPTR
+00139C 6011              JZ       ?C0156?KB_PROCESS
+00139E         ?C0157?KB_PROCESS:
+00139E EF                MOV      A,R7
+00139F 6403              XRL      A,#03H
+0013A1 6002              JZ       $ + 4H
+0013A3 8168              AJMP     ?C0155?KB_PROCESS
+0013A5 904DFA            MOV      DPTR,#fn_lock_flag
+0013A8 E0                MOVX     A,@DPTR
+0013A9 6401              XRL      A,#01H
+0013AB 6002              JZ       $ + 4H
+0013AD 8168              AJMP     ?C0155?KB_PROCESS
+0013AF         ?C0156?KB_PROCESS:
+  984: 					{
+  985: 					    if(temp == HID_KEY_F1){
+0013AF 904E91            MOV      DPTR,#temp
+0013B2 E0                MOVX     A,@DPTR
+0013B3 FB                MOV      R3,A
+0013B4 B43A08            CJNE     A,#03AH,?C0158?KB_PROCESS
+  986: 							kb_set_multikey(0x0070);
+0013B7 7F70              MOV      R7,#070H
+0013B9 7E00              MOV      R6,#00H
+0013BB 91F6              ACALL    _kb_set_multikey
+  987: 							//goto NextLoop;
+  988: 						}
+0013BD 8168              AJMP     ?C0155?KB_PROCESS
+0013BF         ?C0158?KB_PROCESS:
+  989: 						else if(temp == HID_KEY_F2){
+0013BF EB                MOV      A,R3
+0013C0 B43B08            CJNE     A,#03BH,?C0160?KB_PROCESS
+  990: 							kb_set_multikey(0x006F);
+0013C3 7F6F              MOV      R7,#06FH
+0013C5 7E00              MOV      R6,#00H
+0013C7 91F6              ACALL    _kb_set_multikey
+  991: 							//goto NextLoop;
+  992: 						}
+0013C9 8168              AJMP     ?C0155?KB_PROCESS
+0013CB         ?C0160?KB_PROCESS:
+  993: 						else if(temp == HID_KEY_F3){
+0013CB 904E91            MOV      DPTR,#temp
+0013CE E0                MOVX     A,@DPTR
+0013CF FF                MOV      R7,A
+0013D0 B43C0E            CJNE     A,#03CH,?C0162?KB_PROCESS
+  994: 							hidBuff[1] = 0x01;
+0013D3 904801            MOV      DPTR,#hidBuff+01H
+0013D6 7401              MOV      A,#01H
+0013D8 F0                MOVX     @DPTR,A
+  995: 							temp = HID_KEY_A;	
+0013D9 904E91            MOV      DPTR,#temp
+0013DC 7404              MOV      A,#04H
+0013DE F0                MOVX     @DPTR,A
+  996: 						}
+0013DF 8168              AJMP     ?C0155?KB_PROCESS
+0013E1         ?C0162?KB_PROCESS:
+  997: 					    else if(temp == HID_KEY_F4){
+0013E1 EF                MOV      A,R7
+0013E2 B43D0E            CJNE     A,#03DH,?C0164?KB_PROCESS
+  998: 							hidBuff[1] = 0x01;
+0013E5 904801            MOV      DPTR,#hidBuff+01H
+0013E8 7401              MOV      A,#01H
+0013EA F0                MOVX     @DPTR,A
+  999: 							temp = HID_KEY_C;	
+0013EB 904E91            MOV      DPTR,#temp
+0013EE 7406              MOV      A,#06H
+0013F0 F0                MOVX     @DPTR,A
+ 1000: 						}
+0013F1 8075              SJMP     ?C0155?KB_PROCESS
+0013F3         ?C0164?KB_PROCESS:
+ 1001: 						else if(temp == HID_KEY_F5){
+0013F3 EF                MOV      A,R7
+0013F4 B43E0E            CJNE     A,#03EH,?C0166?KB_PROCESS
+ 1002: 							hidBuff[1] = 0x01;
+0013F7 904801            MOV      DPTR,#hidBuff+01H
+0013FA 7401              MOV      A,#01H
+0013FC F0                MOVX     @DPTR,A
+ 1003: 							temp = HID_KEY_V;	
+0013FD 904E91            MOV      DPTR,#temp
+001400 7419              MOV      A,#019H
+001402 F0                MOVX     @DPTR,A
+ 1004: 						}
+001403 8063              SJMP     ?C0155?KB_PROCESS
+001405         ?C0166?KB_PROCESS:
+ 1005: 						else if(temp == HID_KEY_F6){
+001405 EF                MOV      A,R7
+001406 B43F0E            CJNE     A,#03FH,?C0168?KB_PROCESS
+ 1006: 							hidBuff[1] = 0x01;
+001409 904801            MOV      DPTR,#hidBuff+01H
+00140C 7401              MOV      A,#01H
+00140E F0                MOVX     @DPTR,A
+ 1007: 							temp = HID_KEY_X;	
+00140F 904E91            MOV      DPTR,#temp
+001412 741B              MOV      A,#01BH
+001414 F0                MOVX     @DPTR,A
+ 1008: 						}
+001415 8051              SJMP     ?C0155?KB_PROCESS
+001417         ?C0168?KB_PROCESS:
+ 1009: 						else if(temp == HID_KEY_F7){
+001417 EF                MOV      A,R7
+001418 B44008            CJNE     A,#040H,?C0170?KB_PROCESS
+ 1010: 							kb_set_multikey(0x00b6);
+00141B 7FB6              MOV      R7,#0B6H
+00141D 7E00              MOV      R6,#00H
+00141F 91F6              ACALL    _kb_set_multikey
+ 1011: 							//goto NextLoop;
+ 1012: 						}
+001421 8045              SJMP     ?C0155?KB_PROCESS
+001423         ?C0170?KB_PROCESS:
+ 1013: 						else if(temp == HID_KEY_F8){
+001423 904E91            MOV      DPTR,#temp
+001426 E0                MOVX     A,@DPTR
+001427 FB                MOV      R3,A
+001428 B44108            CJNE     A,#041H,?C0172?KB_PROCESS
+ 1014: 							kb_set_multikey(0x00cd);
+00142B 7FCD              MOV      R7,#0CDH
+00142D 7E00              MOV      R6,#00H
+00142F 91F6              ACALL    _kb_set_multikey
+ 1015: 							//goto NextLoop;
+ 1016: 						}
+001431 8035              SJMP     ?C0155?KB_PROCESS
+001433         ?C0172?KB_PROCESS:
+ 1017: 						else if(temp == HID_KEY_F9){
+001433 EB                MOV      A,R3
+001434 B44208            CJNE     A,#042H,?C0174?KB_PROCESS
+ 1018: 							kb_set_multikey(0x00b5);
+001437 7FB5              MOV      R7,#0B5H
+001439 7E00              MOV      R6,#00H
+00143B 91F6              ACALL    _kb_set_multikey
+ 1019: 							//goto NextLoop;
+ 1020: 						}
+00143D 8029              SJMP     ?C0155?KB_PROCESS
+00143F         ?C0174?KB_PROCESS:
+ 1021: 						else if(temp == HID_KEY_F10){
+00143F 904E91            MOV      DPTR,#temp
+001442 E0                MOVX     A,@DPTR
+001443 FB                MOV      R3,A
+001444 B44308            CJNE     A,#043H,?C0176?KB_PROCESS
+ 1022: 							kb_set_multikey(0x00e2);
+001447 7FE2              MOV      R7,#0E2H
+001449 7E00              MOV      R6,#00H
+00144B 91F6              ACALL    _kb_set_multikey
+ 1023: 							//goto NextLoop;
+ 1024: 						}
+00144D 8019              SJMP     ?C0155?KB_PROCESS
+00144F         ?C0176?KB_PROCESS:
+ 1025: 						else if(temp == HID_KEY_F11){
+00144F EB                MOV      A,R3
+001450 B44408            CJNE     A,#044H,?C0178?KB_PROCESS
+ 1026: 
+ 1027: 							kb_set_multikey(0x00ea);						
+001453 7FEA              MOV      R7,#0EAH
+001455 7E00              MOV      R6,#00H
+001457 91F6              ACALL    _kb_set_multikey
+ 1028: 						}
+001459 800D              SJMP     ?C0155?KB_PROCESS
+00145B         ?C0178?KB_PROCESS:
+ 1029: 						else if(temp == HID_KEY_F12){
+00145B 904E91            MOV      DPTR,#temp
+00145E E0                MOVX     A,@DPTR
+00145F B44506            CJNE     A,#045H,?C0155?KB_PROCESS
+ 1030: 							kb_set_multikey(0x00e9);
+001462 7FE9              MOV      R7,#0E9H
+001464 7E00              MOV      R6,#00H
+001466 91F6              ACALL    _kb_set_multikey
+ 1031: 							//goto NextLoop;
+ 1032: 						}
+ 1033: 						// else if(temp == HID_KEY_ESC)
+ 1034: 						// {			
+ 1035: 						// 	if(fn_lock_flag)
+ 1036: 						// 	{
+ 1037: 						// 		fn_lock_flag = 0;
+ 1038: 						// 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+ 1039: 						// 	}
+ 1040: 						// 	else
+ 1041: 						// 	{
+ 1042: 						// 		fn_lock_flag = 1;	
+ 1043: 						// 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+ 1044: 						// 	}
+ 1045: 						// 	temp = HID_KEY_NULL;
+ 1046: 						// }
+ 1047: 					}
+001468         ?C0155?KB_PROCESS:
+ 1048: 				//}
+ 1049: 			//}
+ 1050: 						
+ 1051: 		if (SendReport2)
+001468 904DEE            MOV      DPTR,#SendReport2
+00146B E0                MOVX     A,@DPTR
+00146C 703B              JNZ      ?C0143?KB_PROCESS
+ 1052: 				goto NextLoop;
+00146E         ?C0181?KB_PROCESS:
+ 1053: 		#endif
+ 1054:         
+ 1055: 		if (k == 3) {
+00146E 904E96            MOV      DPTR,#k
+001471 E0                MOVX     A,@DPTR
+001472 B40318            CJNE     A,#03H,?C0183?KB_PROCESS
+ 1056: 			if (temp != 0)
+001475 904E91            MOV      DPTR,#temp
+001478 E0                MOVX     A,@DPTR
+001479 FF                MOV      R7,A
+00147A 6027              JZ       ?C0185?KB_PROCESS
+ 1057: 				hidBuff[i] = temp;
+00147C 904E94            MOV      DPTR,#i
+00147F E0                MOVX     A,@DPTR
+001480 2400              ADD      A,#LOW hidBuff
+001482 F582              MOV      DPL,A
+001484 E4                CLR      A
+001485 3448              ADDC     A,#HIGH hidBuff
+001487 F583              MOV      DPH,A
+001489 EF                MOV      A,R7
+00148A F0                MOVX     @DPTR,A
+ 1058: 		}
+00148B 8016              SJMP     ?C0185?KB_PROCESS
+00148D         ?C0183?KB_PROCESS:
+ 1059: 		else {
+ 1060: 			if (temp != 0)
+00148D 904E91            MOV      DPTR,#temp
+001490 E0                MOVX     A,@DPTR
+001491 FF                MOV      R7,A
+001492 600F              JZ       ?C0185?KB_PROCESS
+ 1061: 				hidBuff[i + 1] = temp;
+001494 904E94            MOV      DPTR,#i
+001497 E0                MOVX     A,@DPTR
+001498 2401              ADD      A,#LOW hidBuff+01H
+00149A F582              MOV      DPL,A
+00149C E4                CLR      A
+00149D 3448              ADDC     A,#HIGH hidBuff+01H
+00149F F583              MOV      DPH,A
+0014A1 EF                MOV      A,R7
+0014A2 F0                MOVX     @DPTR,A
+ 1062: 		}
+0014A3         ?C0185?KB_PROCESS:
+ 1063: 		SendReport1 = true;
+0014A3 904DED            MOV      DPTR,#SendReport1
+0014A6 7401              MOV      A,#01H
+0014A8 F0                MOVX     @DPTR,A
+ 1064: 		
+ 1065: #ifdef FN_KEY_ENABLE
+ 1066: NextLoop:
+0014A9         NextLoop:
+ 1067: 	;
+ 1068: #endif
+ 1069: 	}
+0014A9         ?C0143?KB_PROCESS:
+0014A9 904E94            MOV      DPTR,#i
+0014AC E0                MOVX     A,@DPTR
+0014AD 04                INC      A
+0014AE F0                MOVX     @DPTR,A
+0014AF 6107              AJMP     ?C0141?KB_PROCESS
+0014B1         ?C0142?KB_PROCESS:
+ 1070: 	
+ 1071: 	if (SendReport1) {
+0014B1 904DED            MOV      DPTR,#SendReport1
+0014B4 E0                MOVX     A,@DPTR
+0014B5 6027              JZ       ?C0187?KB_PROCESS
+ 1072: 		hidBuff[0] = HID_REPORTID_1;
+0014B7 904800            MOV      DPTR,#hidBuff
+0014BA 7401              MOV      A,#01H
+0014BC F0                MOVX     @DPTR,A
+ 1073: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+0014BD 904CC5            MOV      DPTR,#g_variable+06H
+0014C0 E0                MOVX     A,@DPTR
+0014C1 B4030A            CJNE     A,#03H,?C0188?KB_PROCESS
+ 1074: 			hidBuff[2] = m_24g_led_flag;
+0014C4 904D46            MOV      DPTR,#m_24g_led_flag
+0014C7 E0                MOVX     A,@DPTR
+0014C8 904802            MOV      DPTR,#hidBuff+02H
+0014CB F0                MOVX     @DPTR,A
+0014CC 8005              SJMP     ?C0189?KB_PROCESS
+0014CE         ?C0188?KB_PROCESS:
+ 1075: 		else
+ 1076: 			hidBuff[2] = 0;
+0014CE E4                CLR      A
+0014CF 904802            MOV      DPTR,#hidBuff+02H
+0014D2 F0                MOVX     @DPTR,A
+0014D3         ?C0189?KB_PROCESS:
+ 1077: 		IPC_TxHidData(hidBuff, HID_REPORTLEN_1);
+0014D3 7B01              MOV      R3,#01H
+0014D5 7A48              MOV      R2,#HIGH hidBuff
+0014D7 7900              MOV      R1,#LOW hidBuff
+0014D9 7D09              MOV      R5,#09H
+0014DB 1218C4            LCALL    _IPC_TxHidData
+ 1078: 	}
+0014DE         ?C0187?KB_PROCESS:
+ 1079: 
+ 1080: 	if (SendReport2) {
+0014DE 904DEE            MOV      DPTR,#SendReport2
+0014E1 E0                MOVX     A,@DPTR
+0014E2 6011              JZ       ?C0191?KB_PROCESS
+ 1081: 		multikey[0] = HID_REPORTID_2;
+0014E4 904E60            MOV      DPTR,#multikey
+0014E7 7402              MOV      A,#02H
+0014E9 F0                MOVX     @DPTR,A
+ 1082: 		IPC_TxHidData(multikey, HID_REPORTLEN_2);
+0014EA 7B01              MOV      R3,#01H
+0014EC 7A4E              MOV      R2,#HIGH multikey
+0014EE 7960              MOV      R1,#LOW multikey
+0014F0 7D03              MOV      R5,#03H
+0014F2 1218C4            LCALL    _IPC_TxHidData
+ 1083: 	}
+ 1084: 
+ 1085: 	return;
+ 1086: }
+0014F5         ?C0191?KB_PROCESS:
+0014F5 22                RET      
+----- FUNCTION _kb_motion_keyscan (END) -------
+
+
+----- FUNCTION _kb_set_multikey (BEGIN) -----
+ FILE: 'kb_process.c'
+  202: void kb_set_multikey(word multikey_value)
+  203: {
+;---- Variable 'multikey_value' assigned to Register 'R4/R5' ----
+0014F6 AD07              MOV      R5,AR7
+0014F8 AC06              MOV      R4,AR6
+  204: 	multikey[1] = multikey_value&0xFF;
+  205: 	multikey[2] = (multikey_value>>8)&0xFF;
+0014FA EF                MOV      A,R7
+0014FB 904E61            MOV      DPTR,#multikey+01H
+0014FE F0                MOVX     @DPTR,A
+  206: 	SendReport2 = true;
+0014FF EE                MOV      A,R6
+001500 A3                INC      DPTR
+001501 F0                MOVX     @DPTR,A
+  207: }
+001502 904DEE            MOV      DPTR,#SendReport2
+001505 7401              MOV      A,#01H
+001507 F0                MOVX     @DPTR,A
+  208: 
+001508 22                RET      
+----- FUNCTION _kb_set_multikey (END) -------
+
+
+----- FUNCTION _kb_multikey_setup (BEGIN) -----
+ FILE: 'kb_process.c'
+ 1295: void kb_multikey_setup(tKSEVENT *pEvt)
+ 1296: {
+001509 904EFA            MOV      DPTR,#pEvt
+00150C EB                MOV      A,R3
+00150D F0                MOVX     @DPTR,A
+00150E A3                INC      DPTR
+00150F EA                MOV      A,R2
+001510 F0                MOVX     @DPTR,A
+001511 A3                INC      DPTR
+001512 E9                MOV      A,R1
+001513 F0                MOVX     @DPTR,A
+ 1297: 	byte i = 0;
+ 1298: 	
+001514 E4                CLR      A
+001515 A3                INC      DPTR
+001516 F0                MOVX     @DPTR,A
+ 1299: 	for (i = 0;i < 6;i++)
+001517 F0                MOVX     @DPTR,A
+001518         ?C0233?KB_PROCESS:
+001518 904EFD            MOV      DPTR,#i
+00151B E0                MOVX     A,@DPTR
+00151C FF                MOV      R7,A
+00151D C3                CLR      C
+00151E 9406              SUBB     A,#06H
+001520 4003              JC       $ + 5H
+001522 02180D            LJMP     ?C0292?KB_PROCESS
+ 1300: 	{		
+ 1301: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+001525 904EFA            MOV      DPTR,#pEvt
+001528 E0                MOVX     A,@DPTR
+001529 FB                MOV      R3,A
+00152A A3                INC      DPTR
+00152B E0                MOVX     A,@DPTR
+00152C FA                MOV      R2,A
+00152D A3                INC      DPTR
+00152E E0                MOVX     A,@DPTR
+00152F 2401              ADD      A,#01H
+001531 F9                MOV      R1,A
+001532 E4                CLR      A
+001533 3A                ADDC     A,R2
+001534 FA                MOV      R2,A
+001535 7E00              MOV      R6,#00H
+001537 E9                MOV      A,R1
+001538 2F                ADD      A,R7
+001539 F9                MOV      R1,A
+00153A EE                MOV      A,R6
+00153B 3A                ADDC     A,R2
+00153C FA                MOV      R2,A
+00153D 1203B6            LCALL    ?C?CLDPTR
+001540 FF                MOV      R7,A
+001541 54F0              ANL      A,#0F0H
+001543 64F0              XRL      A,#0F0H
+001545 600A              JZ       ?C0237?KB_PROCESS
+001547 EF                MOV      A,R7
+001548 54D0              ANL      A,#0D0H
+00154A 64D0              XRL      A,#0D0H
+00154C 6003              JZ       $ + 5H
+00154E 021804            LJMP     ?C0235?KB_PROCESS
+001551         ?C0237?KB_PROCESS:
+ 1302: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+ 1303: 		{
+ 1304: 			
+ 1305: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+001551 1203B6            LCALL    ?C?CLDPTR
+001554 FB                MOV      R3,A
+001555 B4F108            CJNE     A,#0F1H,?C0238?KB_PROCESS
+ 1306: 			{
+ 1307: 				kb_set_multikey(0x0183); 
+001558 7F83              MOV      R7,#083H
+00155A 7E01              MOV      R6,#01H
+00155C 91F6              ACALL    _kb_set_multikey
+ 1308: 			}
+00155E E1D9              AJMP     ?C0239?KB_PROCESS
+001560         ?C0238?KB_PROCESS:
+ 1309: 			else
+ 1310: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+001560 EB                MOV      A,R3
+001561 B4F208            CJNE     A,#0F2H,?C0240?KB_PROCESS
+ 1311: 			{ 
+ 1312: 				kb_set_multikey(0x00cd);
+001564 7FCD              MOV      R7,#0CDH
+001566 7E00              MOV      R6,#00H
+001568 91F6              ACALL    _kb_set_multikey
+ 1313: 			}
+00156A E1D9              AJMP     ?C0239?KB_PROCESS
+00156C         ?C0240?KB_PROCESS:
+ 1314: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+00156C 904EFA            MOV      DPTR,#pEvt
+00156F E0                MOVX     A,@DPTR
+001570 FB                MOV      R3,A
+001571 A3                INC      DPTR
+001572 E0                MOVX     A,@DPTR
+001573 FA                MOV      R2,A
+001574 A3                INC      DPTR
+001575 E0                MOVX     A,@DPTR
+001576 2401              ADD      A,#01H
+001578 F9                MOV      R1,A
+001579 E4                CLR      A
+00157A 3A                ADDC     A,R2
+00157B FA                MOV      R2,A
+00157C A3                INC      DPTR
+00157D E0                MOVX     A,@DPTR
+00157E 7E00              MOV      R6,#00H
+001580 29                ADD      A,R1
+001581 F9                MOV      R1,A
+001582 EE                MOV      A,R6
+001583 3A                ADDC     A,R2
+001584 FA                MOV      R2,A
+001585 1203B6            LCALL    ?C?CLDPTR
+001588 FB                MOV      R3,A
+001589 B4F306            CJNE     A,#0F3H,?C0242?KB_PROCESS
+ 1315: 			{
+ 1316: 				kb_set_multikey(0x00b7);
+00158C 7FB7              MOV      R7,#0B7H
+00158E 91F6              ACALL    _kb_set_multikey
+ 1317: 			}	
+001590 E1D9              AJMP     ?C0239?KB_PROCESS
+001592         ?C0242?KB_PROCESS:
+ 1318: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+001592 EB                MOV      A,R3
+001593 B4F408            CJNE     A,#0F4H,?C0244?KB_PROCESS
+ 1319: 			{
+ 1320: 				kb_set_multikey(0x00b6);
+001596 7FB6              MOV      R7,#0B6H
+001598 7E00              MOV      R6,#00H
+00159A 91F6              ACALL    _kb_set_multikey
+ 1321: 			}
+00159C E1D9              AJMP     ?C0239?KB_PROCESS
+00159E         ?C0244?KB_PROCESS:
+ 1322: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+00159E 904EFA            MOV      DPTR,#pEvt
+0015A1 E0                MOVX     A,@DPTR
+0015A2 FB                MOV      R3,A
+0015A3 A3                INC      DPTR
+0015A4 E0                MOVX     A,@DPTR
+0015A5 FA                MOV      R2,A
+0015A6 A3                INC      DPTR
+0015A7 E0                MOVX     A,@DPTR
+0015A8 2401              ADD      A,#01H
+0015AA F9                MOV      R1,A
+0015AB E4                CLR      A
+0015AC 3A                ADDC     A,R2
+0015AD FA                MOV      R2,A
+0015AE A3                INC      DPTR
+0015AF E0                MOVX     A,@DPTR
+0015B0 7E00              MOV      R6,#00H
+0015B2 29                ADD      A,R1
+0015B3 F9                MOV      R1,A
+0015B4 EE                MOV      A,R6
+0015B5 3A                ADDC     A,R2
+0015B6 FA                MOV      R2,A
+0015B7 1203B6            LCALL    ?C?CLDPTR
+0015BA FB                MOV      R3,A
+0015BB B4F506            CJNE     A,#0F5H,?C0246?KB_PROCESS
+ 1323: 			{
+ 1324: 				kb_set_multikey(0x00b5);
+0015BE 7FB5              MOV      R7,#0B5H
+0015C0 91F6              ACALL    _kb_set_multikey
+ 1325: 			}
+0015C2 E1D9              AJMP     ?C0239?KB_PROCESS
+0015C4         ?C0246?KB_PROCESS:
+ 1326: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+0015C4 EB                MOV      A,R3
+0015C5 B4F608            CJNE     A,#0F6H,?C0248?KB_PROCESS
+ 1327: 			{
+ 1328: 				kb_set_multikey(0x00ea);
+0015C8 7FEA              MOV      R7,#0EAH
+0015CA 7E00              MOV      R6,#00H
+0015CC 91F6              ACALL    _kb_set_multikey
+ 1329: 			}
+0015CE E1D9              AJMP     ?C0239?KB_PROCESS
+0015D0         ?C0248?KB_PROCESS:
+ 1330: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+0015D0 904EFA            MOV      DPTR,#pEvt
+0015D3 E0                MOVX     A,@DPTR
+0015D4 FB                MOV      R3,A
+0015D5 A3                INC      DPTR
+0015D6 E0                MOVX     A,@DPTR
+0015D7 FA                MOV      R2,A
+0015D8 A3                INC      DPTR
+0015D9 E0                MOVX     A,@DPTR
+0015DA 2401              ADD      A,#01H
+0015DC F9                MOV      R1,A
+0015DD E4                CLR      A
+0015DE 3A                ADDC     A,R2
+0015DF FA                MOV      R2,A
+0015E0 A3                INC      DPTR
+0015E1 E0                MOVX     A,@DPTR
+0015E2 7E00              MOV      R6,#00H
+0015E4 29                ADD      A,R1
+0015E5 F9                MOV      R1,A
+0015E6 EE                MOV      A,R6
+0015E7 3A                ADDC     A,R2
+0015E8 FA                MOV      R2,A
+0015E9 1203B6            LCALL    ?C?CLDPTR
+0015EC FB                MOV      R3,A
+0015ED B4F706            CJNE     A,#0F7H,?C0250?KB_PROCESS
+ 1331: 			{
+ 1332: 				kb_set_multikey(0x00e9);
+0015F0 7FE9              MOV      R7,#0E9H
+0015F2 91F6              ACALL    _kb_set_multikey
+ 1333: 			}
+0015F4 E1D9              AJMP     ?C0239?KB_PROCESS
+0015F6         ?C0250?KB_PROCESS:
+ 1334: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+0015F6 EB                MOV      A,R3
+0015F7 B4F808            CJNE     A,#0F8H,?C0252?KB_PROCESS
+ 1335: 			{
+ 1336: 				kb_set_multikey(0x00e2);
+0015FA 7FE2              MOV      R7,#0E2H
+0015FC 7E00              MOV      R6,#00H
+0015FE 91F6              ACALL    _kb_set_multikey
+ 1337: 			}
+001600 E1D9              AJMP     ?C0239?KB_PROCESS
+001602         ?C0252?KB_PROCESS:
+ 1338: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+001602 904EFA            MOV      DPTR,#pEvt
+001605 E0                MOVX     A,@DPTR
+001606 FB                MOV      R3,A
+001607 A3                INC      DPTR
+001608 E0                MOVX     A,@DPTR
+001609 FA                MOV      R2,A
+00160A A3                INC      DPTR
+00160B E0                MOVX     A,@DPTR
+00160C 2401              ADD      A,#01H
+00160E F9                MOV      R1,A
+00160F E4                CLR      A
+001610 3A                ADDC     A,R2
+001611 FA                MOV      R2,A
+001612 A3                INC      DPTR
+001613 E0                MOVX     A,@DPTR
+001614 7E00              MOV      R6,#00H
+001616 29                ADD      A,R1
+001617 F9                MOV      R1,A
+001618 EE                MOV      A,R6
+001619 3A                ADDC     A,R2
+00161A FA                MOV      R2,A
+00161B 1203B6            LCALL    ?C?CLDPTR
+00161E FB                MOV      R3,A
+00161F B4F907            CJNE     A,#0F9H,?C0254?KB_PROCESS
+ 1339: 			{
+ 1340: 				kb_set_multikey(0x0194);
+001622 7F94              MOV      R7,#094H
+001624 0E                INC      R6
+001625 91F6              ACALL    _kb_set_multikey
+ 1341: 			}	
+001627 E1D9              AJMP     ?C0239?KB_PROCESS
+001629         ?C0254?KB_PROCESS:
+ 1342: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+001629 EB                MOV      A,R3
+00162A B4FA08            CJNE     A,#0FAH,?C0256?KB_PROCESS
+ 1343: 			{
+ 1344: 				kb_set_multikey(0x018a);//mail
+00162D 7F8A              MOV      R7,#08AH
+00162F 7E01              MOV      R6,#01H
+001631 91F6              ACALL    _kb_set_multikey
+ 1345: 			}
+001633 E1D9              AJMP     ?C0239?KB_PROCESS
+001635         ?C0256?KB_PROCESS:
+ 1346: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+001635 904EFA            MOV      DPTR,#pEvt
+001638 E0                MOVX     A,@DPTR
+001639 FB                MOV      R3,A
+00163A A3                INC      DPTR
+00163B E0                MOVX     A,@DPTR
+00163C FA                MOV      R2,A
+00163D A3                INC      DPTR
+00163E E0                MOVX     A,@DPTR
+00163F 2401              ADD      A,#01H
+001641 F9                MOV      R1,A
+001642 E4                CLR      A
+001643 3A                ADDC     A,R2
+001644 FA                MOV      R2,A
+001645 A3                INC      DPTR
+001646 E0                MOVX     A,@DPTR
+001647 7E00              MOV      R6,#00H
+001649 29                ADD      A,R1
+00164A F9                MOV      R1,A
+00164B EE                MOV      A,R6
+00164C 3A                ADDC     A,R2
+00164D FA                MOV      R2,A
+00164E 1203B6            LCALL    ?C?CLDPTR
+001651 FB                MOV      R3,A
+001652 B4FB07            CJNE     A,#0FBH,?C0258?KB_PROCESS
+ 1347: 			{
+ 1348: 				kb_set_multikey(0x0192);
+001655 7F92              MOV      R7,#092H
+001657 0E                INC      R6
+001658 91F6              ACALL    _kb_set_multikey
+ 1349: 			}
+00165A E1D9              AJMP     ?C0239?KB_PROCESS
+00165C         ?C0258?KB_PROCESS:
+ 1350: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+00165C EB                MOV      A,R3
+00165D B4D008            CJNE     A,#0D0H,?C0260?KB_PROCESS
+ 1351: 			{
+ 1352: 				kb_set_multikey(0x022a);//www Favorites
+001660 7F2A              MOV      R7,#02AH
+001662 7E02              MOV      R6,#02H
+001664 91F6              ACALL    _kb_set_multikey
+ 1353: 			}
+001666 E1D9              AJMP     ?C0239?KB_PROCESS
+001668         ?C0260?KB_PROCESS:
+ 1354: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+001668 904EFA            MOV      DPTR,#pEvt
+00166B E0                MOVX     A,@DPTR
+00166C FB                MOV      R3,A
+00166D A3                INC      DPTR
+00166E E0                MOVX     A,@DPTR
+00166F FA                MOV      R2,A
+001670 A3                INC      DPTR
+001671 E0                MOVX     A,@DPTR
+001672 2401              ADD      A,#01H
+001674 F9                MOV      R1,A
+001675 E4                CLR      A
+001676 3A                ADDC     A,R2
+001677 FA                MOV      R2,A
+001678 A3                INC      DPTR
+001679 E0                MOVX     A,@DPTR
+00167A 7E00              MOV      R6,#00H
+00167C 29                ADD      A,R1
+00167D F9                MOV      R1,A
+00167E EE                MOV      A,R6
+00167F 3A                ADDC     A,R2
+001680 FA                MOV      R2,A
+001681 1203B6            LCALL    ?C?CLDPTR
+001684 FB                MOV      R3,A
+001685 B4D108            CJNE     A,#0D1H,?C0262?KB_PROCESS
+ 1355: 			{
+ 1356: 				kb_set_multikey(0x0225);
+001688 7F25              MOV      R7,#025H
+00168A 7E02              MOV      R6,#02H
+00168C 91F6              ACALL    _kb_set_multikey
+ 1357: 			}
+00168E E1D9              AJMP     ?C0239?KB_PROCESS
+001690         ?C0262?KB_PROCESS:
+ 1358: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+001690 EB                MOV      A,R3
+001691 B4D308            CJNE     A,#0D3H,?C0264?KB_PROCESS
+ 1359: 			{
+ 1360: 				kb_set_multikey(0x0226);
+001694 7F26              MOV      R7,#026H
+001696 7E02              MOV      R6,#02H
+001698 91F6              ACALL    _kb_set_multikey
+ 1361: 			}
+00169A E1D9              AJMP     ?C0239?KB_PROCESS
+00169C         ?C0264?KB_PROCESS:
+ 1362: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+00169C 904EFA            MOV      DPTR,#pEvt
+00169F E0                MOVX     A,@DPTR
+0016A0 FB                MOV      R3,A
+0016A1 A3                INC      DPTR
+0016A2 E0                MOVX     A,@DPTR
+0016A3 FA                MOV      R2,A
+0016A4 A3                INC      DPTR
+0016A5 E0                MOVX     A,@DPTR
+0016A6 2401              ADD      A,#01H
+0016A8 F9                MOV      R1,A
+0016A9 E4                CLR      A
+0016AA 3A                ADDC     A,R2
+0016AB FA                MOV      R2,A
+0016AC A3                INC      DPTR
+0016AD E0                MOVX     A,@DPTR
+0016AE 7E00              MOV      R6,#00H
+0016B0 29                ADD      A,R1
+0016B1 F9                MOV      R1,A
+0016B2 EE                MOV      A,R6
+0016B3 3A                ADDC     A,R2
+0016B4 FA                MOV      R2,A
+0016B5 1203B6            LCALL    ?C?CLDPTR
+0016B8 FB                MOV      R3,A
+0016B9 B4D208            CJNE     A,#0D2H,?C0266?KB_PROCESS
+ 1363: 			{
+ 1364: 				kb_set_multikey(0x0224);
+0016BC 7F24              MOV      R7,#024H
+0016BE 7E02              MOV      R6,#02H
+0016C0 91F6              ACALL    _kb_set_multikey
+ 1365: 			}
+0016C2 E1D9              AJMP     ?C0239?KB_PROCESS
+0016C4         ?C0266?KB_PROCESS:
+ 1366: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+0016C4 EB                MOV      A,R3
+0016C5 B4D408            CJNE     A,#0D4H,?C0268?KB_PROCESS
+ 1367: 			{
+ 1368: 				kb_set_multikey(0x0227);
+0016C8 7F27              MOV      R7,#027H
+0016CA 7E02              MOV      R6,#02H
+0016CC 91F6              ACALL    _kb_set_multikey
+ 1369: 			}	
+0016CE E1D9              AJMP     ?C0239?KB_PROCESS
+0016D0         ?C0268?KB_PROCESS:
+ 1370: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+0016D0 904EFA            MOV      DPTR,#pEvt
+0016D3 E0                MOVX     A,@DPTR
+0016D4 FB                MOV      R3,A
+0016D5 A3                INC      DPTR
+0016D6 E0                MOVX     A,@DPTR
+0016D7 FA                MOV      R2,A
+0016D8 A3                INC      DPTR
+0016D9 E0                MOVX     A,@DPTR
+0016DA 2401              ADD      A,#01H
+0016DC F9                MOV      R1,A
+0016DD E4                CLR      A
+0016DE 3A                ADDC     A,R2
+0016DF FA                MOV      R2,A
+0016E0 A3                INC      DPTR
+0016E1 E0                MOVX     A,@DPTR
+0016E2 7E00              MOV      R6,#00H
+0016E4 29                ADD      A,R1
+0016E5 F9                MOV      R1,A
+0016E6 EE                MOV      A,R6
+0016E7 3A                ADDC     A,R2
+0016E8 FA                MOV      R2,A
+0016E9 1203B6            LCALL    ?C?CLDPTR
+0016EC FB                MOV      R3,A
+0016ED B4D508            CJNE     A,#0D5H,?C0270?KB_PROCESS
+ 1371: 			{
+ 1372: 				kb_set_multikey(0x0221);
+0016F0 7F21              MOV      R7,#021H
+0016F2 7E02              MOV      R6,#02H
+0016F4 91F6              ACALL    _kb_set_multikey
+ 1373: 			}
+0016F6 E1D9              AJMP     ?C0239?KB_PROCESS
+0016F8         ?C0270?KB_PROCESS:
+ 1374: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+0016F8 EB                MOV      A,R3
+0016F9 B4D608            CJNE     A,#0D6H,?C0272?KB_PROCESS
+ 1375: 			{
+ 1376: 				kb_set_multikey(0x0223);
+0016FC 7F23              MOV      R7,#023H
+0016FE 7E02              MOV      R6,#02H
+001700 91F6              ACALL    _kb_set_multikey
+ 1377: 			}
+001702 E1D9              AJMP     ?C0239?KB_PROCESS
+001704         ?C0272?KB_PROCESS:
+ 1378: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+001704 904EFA            MOV      DPTR,#pEvt
+001707 E0                MOVX     A,@DPTR
+001708 FB                MOV      R3,A
+001709 A3                INC      DPTR
+00170A E0                MOVX     A,@DPTR
+00170B FA                MOV      R2,A
+00170C A3                INC      DPTR
+00170D E0                MOVX     A,@DPTR
+00170E 2401              ADD      A,#01H
+001710 F9                MOV      R1,A
+001711 E4                CLR      A
+001712 3A                ADDC     A,R2
+001713 FA                MOV      R2,A
+001714 A3                INC      DPTR
+001715 E0                MOVX     A,@DPTR
+001716 7E00              MOV      R6,#00H
+001718 29                ADD      A,R1
+001719 F9                MOV      R1,A
+00171A EE                MOV      A,R6
+00171B 3A                ADDC     A,R2
+00171C FA                MOV      R2,A
+00171D 1203B6            LCALL    ?C?CLDPTR
+001720 FB                MOV      R3,A
+001721 B4D706            CJNE     A,#0D7H,?C0274?KB_PROCESS
+ 1379: 			{
+ 1380: 				kb_set_multikey(0x0070);
+001724 7F70              MOV      R7,#070H
+001726 91F6              ACALL    _kb_set_multikey
+ 1381: 			}
+001728 E1D9              AJMP     ?C0239?KB_PROCESS
+00172A         ?C0274?KB_PROCESS:
+ 1382: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+00172A EB                MOV      A,R3
+00172B B4D808            CJNE     A,#0D8H,?C0276?KB_PROCESS
+ 1383: 			{
+ 1384: 				kb_set_multikey(0x006f);
+00172E 7F6F              MOV      R7,#06FH
+001730 7E00              MOV      R6,#00H
+001732 91F6              ACALL    _kb_set_multikey
+ 1385: 			}	
+001734 E1D9              AJMP     ?C0239?KB_PROCESS
+001736         ?C0276?KB_PROCESS:
+ 1386: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_IOS_SOFT_KB)  //IOS VIR KB
+001736 904EFA            MOV      DPTR,#pEvt
+001739 E0                MOVX     A,@DPTR
+00173A FB                MOV      R3,A
+00173B A3                INC      DPTR
+00173C E0                MOVX     A,@DPTR
+00173D FA                MOV      R2,A
+00173E A3                INC      DPTR
+00173F E0                MOVX     A,@DPTR
+001740 2401              ADD      A,#01H
+001742 F9                MOV      R1,A
+001743 E4                CLR      A
+001744 3A                ADDC     A,R2
+001745 FA                MOV      R2,A
+001746 A3                INC      DPTR
+001747 E0                MOVX     A,@DPTR
+001748 7E00              MOV      R6,#00H
+00174A 29                ADD      A,R1
+00174B F9                MOV      R1,A
+00174C EE                MOV      A,R6
+00174D 3A                ADDC     A,R2
+00174E FA                MOV      R2,A
+00174F 1203B6            LCALL    ?C?CLDPTR
+001752 FB                MOV      R3,A
+001753 B4D906            CJNE     A,#0D9H,?C0278?KB_PROCESS
+ 1387: 		      	{
+ 1388: 		        	kb_set_multikey(0x00b8);
+001756 7FB8              MOV      R7,#0B8H
+001758 91F6              ACALL    _kb_set_multikey
+ 1389: 		      	}
+00175A 807D              SJMP     ?C0239?KB_PROCESS
+00175C         ?C0278?KB_PROCESS:
+ 1390: 		      else if (pEvt->ksPool[i] ==  HID_MULTIKEY_OS_LOCK)
+00175C EB                MOV      A,R3
+00175D B4DA08            CJNE     A,#0DAH,?C0280?KB_PROCESS
+ 1391: 		      	{
+ 1392: 		        	kb_set_multikey(0x0030);
+001760 7F30              MOV      R7,#030H
+001762 7E00              MOV      R6,#00H
+001764 91F6              ACALL    _kb_set_multikey
+ 1393: 		      	}	
+001766 8071              SJMP     ?C0239?KB_PROCESS
+001768         ?C0280?KB_PROCESS:
+ 1394: 		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SETUP_SHORTCUTS)
+001768 904EFA            MOV      DPTR,#pEvt
+00176B E0                MOVX     A,@DPTR
+00176C FB                MOV      R3,A
+00176D A3                INC      DPTR
+00176E E0                MOVX     A,@DPTR
+00176F FA                MOV      R2,A
+001770 A3                INC      DPTR
+001771 E0                MOVX     A,@DPTR
+001772 2401              ADD      A,#01H
+001774 F9                MOV      R1,A
+001775 E4                CLR      A
+001776 3A                ADDC     A,R2
+001777 FA                MOV      R2,A
+001778 A3                INC      DPTR
+001779 E0                MOVX     A,@DPTR
+00177A 7E00              MOV      R6,#00H
+00177C 29                ADD      A,R1
+00177D F9                MOV      R1,A
+00177E EE                MOV      A,R6
+00177F 3A                ADDC     A,R2
+001780 FA                MOV      R2,A
+001781 1203B6            LCALL    ?C?CLDPTR
+001784 FB                MOV      R3,A
+001785 B4DB08            CJNE     A,#0DBH,?C0282?KB_PROCESS
+ 1395: 		      	{
+ 1396: 		        	kb_set_multikey(0x0306);
+001788 7F06              MOV      R7,#06H
+00178A 7E03              MOV      R6,#03H
+00178C 91F6              ACALL    _kb_set_multikey
+ 1397: 		      	}
+00178E 8049              SJMP     ?C0239?KB_PROCESS
+001790         ?C0282?KB_PROCESS:
+ 1398: 		      	else if (pEvt->ksPool[i] ==  HID_MULTIKEY_ANDROID_SOFT_KB)
+001790 EB                MOV      A,R3
+001791 B4DC08            CJNE     A,#0DCH,?C0284?KB_PROCESS
+ 1399: 		      	{
+ 1400: 		        	kb_set_multikey(0x0307);
+001794 7F07              MOV      R7,#07H
+001796 7E03              MOV      R6,#03H
+001798 91F6              ACALL    _kb_set_multikey
+ 1401: 		      	}
+00179A 803D              SJMP     ?C0239?KB_PROCESS
+00179C         ?C0284?KB_PROCESS:
+ 1402: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_POWER_DOWN)
+00179C 904EFA            MOV      DPTR,#pEvt
+00179F E0                MOVX     A,@DPTR
+0017A0 FB                MOV      R3,A
+0017A1 A3                INC      DPTR
+0017A2 E0                MOVX     A,@DPTR
+0017A3 FA                MOV      R2,A
+0017A4 A3                INC      DPTR
+0017A5 E0                MOVX     A,@DPTR
+0017A6 2401              ADD      A,#01H
+0017A8 F9                MOV      R1,A
+0017A9 E4                CLR      A
+0017AA 3A                ADDC     A,R2
+0017AB FA                MOV      R2,A
+0017AC A3                INC      DPTR
+0017AD E0                MOVX     A,@DPTR
+0017AE 7E00              MOV      R6,#00H
+0017B0 29                ADD      A,R1
+0017B1 F9                MOV      R1,A
+0017B2 EE                MOV      A,R6
+0017B3 3A                ADDC     A,R2
+0017B4 FA                MOV      R2,A
+0017B5 1203B6            LCALL    ?C?CLDPTR
+0017B8 FE                MOV      R6,A
+0017B9 B4DD07            CJNE     A,#0DDH,?C0286?KB_PROCESS
+ 1403: 		      	{
+ 1404: 		        	kb_set_systemkey(0x01);
+0017BC 7F01              MOV      R7,#01H
+0017BE 122826            LCALL    _kb_set_systemkey
+ 1405: 		      	}
+0017C1 8016              SJMP     ?C0239?KB_PROCESS
+0017C3         ?C0286?KB_PROCESS:
+ 1406: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_SLEEP)
+0017C3 EE                MOV      A,R6
+0017C4 B4DE07            CJNE     A,#0DEH,?C0288?KB_PROCESS
+ 1407: 		      	{
+ 1408: 		        	kb_set_systemkey(0x02);
+0017C7 7F02              MOV      R7,#02H
+0017C9 122826            LCALL    _kb_set_systemkey
+ 1409: 		      	}
+0017CC 800B              SJMP     ?C0239?KB_PROCESS
+0017CE         ?C0288?KB_PROCESS:
+ 1410: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_WAKE_UP)
+0017CE 1203B6            LCALL    ?C?CLDPTR
+0017D1 B4DF05            CJNE     A,#0DFH,?C0239?KB_PROCESS
+ 1411: 		      	{
+ 1412: 		        	kb_set_systemkey(0x04);
+0017D4 7F04              MOV      R7,#04H
+0017D6 122826            LCALL    _kb_set_systemkey
+ 1413: 		      	}
+0017D9         ?C0239?KB_PROCESS:
+ 1414: 			
+ 1415: 			if(mult_key_status == KEY_WAIT_RELEASE)
+0017D9 904E5F            MOV      DPTR,#mult_key_status
+0017DC E0                MOVX     A,@DPTR
+0017DD B40224            CJNE     A,#02H,?C0235?KB_PROCESS
+ 1416: 			{
+ 1417: 				mult_key_value = pEvt->ksPool[i];
+0017E0 904EFA            MOV      DPTR,#pEvt
+0017E3 E0                MOVX     A,@DPTR
+0017E4 FB                MOV      R3,A
+0017E5 A3                INC      DPTR
+0017E6 E0                MOVX     A,@DPTR
+0017E7 FA                MOV      R2,A
+0017E8 A3                INC      DPTR
+0017E9 E0                MOVX     A,@DPTR
+0017EA 2401              ADD      A,#01H
+0017EC F9                MOV      R1,A
+0017ED E4                CLR      A
+0017EE 3A                ADDC     A,R2
+0017EF FA                MOV      R2,A
+0017F0 A3                INC      DPTR
+0017F1 E0                MOVX     A,@DPTR
+0017F2 7E00              MOV      R6,#00H
+0017F4 29                ADD      A,R1
+0017F5 F9                MOV      R1,A
+0017F6 EE                MOV      A,R6
+0017F7 3A                ADDC     A,R2
+0017F8 FA                MOV      R2,A
+0017F9 1203B6            LCALL    ?C?CLDPTR
+0017FC 904E00            MOV      DPTR,#mult_key_value
+0017FF F0                MOVX     @DPTR,A
+ 1418: 				pEvt->ksPool[i] = 0;
+001800 E4                CLR      A
+001801 1203FC            LCALL    ?C?CSTPTR
+ 1419: 			}
+ 1420: 		}
+ 1421: 	}
+001804         ?C0235?KB_PROCESS:
+001804 904EFD            MOV      DPTR,#i
+001807 E0                MOVX     A,@DPTR
+001808 04                INC      A
+001809 F0                MOVX     @DPTR,A
+00180A 021518            LJMP     ?C0233?KB_PROCESS
+ 1422: }
+00180D         ?C0292?KB_PROCESS:
+00180D 22                RET      
+----- FUNCTION _kb_multikey_setup (END) -------
+
+
+----- FUNCTION YC_check_is_connected (BEGIN) -----
+ FILE: 'bluetooth.c'
+   77: byte YC_check_is_connected()
+   78: {
+   79: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED
+   80: 		|| g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED
+00180E 904CC9            MOV      DPTR,#g_variable+0AH
+001811 E0                MOVX     A,@DPTR
+001812 6404              XRL      A,#04H
+001814 600F              JZ       ?C0012?BLUETOOTH
+001816 904CC7            MOV      DPTR,#g_variable+08H
+001819 E0                MOVX     A,@DPTR
+00181A 6404              XRL      A,#04H
+00181C 6007              JZ       ?C0012?BLUETOOTH
+00181E 904CC5            MOV      DPTR,#g_variable+06H
+001821 E0                MOVX     A,@DPTR
+001822 B40303            CJNE     A,#03H,?C0011?BLUETOOTH
+001825         ?C0012?BLUETOOTH:
+   81: 		|| g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+   82: 	{
+   83: 		return 1;
+001825 7F01              MOV      R7,#01H
+001827 22                RET      
+   84: 	}
+001828         ?C0011?BLUETOOTH:
+   85: 	return 0;
+001828 7F00              MOV      R7,#00H
+   86: }
+00182A 22                RET      
+----- FUNCTION YC_check_is_connected (END) -------
+
+
+----- FUNCTION YC_check_need_reconnected (BEGIN) -----
+ FILE: 'bluetooth.c'
+   88: byte YC_check_need_reconnected()
+   89: {
+   90: 	byte return_val = 0;
+   91: 	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+00182B E4                CLR      A
+00182C 904F27            MOV      DPTR,#return_val
+00182F F0                MOVX     @DPTR,A
+   92: 		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+001830 904CC8            MOV      DPTR,#g_variable+09H
+001833 E0                MOVX     A,@DPTR
+001834 6402              XRL      A,#02H
+001836 6007              JZ       ?C0015?BLUETOOTH
+001838 904CCA            MOV      DPTR,#g_variable+0BH
+00183B E0                MOVX     A,@DPTR
+00183C B40206            CJNE     A,#02H,?C0014?BLUETOOTH
+00183F         ?C0015?BLUETOOTH:
+   93: 		return return_val;
+00183F 904F27            MOV      DPTR,#return_val
+001842 E0                MOVX     A,@DPTR
+001843 FF                MOV      R7,A
+001844 22                RET      
+001845         ?C0014?BLUETOOTH:
+   94: #if 1
+   95: #if DEVICE_MODE_BT_ONLY
+   96: 	if ((m_ui_state_map & 0x4000) == 0x4000)
+   97: #elif DEVICE_MODE_BLE_ONLY	
+   98: 	if ((m_ui_state_map & 0x0008) == 0x0008)
+   99: #else	
+  100: 	if ((m_ui_state_map & 0x4008) == 0x4008)		//ADV and DISCOVERY
+001845 9047F4            MOV      DPTR,#m_ui_state_map
+001848 E0                MOVX     A,@DPTR
+001849 5440              ANL      A,#040H
+00184B FE                MOV      R6,A
+00184C A3                INC      DPTR
+00184D E0                MOVX     A,@DPTR
+00184E 5408              ANL      A,#08H
+001850 FF                MOV      R7,A
+001851 BE4009            CJNE     R6,#040H,?C0017?BLUETOOTH
+001854 BF0806            CJNE     R7,#08H,?C0017?BLUETOOTH
+  101: #endif	
+  102:          return return_val;
+001857 904F27            MOV      DPTR,#return_val
+00185A E0                MOVX     A,@DPTR
+00185B FF                MOV      R7,A
+00185C 22                RET      
+00185D         ?C0017?BLUETOOTH:
+  103: #else
+  104:           if(g_variable.modeflag == 1)
+  105:           {
+  106:                   if ((m_ui_state_map & 0x4000) == 0x4000)
+  107:                       return return_val;
+  108:           }
+  109:           else if(g_variable.modeflag == 2)
+  110:           {
+  111:                  if ((m_ui_state_map & 0x0008) == 0x0008)
+  112:                     return return_val;
+  113:           }
+  114: #endif
+  115: 
+  116: 
+  117: 	if(g_variable.pairing_g24_timeout)
+00185D 904CEE            MOV      DPTR,#g_variable+02FH
+001860 E0                MOVX     A,@DPTR
+001861 6006              JZ       ?C0018?BLUETOOTH
+  118: 		return return_val;
+001863 904F27            MOV      DPTR,#return_val
+001866 E0                MOVX     A,@DPTR
+001867 FF                MOV      R7,A
+001868 22                RET      
+001869         ?C0018?BLUETOOTH:
+  119: 
+  120: 	if ( g_variable.br_currentState == CHANGE_TO_BR_DISCONNECT
+001869 904CC9            MOV      DPTR,#g_variable+0AH
+00186C E0                MOVX     A,@DPTR
+00186D 7045              JNZ      ?C0019?BLUETOOTH
+00186F 904CC7            MOV      DPTR,#g_variable+08H
+001872 E0                MOVX     A,@DPTR
+001873 703F              JNZ      ?C0019?BLUETOOTH
+001875 904CC5            MOV      DPTR,#g_variable+06H
+001878 E0                MOVX     A,@DPTR
+001879 6403              XRL      A,#03H
+00187B 6037              JZ       ?C0019?BLUETOOTH
+  121: 		&& g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT
+  122: 		&& g_variable.g24_currentState != CHANGE_TO_24G_CONNECTED
+  123: 	)
+  124: 	{
+  125: 		if(g_variable.recon_delay == 0)
+00187D 904CEF            MOV      DPTR,#g_variable+030H
+001880 E0                MOVX     A,@DPTR
+001881 703B              JNZ      ?C0024?BLUETOOTH
+  126: 		{
+  127: 			g_variable.recon_delay = 10;
+001883 740A              MOV      A,#0AH
+001885 F0                MOVX     @DPTR,A
+  128: 			if ((g_variable.recon_count == 0)
+001886 A3                INC      DPTR
+001887 E0                MOVX     A,@DPTR
+001888 7034              JNZ      ?C0024?BLUETOOTH
+00188A 904DFE            MOV      DPTR,#power_on_flag
+00188D E0                MOVX     A,@DPTR
+00188E 6402              XRL      A,#02H
+001890 702C              JNZ      ?C0024?BLUETOOTH
+  129: 			&& (power_on_flag == 2))
+  130: 			{				
+  131: 				if (g_variable.current_device_num >= 1 && g_variable.current_device_num <= 3)
+001892 904CC3            MOV      DPTR,#g_variable+04H
+001895 E0                MOVX     A,@DPTR
+001896 FF                MOV      R7,A
+001897 C3                CLR      C
+001898 9401              SUBB     A,#01H
+00189A 400B              JC       ?C0022?BLUETOOTH
+00189C EF                MOV      A,R7
+00189D D3                SETB     C
+00189E 9403              SUBB     A,#03H
+0018A0 5005              JNC      ?C0022?BLUETOOTH
+  132: 				{
+  133: 					YC_key_action_handle(g_variable.current_device_num);
+0018A2 12091C            LCALL    _YC_key_action_handle
+  134: 				}
+0018A5 8017              SJMP     ?C0024?BLUETOOTH
+0018A7         ?C0022?BLUETOOTH:
+  135: 				else
+  136: 				{
+  137: 					YC_key_action_handle(KEY_OPEN_24G);
+0018A7 7F09              MOV      R7,#09H
+0018A9 12091C            LCALL    _YC_key_action_handle
+  138: 					return_val = 1;
+0018AC 904F27            MOV      DPTR,#return_val
+0018AF 7401              MOV      A,#01H
+0018B1 F0                MOVX     @DPTR,A
+  139: 				}
+  140: 			}
+  141: 		}
+  142: 	}
+0018B2 800A              SJMP     ?C0024?BLUETOOTH
+0018B4         ?C0019?BLUETOOTH:
+  143: 	else
+  144: 	{
+  145: 		g_variable.release_data = 0;
+0018B4 E4                CLR      A
+0018B5 904CEB            MOV      DPTR,#g_variable+02CH
+0018B8 F0                MOVX     @DPTR,A
+  146: 		return_val = 1;
+0018B9 904F27            MOV      DPTR,#return_val
+0018BC 04                INC      A
+0018BD F0                MOVX     @DPTR,A
+  147: 	}
+0018BE         ?C0024?BLUETOOTH:
+  148: 	return return_val;
+0018BE 904F27            MOV      DPTR,#return_val
+0018C1 E0                MOVX     A,@DPTR
+0018C2 FF                MOV      R7,A
+  149: }
+0018C3 22                RET      
+----- FUNCTION YC_check_need_reconnected (END) -------
+
+
+----- FUNCTION _IPC_TxHidData (BEGIN) -----
+ FILE: 'kb_process.c'
+  131: void IPC_TxHidData(byte* dt, byte len)
+  132: {
+0018C4 904E9F            MOV      DPTR,#dt
+0018C7 EB                MOV      A,R3
+0018C8 F0                MOVX     @DPTR,A
+0018C9 A3                INC      DPTR
+0018CA EA                MOV      A,R2
+0018CB F0                MOVX     @DPTR,A
+0018CC A3                INC      DPTR
+0018CD E9                MOV      A,R1
+0018CE F0                MOVX     @DPTR,A
+0018CF A3                INC      DPTR
+0018D0 ED                MOV      A,R5
+0018D1 F0                MOVX     @DPTR,A
+  133: 	xbyte tx_hid_buff[10];
+  134: 	byte i=0;
+;---- Variable 'i' assigned to Register 'R7' ----
+0018D2 E4                CLR      A
+0018D3 FF                MOV      R7,A
+  135: 
+  136: 	for(i==0; i< len; i++)
+0018D4         ?C0027?KB_PROCESS:
+0018D4 904EA2            MOV      DPTR,#len
+0018D7 E0                MOVX     A,@DPTR
+0018D8 FE                MOV      R6,A
+0018D9 EF                MOV      A,R7
+0018DA C3                CLR      C
+0018DB 9E                SUBB     A,R6
+0018DC 5023              JNC      ?C0028?KB_PROCESS
+  137: 	{
+  138: 		tx_hid_buff[i] = dt[i];
+0018DE 904E9F            MOV      DPTR,#dt
+0018E1 E0                MOVX     A,@DPTR
+0018E2 FB                MOV      R3,A
+0018E3 A3                INC      DPTR
+0018E4 E0                MOVX     A,@DPTR
+0018E5 FA                MOV      R2,A
+0018E6 A3                INC      DPTR
+0018E7 E0                MOVX     A,@DPTR
+0018E8 F9                MOV      R1,A
+0018E9 8F82              MOV      DPL,R7
+0018EB 758300            MOV      DPH,#00H
+0018EE 1203CF            LCALL    ?C?CLDOPTR
+0018F1 FE                MOV      R6,A
+0018F2 74A3              MOV      A,#LOW tx_hid_buff
+0018F4 2F                ADD      A,R7
+0018F5 F582              MOV      DPL,A
+0018F7 E4                CLR      A
+0018F8 344E              ADDC     A,#HIGH tx_hid_buff
+0018FA F583              MOV      DPH,A
+0018FC EE                MOV      A,R6
+0018FD F0                MOVX     @DPTR,A
+  139: 	}
+0018FE 0F                INC      R7
+0018FF 80D3              SJMP     ?C0027?KB_PROCESS
+001901         ?C0028?KB_PROCESS:
+  140: 	
+  141: 	if(!YC_check_need_reconnected()) 
+001901 112B              ACALL    YC_check_need_reconnected
+001903 EF                MOV      A,R7
+001904 7002              JNZ      $ + 4H
+001906 21F6              AJMP     ?C0031?KB_PROCESS
+001908         ?C0030?KB_PROCESS:
+  142: 		return;
+  143: 	if (g_variable.release_data)
+001908 904CEB            MOV      DPTR,#g_variable+02CH
+00190B E0                MOVX     A,@DPTR
+00190C 6002              JZ       $ + 4H
+00190E 21F6              AJMP     ?C0031?KB_PROCESS
+001910         ?C0032?KB_PROCESS:
+  144: 		return;
+  145: 
+  146: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+001910 904CC9            MOV      DPTR,#g_variable+0AH
+001913 E0                MOVX     A,@DPTR
+001914 B4040D            CJNE     A,#04H,?C0033?KB_PROCESS
+  147: 	{
+  148: 		IPC_TxBREDRHidData(tx_hid_buff,len);
+001917 7B01              MOV      R3,#01H
+001919 7A4E              MOV      R2,#HIGH tx_hid_buff
+00191B 79A3              MOV      R1,#LOW tx_hid_buff
+00191D 904EA2            MOV      DPTR,#len
+001920 E0                MOVX     A,@DPTR
+001921 FD                MOV      R5,A
+001922 910C              ACALL    _IPC_TxBREDRHidData
+  149: 	}
+001924         ?C0033?KB_PROCESS:
+  150: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+001924 904CC5            MOV      DPTR,#g_variable+06H
+001927 E0                MOVX     A,@DPTR
+001928 6403              XRL      A,#03H
+00192A 6002              JZ       $ + 4H
+00192C 21F6              AJMP     ?C0031?KB_PROCESS
+  151: 	{
+  152: 		if(tx_hid_buff[0] == HID_REPORTID_1)
+00192E 904EA3            MOV      DPTR,#tx_hid_buff
+001931 E0                MOVX     A,@DPTR
+001932 6401              XRL      A,#01H
+001934 7023              JNZ      ?C0035?KB_PROCESS
+  153: 		{
+  154: 			tx_hid_buff[0] = 4;
+001936 7404              MOV      A,#04H
+001938 F0                MOVX     @DPTR,A
+  155: 			if (tx_hid_buff[1] == 0 && tx_hid_buff[3] == 00 && tx_hid_buff[4] == 00 && tx_hid_buff[5] == 0)
+001939 A3                INC      DPTR
+00193A E0                MOVX     A,@DPTR
+00193B 7014              JNZ      ?C0036?KB_PROCESS
+00193D 904EA6            MOV      DPTR,#tx_hid_buff+03H
+001940 E0                MOVX     A,@DPTR
+001941 700E              JNZ      ?C0036?KB_PROCESS
+001943 A3                INC      DPTR
+001944 E0                MOVX     A,@DPTR
+001945 700A              JNZ      ?C0036?KB_PROCESS
+001947 A3                INC      DPTR
+001948 E0                MOVX     A,@DPTR
+001949 7006              JNZ      ?C0036?KB_PROCESS
+  156: 				repeat_send_24g = 0;
+00194B 904DF0            MOV      DPTR,#repeat_send_24g
+00194E F0                MOVX     @DPTR,A
+00194F 8032              SJMP     ?C0038?KB_PROCESS
+001951         ?C0036?KB_PROCESS:
+  157: 			else
+  158: 				repeat_send_24g = 1;			
+001951 904DF0            MOV      DPTR,#repeat_send_24g
+001954 7401              MOV      A,#01H
+001956 F0                MOVX     @DPTR,A
+  159: 		}
+001957 802A              SJMP     ?C0038?KB_PROCESS
+001959         ?C0035?KB_PROCESS:
+  160: 		else if(tx_hid_buff[0] == HID_REPORTID_2)
+001959 904EA3            MOV      DPTR,#tx_hid_buff
+00195C E0                MOVX     A,@DPTR
+00195D B40219            CJNE     A,#02H,?C0039?KB_PROCESS
+  161: 		{
+  162: 			tx_hid_buff[0] = 5;
+001960 7405              MOV      A,#05H
+001962 F0                MOVX     @DPTR,A
+  163: 			if (tx_hid_buff[1] == 00 && tx_hid_buff[2] == 00)
+001963 A3                INC      DPTR
+001964 E0                MOVX     A,@DPTR
+001965 700A              JNZ      ?C0040?KB_PROCESS
+001967 A3                INC      DPTR
+001968 E0                MOVX     A,@DPTR
+001969 7006              JNZ      ?C0040?KB_PROCESS
+  164: 			{
+  165: 				repeat_send_24g = 0;
+00196B 904DF0            MOV      DPTR,#repeat_send_24g
+00196E F0                MOVX     @DPTR,A
+  166: 			}
+00196F 8012              SJMP     ?C0038?KB_PROCESS
+001971         ?C0040?KB_PROCESS:
+  167: 			else
+  168: 			{
+  169: 				repeat_send_24g = 1;
+001971 904DF0            MOV      DPTR,#repeat_send_24g
+001974 7401              MOV      A,#01H
+001976 F0                MOVX     @DPTR,A
+  170: 			}
+  171: 		}
+001977 800A              SJMP     ?C0038?KB_PROCESS
+001979         ?C0039?KB_PROCESS:
+  172: 		else if(tx_hid_buff[0] == HID_REPORTID_3)
+001979 904EA3            MOV      DPTR,#tx_hid_buff
+00197C E0                MOVX     A,@DPTR
+00197D B40303            CJNE     A,#03H,?C0038?KB_PROCESS
+  173: 		{
+  174: 			tx_hid_buff[0] = 7;
+001980 7407              MOV      A,#07H
+001982 F0                MOVX     @DPTR,A
+  175: 		}
+001983         ?C0038?KB_PROCESS:
+  176: 		
+  177: 		if(tx_hid_buff[0] == 0x10)
+001983 904EA3            MOV      DPTR,#tx_hid_buff
+001986 E0                MOVX     A,@DPTR
+001987 6410              XRL      A,#010H
+001989 702B              JNZ      ?C0044?KB_PROCESS
+  178: 		{
+  179: 			tx_hid_buff[0] = 8;
+00198B 7408              MOV      A,#08H
+00198D F0                MOVX     @DPTR,A
+  180: 			if (tx_hid_buff[1] == 0 && tx_hid_buff[2] == 0 && tx_hid_buff[3] == 0 && tx_hid_buff[4] == 0 && tx_hid_buff[5]
+>>  == 0
+00198E A3                INC      DPTR
+00198F E0                MOVX     A,@DPTR
+001990 701E              JNZ      ?C0045?KB_PROCESS
+001992 A3                INC      DPTR
+001993 E0                MOVX     A,@DPTR
+001994 701A              JNZ      ?C0045?KB_PROCESS
+001996 A3                INC      DPTR
+001997 E0                MOVX     A,@DPTR
+001998 7016              JNZ      ?C0045?KB_PROCESS
+00199A A3                INC      DPTR
+00199B E0                MOVX     A,@DPTR
+00199C 7012              JNZ      ?C0045?KB_PROCESS
+00199E A3                INC      DPTR
+00199F E0                MOVX     A,@DPTR
+0019A0 700E              JNZ      ?C0045?KB_PROCESS
+0019A2 A3                INC      DPTR
+0019A3 E0                MOVX     A,@DPTR
+0019A4 700A              JNZ      ?C0045?KB_PROCESS
+0019A6 A3                INC      DPTR
+0019A7 E0                MOVX     A,@DPTR
+0019A8 7006              JNZ      ?C0045?KB_PROCESS
+  181: 			&& tx_hid_buff[6] == 0 && tx_hid_buff[7] == 0)
+  182: 				repeat_send_24g = 0;
+0019AA 904DF0            MOV      DPTR,#repeat_send_24g
+0019AD F0                MOVX     @DPTR,A
+0019AE 8006              SJMP     ?C0044?KB_PROCESS
+0019B0         ?C0045?KB_PROCESS:
+  183: 			else
+  184: 				repeat_send_24g = 1;			
+0019B0 904DF0            MOV      DPTR,#repeat_send_24g
+0019B3 7401              MOV      A,#01H
+0019B5 F0                MOVX     @DPTR,A
+  185: 		}
+0019B6         ?C0044?KB_PROCESS:
+  186: 		if(tx_hid_buff[0] == 0x11)
+0019B6 904EA3            MOV      DPTR,#tx_hid_buff
+0019B9 E0                MOVX     A,@DPTR
+0019BA 6411              XRL      A,#011H
+0019BC 702B              JNZ      ?C0047?KB_PROCESS
+  187: 		{
+  188: 			tx_hid_buff[0] = 9;
+0019BE 7409              MOV      A,#09H
+0019C0 F0                MOVX     @DPTR,A
+  189: 			if (tx_hid_buff[1] == 0 && tx_hid_buff[2] == 0 && tx_hid_buff[3] == 0 && tx_hid_buff[4] == 0 && tx_hid_buff[5]
+>>  == 0
+0019C1 A3                INC      DPTR
+0019C2 E0                MOVX     A,@DPTR
+0019C3 701E              JNZ      ?C0048?KB_PROCESS
+0019C5 A3                INC      DPTR
+0019C6 E0                MOVX     A,@DPTR
+0019C7 701A              JNZ      ?C0048?KB_PROCESS
+0019C9 A3                INC      DPTR
+0019CA E0                MOVX     A,@DPTR
+0019CB 7016              JNZ      ?C0048?KB_PROCESS
+0019CD A3                INC      DPTR
+0019CE E0                MOVX     A,@DPTR
+0019CF 7012              JNZ      ?C0048?KB_PROCESS
+0019D1 A3                INC      DPTR
+0019D2 E0                MOVX     A,@DPTR
+0019D3 700E              JNZ      ?C0048?KB_PROCESS
+0019D5 A3                INC      DPTR
+0019D6 E0                MOVX     A,@DPTR
+0019D7 700A              JNZ      ?C0048?KB_PROCESS
+0019D9 A3                INC      DPTR
+0019DA E0                MOVX     A,@DPTR
+0019DB 7006              JNZ      ?C0048?KB_PROCESS
+  190: 			&& tx_hid_buff[6] == 0 && tx_hid_buff[7] == 0)
+  191: 				repeat_send_24g = 0;
+0019DD 904DF0            MOV      DPTR,#repeat_send_24g
+0019E0 F0                MOVX     @DPTR,A
+0019E1 8006              SJMP     ?C0047?KB_PROCESS
+0019E3         ?C0048?KB_PROCESS:
+  192: 			else
+  193: 				repeat_send_24g = 1;
+0019E3 904DF0            MOV      DPTR,#repeat_send_24g
+0019E6 7401              MOV      A,#01H
+0019E8 F0                MOVX     @DPTR,A
+  194: 		}
+0019E9         ?C0047?KB_PROCESS:
+  195: 		IPC_Tx24GData(tx_hid_buff,len);
+0019E9 7B01              MOV      R3,#01H
+0019EB 7A4E              MOV      R2,#HIGH tx_hid_buff
+0019ED 79A3              MOV      R1,#LOW tx_hid_buff
+0019EF 904EA2            MOV      DPTR,#len
+0019F2 E0                MOVX     A,@DPTR
+0019F3 FD                MOV      R5,A
+0019F4 71DF              ACALL    _IPC_Tx24GData
+  196: 	}
+  197: }
+0019F6         ?C0031?KB_PROCESS:
+0019F6 22                RET      
+----- FUNCTION _IPC_TxHidData (END) -------
+
+
+----- FUNCTION YC_connect_timeout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  510: void YC_connect_timeout_500ms()
+  511: {
+  512: 
+  513: 	if(le_send_battery_level_delay_count)
+0019F7 904DEC            MOV      DPTR,#le_send_battery_level_delay_count
+0019FA E0                MOVX     A,@DPTR
+0019FB 600F              JZ       ?C0086?SYS
+  514: 	{
+  515: 		le_send_battery_level_delay_count--;
+0019FD E0                MOVX     A,@DPTR
+0019FE 14                DEC      A
+0019FF F0                MOVX     @DPTR,A
+  516: 		if(!le_send_battery_level_delay_count)
+001A00 E0                MOVX     A,@DPTR
+001A01 7009              JNZ      ?C0086?SYS
+  517: 		{	
+  518: 			m_lpm_mode = 1;
+001A03 904131            MOV      DPTR,#m_lpm_mode
+001A06 04                INC      A
+001A07 F0                MOVX     @DPTR,A
+  519: 			le_send_battery_level_flag = 1;
+001A08 904DEB            MOV      DPTR,#le_send_battery_level_flag
+001A0B F0                MOVX     @DPTR,A
+  520: 		}
+  521: 	}
+001A0C         ?C0086?SYS:
+  522: 	
+  523: //system long sleep timer
+  524: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+001A0C 904CC9            MOV      DPTR,#g_variable+0AH
+001A0F E0                MOVX     A,@DPTR
+001A10 6404              XRL      A,#04H
+001A12 6008              JZ       ?C0089?SYS
+001A14 904CC7            MOV      DPTR,#g_variable+08H
+001A17 E0                MOVX     A,@DPTR
+001A18 6404              XRL      A,#04H
+001A1A 705B              JNZ      ?C0088?SYS
+001A1C         ?C0089?SYS:
+  525: 		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+  526: 	{
+  527: 		if ((g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED) && m_le_battery_level_display_enable)
+001A1C 904CC7            MOV      DPTR,#g_variable+08H
+001A1F E0                MOVX     A,@DPTR
+001A20 6404              XRL      A,#04H
+001A22 7039              JNZ      ?C0090?SYS
+001A24 904D7E            MOV      DPTR,#m_le_battery_level_display_enable
+001A27 E0                MOVX     A,@DPTR
+001A28 6033              JZ       ?C0090?SYS
+  528: 		{
+  529: 			if(le_send_battery_level_flag || (g_variable.sleepTimer && !(g_variable.sleepTimer & 0x1f)))		// ble battery l
+>> evel updata each 16 second
+001A2A 904DEB            MOV      DPTR,#le_send_battery_level_flag
+001A2D E0                MOVX     A,@DPTR
+001A2E 7010              JNZ      ?C0092?SYS
+001A30 904CE3            MOV      DPTR,#g_variable+024H
+001A33 E0                MOVX     A,@DPTR
+001A34 FE                MOV      R6,A
+001A35 A3                INC      DPTR
+001A36 E0                MOVX     A,@DPTR
+001A37 FF                MOV      R7,A
+001A38 4E                ORL      A,R6
+001A39 6022              JZ       ?C0090?SYS
+001A3B EF                MOV      A,R7
+001A3C 541F              ANL      A,#01FH
+001A3E 701D              JNZ      ?C0090?SYS
+001A40         ?C0092?SYS:
+  530: 			{
+  531: 				le_send_battery_level_flag = 0;
+001A40 E4                CLR      A
+001A41 904DEB            MOV      DPTR,#le_send_battery_level_flag
+001A44 F0                MOVX     @DPTR,A
+  532: 				multikey[0] = HID_REPORTID_BATTERY;	
+001A45 904E60            MOV      DPTR,#multikey
+001A48 7404              MOV      A,#04H
+001A4A F0                MOVX     @DPTR,A
+  533: 				multikey[1] = g_variable.battery_level_percentage;	
+001A4B 904CF9            MOV      DPTR,#g_variable+03AH
+001A4E E0                MOVX     A,@DPTR
+001A4F 904E61            MOV      DPTR,#multikey+01H
+001A52 F0                MOVX     @DPTR,A
+  534: 				IPC_TxHidData(multikey, 2);
+001A53 7B01              MOV      R3,#01H
+001A55 7A4E              MOV      R2,#HIGH multikey
+001A57 7960              MOV      R1,#LOW multikey
+001A59 7D02              MOV      R5,#02H
+001A5B 11C4              ACALL    _IPC_TxHidData
+  535: 			}
+  536: 		}
+001A5D         ?C0090?SYS:
+  537: 		if (g_variable.sleepTimer == STANDBY_TIMER_5MIN) 
+001A5D 904CE3            MOV      DPTR,#g_variable+024H
+001A60 E0                MOVX     A,@DPTR
+001A61 6402              XRL      A,#02H
+001A63 7004              JNZ      ?C0190?SYS
+001A65 A3                INC      DPTR
+001A66 E0                MOVX     A,@DPTR
+001A67 6458              XRL      A,#058H
+001A69         ?C0190?SYS:
+001A69 6002              JZ       $ + 4H
+001A6B 41EF              AJMP     ?C0104?SYS
+  538: 		{
+  539: 			YC_disconnect_all_link();
+001A6D 120C00            LCALL    YC_disconnect_all_link
+  540: 			g_variable.lockLpm = 1;
+001A70 904CEC            MOV      DPTR,#g_variable+02DH
+001A73 7401              MOV      A,#01H
+001A75 F0                MOVX     @DPTR,A
+  541: 		}
+  542: 	}
+001A76 22                RET      
+001A77         ?C0088?SYS:
+  543: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+001A77 904CC5            MOV      DPTR,#g_variable+06H
+001A7A E0                MOVX     A,@DPTR
+001A7B 6403              XRL      A,#03H
+001A7D 7039              JNZ      ?C0095?SYS
+  544: 	{
+  545: #ifdef PC_SLEEP_STATUS_GET	
+  546: 		if((g_variable.sleepTimer & 0x1f) == 0x10)	// search dongle each 8s
+001A7F 904CE4            MOV      DPTR,#g_variable+025H
+001A82 E0                MOVX     A,@DPTR
+001A83 541F              ANL      A,#01FH
+001A85 6410              XRL      A,#010H
+001A87 701E              JNZ      ?C0096?SYS
+  547: 		{
+  548: 			xmemclear(hidBuff,9);
+001A89 7B01              MOV      R3,#01H
+001A8B 7A48              MOV      R2,#HIGH hidBuff
+001A8D 7900              MOV      R1,#LOW hidBuff
+001A8F 7D09              MOV      R5,#09H
+001A91 FC                MOV      R4,A
+001A92 51F0              ACALL    _xmemclear
+  549: 
+  550: 			mult_key_status = 0;
+001A94 E4                CLR      A
+001A95 904E5F            MOV      DPTR,#mult_key_status
+001A98 F0                MOVX     @DPTR,A
+  551: 			hidBuff[0] = HID_REPORTID_1;		// standard key send
+001A99 904800            MOV      DPTR,#hidBuff
+001A9C 04                INC      A
+001A9D F0                MOVX     @DPTR,A
+  552: 			IPC_TxHidData(hidBuff, 9);
+001A9E FB                MOV      R3,A
+001A9F 7A48              MOV      R2,#HIGH hidBuff
+001AA1 7900              MOV      R1,#LOW hidBuff
+001AA3 7D09              MOV      R5,#09H
+001AA5 11C4              ACALL    _IPC_TxHidData
+  553: 		}
+001AA7         ?C0096?SYS:
+  554: #endif	
+  555: 		if (g_variable.sleepTimer >= STANDBY_TIMER_5MIN)
+001AA7 C3                CLR      C
+001AA8 904CE4            MOV      DPTR,#g_variable+025H
+001AAB E0                MOVX     A,@DPTR
+001AAC 9458              SUBB     A,#058H
+001AAE 904CE3            MOV      DPTR,#g_variable+024H
+001AB1 E0                MOVX     A,@DPTR
+001AB2 9402              SUBB     A,#02H
+001AB4 4039              JC       ?C0104?SYS
+  556: 		{
+  557: 			System_G24_long_lpm();
+001AB6 61B9              AJMP     System_G24_long_lpm
+  558: 		}
+  559: 	}
+001AB8         ?C0095?SYS:
+  560: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+001AB8 904CC5            MOV      DPTR,#g_variable+06H
+001ABB E0                MOVX     A,@DPTR
+001ABC B40111            CJNE     A,#01H,?C0099?SYS
+  561: 	{
+  562: 		if (g_variable.sleepTimer >= BT_PAIRING_TIME_OUT_1MIN)
+001ABF C3                CLR      C
+001AC0 904CE4            MOV      DPTR,#g_variable+025H
+001AC3 E0                MOVX     A,@DPTR
+001AC4 9478              SUBB     A,#078H
+001AC6 904CE3            MOV      DPTR,#g_variable+024H
+001AC9 E0                MOVX     A,@DPTR
+001ACA 9400              SUBB     A,#00H
+001ACC 4021              JC       ?C0104?SYS
+  563: 		{
+  564: 			System_G24_long_lpm();
+001ACE 61B9              AJMP     System_G24_long_lpm
+  565: 		}
+  566: 	}
+001AD0         ?C0099?SYS:
+  567: 	else
+  568: 	{
+  569: 		if (g_variable.sleepTimer >= RECONNECT_TIMER_10S)
+001AD0 C3                CLR      C
+001AD1 904CE4            MOV      DPTR,#g_variable+025H
+001AD4 E0                MOVX     A,@DPTR
+001AD5 9414              SUBB     A,#014H
+001AD7 904CE3            MOV      DPTR,#g_variable+024H
+001ADA E0                MOVX     A,@DPTR
+001ADB 9400              SUBB     A,#00H
+001ADD 4010              JC       ?C0104?SYS
+  570: 		{
+  571: 			if(ble_reconnect_flag)
+001ADF 904DF8            MOV      DPTR,#ble_reconnect_flag
+001AE2 E0                MOVX     A,@DPTR
+001AE3 6007              JZ       ?C0103?SYS
+  572: 			{
+  573: 				ble_reconnect_flag = 0;
+001AE5 E4                CLR      A
+001AE6 F0                MOVX     @DPTR,A
+  574: 				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+001AE7 7F0E              MOV      R7,#0EH
+001AE9 12085F            LCALL    _IPC_TxControlCmd
+  575: 			}
+001AEC         ?C0103?SYS:
+  576: 			System_long_sleep();
+001AEC 120FCF            LCALL    System_long_sleep
+  577: 		}
+  578: 	}
+  579: }
+001AEF         ?C0104?SYS:
+001AEF 22                RET      
+----- FUNCTION YC_connect_timeout_500ms (END) -------
+
+
+----- FUNCTION _xmemclear (BEGIN) -----
+001AF0 904F15            MOV      DPTR,#dest
+001AF3 EB                MOV      A,R3
+001AF4 F0                MOVX     @DPTR,A
+001AF5 A3                INC      DPTR
+001AF6 EA                MOV      A,R2
+001AF7 F0                MOVX     @DPTR,A
+001AF8 A3                INC      DPTR
+001AF9 E9                MOV      A,R1
+001AFA F0                MOVX     @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+001AFB         ?C0008?UTILITIES:
+001AFB ED                MOV      A,R5
+001AFC 1D                DEC      R5
+001AFD AE04              MOV      R6,AR4
+001AFF 7001              JNZ      ?C0026?UTILITIES
+001B01 1C                DEC      R4
+001B02         ?C0026?UTILITIES:
+001B02 4E                ORL      A,R6
+001B03 6016              JZ       ?C0010?UTILITIES
+001B05 904F15            MOV      DPTR,#dest
+001B08 E0                MOVX     A,@DPTR
+001B09 FB                MOV      R3,A
+001B0A A3                INC      DPTR
+001B0B E4                CLR      A
+001B0C 75F001            MOV      B,#01H
+001B0F 120424            LCALL    ?C?ILDIX
+001B12 A9F0              MOV      R1,B
+001B14 FA                MOV      R2,A
+001B15 E4                CLR      A
+001B16 1203FC            LCALL    ?C?CSTPTR
+001B19 80E0              SJMP     ?C0008?UTILITIES
+001B1B         ?C0010?UTILITIES:
+001B1B 22                RET      
+----- FUNCTION _xmemclear (END) -------
+
+
+----- FUNCTION System_clear_mem (BEGIN) -----
+ FILE: 'sys.c'
+   11: static void System_clear_mem()
+   12: {
+   13: 	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
+   14: 	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
+001B1C 7B01              MOV      R3,#01H
+001B1E 7A4C              MOV      R2,#HIGH g_variable
+001B20 79BF              MOV      R1,#LOW g_variable
+001B22 7D65              MOV      R5,#065H
+001B24 7C00              MOV      R4,#00H
+001B26 51F0              ACALL    _xmemclear
+   15: 	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
+001B28 7B01              MOV      R3,#01H
+001B2A 7A4D              MOV      R2,#HIGH ksSelMapOld
+001B2C 7993              MOV      R1,#LOW ksSelMapOld
+001B2E 7D14              MOV      R5,#014H
+001B30 7C00              MOV      R4,#00H
+001B32 51F0              ACALL    _xmemclear
+   16: 	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
+001B34 7B01              MOV      R3,#01H
+001B36 7A4D              MOV      R2,#HIGH ksSelMapCheck
+001B38 79A8              MOV      R1,#LOW ksSelMapCheck
+001B3A 7D14              MOV      R5,#014H
+001B3C 7C00              MOV      R4,#00H
+001B3E 51F0              ACALL    _xmemclear
+   17: 	xmemclear(hidBuff,9);
+001B40 7B01              MOV      R3,#01H
+001B42 7A4D              MOV      R2,#HIGH ksSelMapCurr
+001B44 79BC              MOV      R1,#LOW ksSelMapCurr
+001B46 7D14              MOV      R5,#014H
+001B48 7C00              MOV      R4,#00H
+001B4A 51F0              ACALL    _xmemclear
+   18: 	xmemclear(multikey,9);
+001B4C 7B01              MOV      R3,#01H
+001B4E 7A48              MOV      R2,#HIGH hidBuff
+001B50 7900              MOV      R1,#LOW hidBuff
+001B52 7D09              MOV      R5,#09H
+001B54 7C00              MOV      R4,#00H
+001B56 51F0              ACALL    _xmemclear
+   19:  
+001B58 7B01              MOV      R3,#01H
+001B5A 7A4E              MOV      R2,#HIGH multikey
+001B5C 7960              MOV      R1,#LOW multikey
+001B5E 7D09              MOV      R5,#09H
+001B60 7C00              MOV      R4,#00H
+001B62 51F0              ACALL    _xmemclear
+   20: 	delayChgInvTimer = 0;
+001B64 E4                CLR      A
+001B65 904DF9            MOV      DPTR,#delayChgInvTimer
+001B68 F0                MOVX     @DPTR,A
+   21: 	action_timeout = 0;
+001B69 904DFF            MOV      DPTR,#action_timeout
+001B6C F0                MOVX     @DPTR,A
+   22: 	switch_role_timer = 0;
+001B6D 904DEA            MOV      DPTR,#switch_role_timer
+001B70 F0                MOVX     @DPTR,A
+   23: 
+   24: 	iOS_rec_pinCode = 0;
+001B71 904DF4            MOV      DPTR,#iOS_rec_pinCode
+001B74 F0                MOVX     @DPTR,A
+   25: 	pinCode_flag = 0;
+001B75 904DF1            MOV      DPTR,#pinCode_flag
+001B78 F0                MOVX     @DPTR,A
+   26: 	power_on_flag = 0;
+001B79 904DFE            MOV      DPTR,#power_on_flag
+001B7C F0                MOVX     @DPTR,A
+   27: 	repeat_send_24g = 0;
+001B7D 904DF0            MOV      DPTR,#repeat_send_24g
+001B80 F0                MOVX     @DPTR,A
+   28: 	get_24g_led_send = 0;
+001B81 904DD5            MOV      DPTR,#get_24g_led_send
+001B84 F0                MOVX     @DPTR,A
+   29: 	ble_reconnect_flag = 0;
+001B85 904DF8            MOV      DPTR,#ble_reconnect_flag
+001B88 F0                MOVX     @DPTR,A
+   30: 	press_long_time_flag = 0;
+001B89 904DF6            MOV      DPTR,#press_long_time_flag
+001B8C F0                MOVX     @DPTR,A
+   31: 	mult_key_status = 0;
+001B8D 904E5F            MOV      DPTR,#mult_key_status
+001B90 F0                MOVX     @DPTR,A
+   32: 	long_press_flag = 0;
+001B91 904DEF            MOV      DPTR,#long_press_flag
+001B94 F0                MOVX     @DPTR,A
+   33: 	standard_key_release_flag = 0;
+001B95 904DF2            MOV      DPTR,#standard_key_release_flag
+001B98 F0                MOVX     @DPTR,A
+   34: 	fn_flag = 0;
+001B99 904DF5            MOV      DPTR,#fn_flag
+001B9C F0                MOVX     @DPTR,A
+   35: 	fn_lock_flag = 0;
+001B9D 904DFA            MOV      DPTR,#fn_lock_flag
+001BA0 F0                MOVX     @DPTR,A
+   36: 
+   37: 	mult_key_value = 0;
+001BA1 904E00            MOV      DPTR,#mult_key_value
+001BA4 F0                MOVX     @DPTR,A
+   38: 	m_caps_num_lock = 0xf0;
+001BA5 904CB7            MOV      DPTR,#m_caps_num_lock
+001BA8 74F0              MOV      A,#0F0H
+001BAA F0                MOVX     @DPTR,A
+   39: 	m_caps_num_lock_last = 0xf0; 
+001BAB 904DF3            MOV      DPTR,#m_caps_num_lock_last
+001BAE F0                MOVX     @DPTR,A
+   40: 	m_reconnect_continue = 0;
+001BAF E4                CLR      A
+001BB0 904D38            MOV      DPTR,#m_reconnect_continue
+001BB3 F0                MOVX     @DPTR,A
+   41: 	ble_send_secutiry_request_timer = 0;
+001BB4 904DD4            MOV      DPTR,#ble_send_secutiry_request_timer
+001BB7 F0                MOVX     @DPTR,A
+   42: }
+001BB8 22                RET      
+----- FUNCTION System_clear_mem (END) -------
+
+
+----- FUNCTION System_G24_long_lpm (BEGIN) -----
+ FILE: 'sys.c'
+   87: void System_G24_long_lpm()
+   88: {
+   89: 	LED_all_shutdown();
+   90: 	m_24g_pairing_sm = 0xff;
+001BB9 120ED8            LCALL    LED_all_shutdown
+   91: 	g_variable.g24_long_sleep_flag = 1;
+001BBC 904BEF            MOV      DPTR,#m_24g_pairing_sm
+001BBF 74FF              MOV      A,#0FFH
+001BC1 F0                MOVX     @DPTR,A
+   92: #ifdef PC_SLEEP_STATUS_GET	
+001BC2 904D01            MOV      DPTR,#g_variable+042H
+001BC5 7401              MOV      A,#01H
+001BC7 F0                MOVX     @DPTR,A
+   93: 	m_caps_num_lock = 0xf0;
+001BC8 904CB7            MOV      DPTR,#m_caps_num_lock
+001BCB 74F0              MOV      A,#0F0H
+001BCD F0                MOVX     @DPTR,A
+   94: 	m_caps_num_lock_last = 0xf0; 
+001BCE 904DF3            MOV      DPTR,#m_caps_num_lock_last
+001BD1 F0                MOVX     @DPTR,A
+   95: #endif	
+   96: 	m_24g_enter_hibernate[0]	= 0xff;
+001BD2 904D40            MOV      DPTR,#m_24g_enter_hibernate
+001BD5 74FF              MOV      A,#0FFH
+001BD7 F0                MOVX     @DPTR,A
+   97: 	m_24g_enter_hibernate[1]	= 0xff;
+001BD8 A3                INC      DPTR
+001BD9 F0                MOVX     @DPTR,A
+   98: 	m_24g_enter_hibernate[2]	= 0xff;
+001BDA A3                INC      DPTR
+001BDB F0                MOVX     @DPTR,A
+   99: 	m_24g_enter_hibernate[3]	= 0xff;
+001BDC A3                INC      DPTR
+001BDD F0                MOVX     @DPTR,A
+  100: }
+001BDE 22                RET      
+----- FUNCTION System_G24_long_lpm (END) -------
+
+
+----- FUNCTION _IPC_Tx24GData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001BDF 900BE7            MOV      DPTR,#ipcSendBuff
+001BE2 7406              MOV      A,#06H
+001BE4 F0                MOVX     @DPTR,A
+;----                  JMP      _IPC_TxData
+----- FUNCTION _IPC_Tx24GData (END) -------
+
+
+----- FUNCTION _IPC_TxData (BEGIN) -----
+001BE5 904F2F            MOV      DPTR,#len
+001BE8 ED                MOV      A,R5
+001BE9 F0                MOVX     @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001BEA E0                MOVX     A,@DPTR
+001BEB FD                MOV      R5,A
+001BEC 900BE8            MOV      DPTR,#ipcSendBuff+01H
+001BEF F0                MOVX     @DPTR,A
+001BF0 7E0B              MOV      R6,#HIGH ipcSendBuff+02H
+001BF2 7FE9              MOV      R7,#LOW ipcSendBuff+02H
+001BF4 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+001BF7 ED                MOV      A,R5
+001BF8 F0                MOVX     @DPTR,A
+001BF9 1210CE            LCALL    _xmemcpy
+001BFC 7B01              MOV      R3,#01H
+001BFE 7A0B              MOV      R2,#HIGH ipcSendBuff
+001C00 79E7              MOV      R1,#LOW ipcSendBuff
+001C02 904F2F            MOV      DPTR,#len
+001C05 E0                MOVX     A,@DPTR
+001C06 2402              ADD      A,#02H
+001C08 FD                MOV      R5,A
+001C09 020887            LJMP     _ipcTx
+----- FUNCTION _IPC_TxData (END) -------
+
+
+----- FUNCTION _IPC_TxBREDRHidData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001C0C 900BE7            MOV      DPTR,#ipcSendBuff
+001C0F 7403              MOV      A,#03H
+001C11 F0                MOVX     @DPTR,A
+001C12 ED                MOV      A,R5
+001C13 6002              JZ       ?C0017?IPC
+001C15         ?C0016?IPC:
+001C15 71E5              ACALL    _IPC_TxData
+001C17         ?C0017?IPC:
+001C17 22                RET      
+----- FUNCTION _IPC_TxBREDRHidData (END) -------
+
+
+----- FUNCTION System_Software_init (BEGIN) -----
+ FILE: 'sys.c'
+   62: void System_Software_init()
+   63: {
+   64: 	System_clear_mem();
+   65: 	YC_adc_init();
+001C18 711C              ACALL    System_clear_mem
+   66: 	g_variable.release_data =1;
+001C1A 12368E            LCALL    YC_adc_init
+   67: 	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+001C1D 904CEB            MOV      DPTR,#g_variable+02CH
+001C20 7401              MOV      A,#01H
+001C22 F0                MOVX     @DPTR,A
+   68: 	g_variable.recon_count = 0;
+001C23 904CE5            MOV      DPTR,#g_variable+026H
+001C26 741E              MOV      A,#01EH
+001C28 F0                MOVX     @DPTR,A
+   69: 	g_variable.test_buff = 0xff;
+001C29 E4                CLR      A
+001C2A 904CF0            MOV      DPTR,#g_variable+031H
+001C2D F0                MOVX     @DPTR,A
+   70: 	le_lap_temp[0] = m_le_lap[3];
+001C2E 904D1A            MOV      DPTR,#g_variable+05BH
+001C31 74FF              MOV      A,#0FFH
+001C33 F0                MOVX     @DPTR,A
+   71: 	le_lap_temp[1] = m_le_lap[4];
+001C34 9044FC            MOV      DPTR,#m_le_lap+03H
+001C37 E0                MOVX     A,@DPTR
+001C38 904DD0            MOV      DPTR,#le_lap_temp
+001C3B F0                MOVX     @DPTR,A
+   72: 	le_lap_temp[2] = m_le_lap[5];
+001C3C 9044FD            MOV      DPTR,#m_le_lap+04H
+001C3F E0                MOVX     A,@DPTR
+001C40 904DD1            MOV      DPTR,#le_lap_temp+01H
+001C43 F0                MOVX     @DPTR,A
+   73: }
+001C44 9044FE            MOV      DPTR,#m_le_lap+05H
+001C47 E0                MOVX     A,@DPTR
+001C48 904DD2            MOV      DPTR,#le_lap_temp+02H
+001C4B F0                MOVX     @DPTR,A
+   74: 
+001C4C 22                RET      
+----- FUNCTION System_Software_init (END) -------
+
+
+----- FUNCTION _kb_send_combination_key (BEGIN) -----
+ FILE: 'kb_process.c'
+  221: void kb_send_combination_key(byte ctrl_value,byte key_value)
+  222: {
+001C4D 904F20            MOV      DPTR,#ctrl_value
+001C50 EF                MOV      A,R7
+001C51 F0                MOVX     @DPTR,A
+001C52 A3                INC      DPTR
+001C53 ED                MOV      A,R5
+001C54 F0                MOVX     @DPTR,A
+  223: 	xmemclear(hidBuff,9);
+  224: 	hidBuff[0] = HID_REPORTID_1;
+001C55 7B01              MOV      R3,#01H
+001C57 7A48              MOV      R2,#HIGH hidBuff
+001C59 7900              MOV      R1,#LOW hidBuff
+001C5B 7D09              MOV      R5,#09H
+001C5D 7C00              MOV      R4,#00H
+001C5F 51F0              ACALL    _xmemclear
+  225: 	hidBuff[1] |= ctrl_value;
+001C61 904800            MOV      DPTR,#hidBuff
+001C64 7401              MOV      A,#01H
+001C66 F0                MOVX     @DPTR,A
+  226: 	hidBuff[3] = key_value; 
+001C67 A3                INC      DPTR
+001C68 E0                MOVX     A,@DPTR
+001C69 FF                MOV      R7,A
+001C6A 904F20            MOV      DPTR,#ctrl_value
+001C6D E0                MOVX     A,@DPTR
+001C6E FE                MOV      R6,A
+001C6F EF                MOV      A,R7
+001C70 4E                ORL      A,R6
+001C71 904801            MOV      DPTR,#hidBuff+01H
+001C74 F0                MOVX     @DPTR,A
+  227: 	IPC_TxHidData(hidBuff, 9);
+001C75 904F21            MOV      DPTR,#key_value
+001C78 E0                MOVX     A,@DPTR
+001C79 904803            MOV      DPTR,#hidBuff+03H
+001C7C F0                MOVX     @DPTR,A
+  228: }
+001C7D 7B01              MOV      R3,#01H
+001C7F 7A48              MOV      R2,#HIGH hidBuff
+001C81 7900              MOV      R1,#LOW hidBuff
+001C83 7D09              MOV      R5,#09H
+001C85 01C4              AJMP     _IPC_TxHidData
+----- FUNCTION _kb_send_combination_key (END) -------
+
+
+----- FUNCTION kb_24g_get_led_status (BEGIN) -----
+ FILE: 'kb_process.c'
+  322: void kb_24g_get_led_status()		//get RF Ack for get numlock/capslock status
+  323: {
+  324: 	if((m_24g_led_flag)&& (repeat_send_24g == 0))
+  325: 	{
+001C87 904D46            MOV      DPTR,#m_24g_led_flag
+001C8A E0                MOVX     A,@DPTR
+001C8B 604A              JZ       ?C0077?KB_PROCESS
+001C8D 904DF0            MOV      DPTR,#repeat_send_24g
+001C90 E0                MOVX     A,@DPTR
+001C91 7044              JNZ      ?C0077?KB_PROCESS
+  326: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+  327: 		{
+001C93 904CC5            MOV      DPTR,#g_variable+06H
+001C96 E0                MOVX     A,@DPTR
+001C97 6403              XRL      A,#03H
+001C99 703C              JNZ      ?C0077?KB_PROCESS
+  328: 			if(delayChgInvTimer_last != delayChgInvTimer)
+  329: 			{
+001C9B 904DF9            MOV      DPTR,#delayChgInvTimer
+001C9E E0                MOVX     A,@DPTR
+001C9F FF                MOV      R7,A
+001CA0 904E01            MOV      DPTR,#delayChgInvTimer_last
+001CA3 E0                MOVX     A,@DPTR
+001CA4 6F                XRL      A,R7
+001CA5 6028              JZ       ?C0076?KB_PROCESS
+  330: 				xmemclear(hidBuff,9);
+  331: 				mult_key_status = 0;
+001CA7 7B01              MOV      R3,#01H
+001CA9 7A48              MOV      R2,#HIGH hidBuff
+001CAB 7900              MOV      R1,#LOW hidBuff
+001CAD 7D09              MOV      R5,#09H
+001CAF 7C00              MOV      R4,#00H
+001CB1 51F0              ACALL    _xmemclear
+  332: 				hidBuff[0] = HID_REPORTID_1;		// standard key send
+001CB3 E4                CLR      A
+001CB4 904E5F            MOV      DPTR,#mult_key_status
+001CB7 F0                MOVX     @DPTR,A
+  333: 				hidBuff[2] = m_24g_led_flag;
+001CB8 904800            MOV      DPTR,#hidBuff
+001CBB 04                INC      A
+001CBC F0                MOVX     @DPTR,A
+  334: 				IPC_TxHidData(hidBuff, 9);
+001CBD 904D46            MOV      DPTR,#m_24g_led_flag
+001CC0 E0                MOVX     A,@DPTR
+001CC1 904802            MOV      DPTR,#hidBuff+02H
+001CC4 F0                MOVX     @DPTR,A
+  335: 			}
+001CC5 7B01              MOV      R3,#01H
+001CC7 7A48              MOV      R2,#HIGH hidBuff
+001CC9 7900              MOV      R1,#LOW hidBuff
+001CCB 7D09              MOV      R5,#09H
+001CCD 11C4              ACALL    _IPC_TxHidData
+  336: 			delayChgInvTimer_last = delayChgInvTimer;
+001CCF         ?C0076?KB_PROCESS:
+  337: 		}	
+001CCF 904DF9            MOV      DPTR,#delayChgInvTimer
+001CD2 E0                MOVX     A,@DPTR
+001CD3 904E01            MOV      DPTR,#delayChgInvTimer_last
+001CD6 F0                MOVX     @DPTR,A
+  338: 	}
+  339: }
+  340: 
+001CD7         ?C0077?KB_PROCESS:
+001CD7 22                RET      
+----- FUNCTION kb_24g_get_led_status (END) -------
+
+
+----- FUNCTION kb_keyscan_send (BEGIN) -----
+ FILE: 'kb_process.c'
+  733: void kb_keyscan_send()
+  734: {
+  735: 	if(g_variable.bit_key1_flag)
+  736: 	{
+001CD8 904D09            MOV      DPTR,#g_variable+04AH
+001CDB E0                MOVX     A,@DPTR
+001CDC 6059              JZ       ?C0110?KB_PROCESS
+  737: 		g_variable.bit_key1_flag = 0;
+  738: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+001CDE E4                CLR      A
+001CDF F0                MOVX     @DPTR,A
+  739: 			kb_hidBuff1[0] = 0x10;
+001CE0 904CC5            MOV      DPTR,#g_variable+06H
+001CE3 E0                MOVX     A,@DPTR
+001CE4 B40308            CJNE     A,#03H,?C0111?KB_PROCESS
+  740: 		else
+001CE7 904DD8            MOV      DPTR,#kb_hidBuff1
+001CEA 7410              MOV      A,#010H
+001CEC F0                MOVX     @DPTR,A
+001CED 8006              SJMP     ?C0112?KB_PROCESS
+001CEF         ?C0111?KB_PROCESS:
+  741: 			kb_hidBuff1[0] = 0x05;
+001CEF 904DD8            MOV      DPTR,#kb_hidBuff1
+001CF2 7405              MOV      A,#05H
+001CF4 F0                MOVX     @DPTR,A
+001CF5         ?C0112?KB_PROCESS:
+  742: 		kb_hidBuff1[1] = g_variable.bit_key1[0];
+001CF5 904D02            MOV      DPTR,#g_variable+043H
+001CF8 E0                MOVX     A,@DPTR
+001CF9 904DD9            MOV      DPTR,#kb_hidBuff1+01H
+001CFC F0                MOVX     @DPTR,A
+  743: 		kb_hidBuff1[2] = g_variable.bit_key1[1];
+001CFD 904D03            MOV      DPTR,#g_variable+044H
+001D00 E0                MOVX     A,@DPTR
+001D01 904DDA            MOV      DPTR,#kb_hidBuff1+02H
+001D04 F0                MOVX     @DPTR,A
+  744: 		kb_hidBuff1[3] = g_variable.bit_key1[2];
+001D05 904D04            MOV      DPTR,#g_variable+045H
+001D08 E0                MOVX     A,@DPTR
+001D09 904DDB            MOV      DPTR,#kb_hidBuff1+03H
+001D0C F0                MOVX     @DPTR,A
+  745: 		kb_hidBuff1[4] = g_variable.bit_key1[3];
+001D0D 904D05            MOV      DPTR,#g_variable+046H
+001D10 E0                MOVX     A,@DPTR
+001D11 904DDC            MOV      DPTR,#kb_hidBuff1+04H
+001D14 F0                MOVX     @DPTR,A
+  746: 		kb_hidBuff1[5] = g_variable.bit_key1[4];
+001D15 904D06            MOV      DPTR,#g_variable+047H
+001D18 E0                MOVX     A,@DPTR
+001D19 904DDD            MOV      DPTR,#kb_hidBuff1+05H
+001D1C F0                MOVX     @DPTR,A
+  747: 		kb_hidBuff1[6] = g_variable.bit_key1[5];
+001D1D 904D07            MOV      DPTR,#g_variable+048H
+001D20 E0                MOVX     A,@DPTR
+001D21 904DDE            MOV      DPTR,#kb_hidBuff1+06H
+001D24 F0                MOVX     @DPTR,A
+  748: 		kb_hidBuff1[7] = g_variable.bit_key1[6];
+001D25 904D08            MOV      DPTR,#g_variable+049H
+001D28 E0                MOVX     A,@DPTR
+001D29 904DDF            MOV      DPTR,#kb_hidBuff1+07H
+001D2C F0                MOVX     @DPTR,A
+  749: 		IPC_TxHidData(kb_hidBuff1, 8);
+001D2D 7B01              MOV      R3,#01H
+001D2F 7A4D              MOV      R2,#HIGH kb_hidBuff1
+001D31 79D8              MOV      R1,#LOW kb_hidBuff1
+001D33 7D08              MOV      R5,#08H
+001D35 11C4              ACALL    _IPC_TxHidData
+  750: 	}
+001D37         ?C0110?KB_PROCESS:
+  751: 	
+  752: 	if(g_variable.bit_key2_flag)
+001D37 904D11            MOV      DPTR,#g_variable+052H
+001D3A E0                MOVX     A,@DPTR
+001D3B 6059              JZ       ?C0116?KB_PROCESS
+  753: 	{
+  754: 		g_variable.bit_key2_flag = 0;
+001D3D E4                CLR      A
+001D3E F0                MOVX     @DPTR,A
+  755: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+001D3F 904CC5            MOV      DPTR,#g_variable+06H
+001D42 E0                MOVX     A,@DPTR
+001D43 B40308            CJNE     A,#03H,?C0114?KB_PROCESS
+  756: 			kb_hidBuff2[0] = 0x11;
+001D46 904DE0            MOV      DPTR,#kb_hidBuff2
+001D49 7411              MOV      A,#011H
+001D4B F0                MOVX     @DPTR,A
+001D4C 8006              SJMP     ?C0115?KB_PROCESS
+001D4E         ?C0114?KB_PROCESS:
+  757: 		else
+  758: 			kb_hidBuff2[0] = 0x06;
+001D4E 904DE0            MOV      DPTR,#kb_hidBuff2
+001D51 7406              MOV      A,#06H
+001D53 F0                MOVX     @DPTR,A
+001D54         ?C0115?KB_PROCESS:
+  759: 		kb_hidBuff2[1] = g_variable.bit_key2[0];
+001D54 904D0A            MOV      DPTR,#g_variable+04BH
+001D57 E0                MOVX     A,@DPTR
+001D58 904DE1            MOV      DPTR,#kb_hidBuff2+01H
+001D5B F0                MOVX     @DPTR,A
+  760: 		kb_hidBuff2[2] = g_variable.bit_key2[1];
+001D5C 904D0B            MOV      DPTR,#g_variable+04CH
+001D5F E0                MOVX     A,@DPTR
+001D60 904DE2            MOV      DPTR,#kb_hidBuff2+02H
+001D63 F0                MOVX     @DPTR,A
+  761: 		kb_hidBuff2[3] = g_variable.bit_key2[2];
+001D64 904D0C            MOV      DPTR,#g_variable+04DH
+001D67 E0                MOVX     A,@DPTR
+001D68 904DE3            MOV      DPTR,#kb_hidBuff2+03H
+001D6B F0                MOVX     @DPTR,A
+  762: 		kb_hidBuff2[4] = g_variable.bit_key2[3];
+001D6C 904D0D            MOV      DPTR,#g_variable+04EH
+001D6F E0                MOVX     A,@DPTR
+001D70 904DE4            MOV      DPTR,#kb_hidBuff2+04H
+001D73 F0                MOVX     @DPTR,A
+  763: 		kb_hidBuff2[5] = g_variable.bit_key2[4];
+001D74 904D0E            MOV      DPTR,#g_variable+04FH
+001D77 E0                MOVX     A,@DPTR
+001D78 904DE5            MOV      DPTR,#kb_hidBuff2+05H
+001D7B F0                MOVX     @DPTR,A
+  764: 		kb_hidBuff2[6] = g_variable.bit_key2[5];
+001D7C 904D0F            MOV      DPTR,#g_variable+050H
+001D7F E0                MOVX     A,@DPTR
+001D80 904DE6            MOV      DPTR,#kb_hidBuff2+06H
+001D83 F0                MOVX     @DPTR,A
+  765: 		kb_hidBuff2[7] = g_variable.bit_key2[6];
+001D84 904D10            MOV      DPTR,#g_variable+051H
+001D87 E0                MOVX     A,@DPTR
+001D88 904DE7            MOV      DPTR,#kb_hidBuff2+07H
+001D8B F0                MOVX     @DPTR,A
+  766: 		IPC_TxHidData(kb_hidBuff2, 8);
+001D8C 7B01              MOV      R3,#01H
+001D8E 7A4D              MOV      R2,#HIGH kb_hidBuff2
+001D90 79E0              MOV      R1,#LOW kb_hidBuff2
+001D92 7D08              MOV      R5,#08H
+001D94 11C4              ACALL    _IPC_TxHidData
+  767: 	}
+  768: }
+001D96         ?C0116?KB_PROCESS:
+001D96 22                RET      
+----- FUNCTION kb_keyscan_send (END) -------
+
+
+----- FUNCTION kb_motion (BEGIN) -----
+ FILE: 'kb_process.c'
+  342: static void kb_motion()
+  343: {
+  344: 	byte temp0 = 0;
+  345: 	byte temp1 = 0;
+001D97 E4                CLR      A
+001D98 904EDE            MOV      DPTR,#temp0
+001D9B F0                MOVX     @DPTR,A
+  346: 	byte temp2 = 0;
+001D9C A3                INC      DPTR
+001D9D F0                MOVX     @DPTR,A
+  347: 	//byte temp3 = 0;
+001D9E A3                INC      DPTR
+001D9F F0                MOVX     @DPTR,A
+  348: 
+  349: 	tKSEVENT *pEvt = NULL;
+001DA0 F9                MOV      R1,A
+001DA1 A3                INC      DPTR
+001DA2 C9                XCH      A,R1
+001DA3 F0                MOVX     @DPTR,A
+001DA4 A3                INC      DPTR
+001DA5 F0                MOVX     @DPTR,A
+001DA6 A3                INC      DPTR
+001DA7 E9                MOV      A,R1
+001DA8 F0                MOVX     @DPTR,A
+  350: 
+  351: 	#ifdef BackLight_ENABLE
+  352: 	if(!g_variable.Backlight_mode_off_flag)
+  353: 	{
+  354: 		Backlight_mode5_sniff();
+  355: 		Backlight_mode7_1();
+  356: 	}
+  357: 	#endif
+  358: 	
+  359: 	if (!IPC_IsTxBuffEmpty()){
+001DA9 F165              ACALL    IPC_IsTxBuffEmpty
+001DAB 4002              JC       $ + 4H
+001DAD E152              AJMP     ?C0079?KB_PROCESS
+  360: 		#ifdef BackLight_ENABLE
+  361: 		if(g_variable.Backlight_mode_flag == 4)
+  362: 		{
+  363: 			delayus(200);
+  364: 			//delayus(200);
+  365: 		}
+  366: 		#endif
+  367: 		return;
+  368: 	}
+001DAF         ?C0078?KB_PROCESS:
+  369: 	
+  370: 	pEvt = KS_GetCurrentEvt();
+001DAF 122AB3            LCALL    KS_GetCurrentEvt
+001DB2 904EE1            MOV      DPTR,#pEvt
+001DB5 EB                MOV      A,R3
+001DB6 F0                MOVX     @DPTR,A
+001DB7 A3                INC      DPTR
+001DB8 EA                MOV      A,R2
+001DB9 F0                MOVX     @DPTR,A
+001DBA A3                INC      DPTR
+001DBB E9                MOV      A,R1
+001DBC F0                MOVX     @DPTR,A
+  371: 
+  372: 	if (pEvt == NULL)
+001DBD 4A                ORL      A,R2
+001DBE 7007              JNZ      ?C0080?KB_PROCESS
+  373: 	{  
+  374: 		m_power_on_flag = 1;
+001DC0 904CB6            MOV      DPTR,#m_power_on_flag
+001DC3 04                INC      A
+001DC4 F0                MOVX     @DPTR,A
+  375: 		kb_24g_get_led_status();
+001DC5 8187              AJMP     kb_24g_get_led_status
+  376: 		return;
+  377: 	}
+001DC7         ?C0080?KB_PROCESS:
+  378: 
+  379: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+001DC7 904CC9            MOV      DPTR,#g_variable+0AH
+001DCA E0                MOVX     A,@DPTR
+001DCB B40406            CJNE     A,#04H,?C0081?KB_PROCESS
+  380: 	{
+  381: 		kscurrmult = 0x3;
+001DCE 904213            MOV      DPTR,#kscurrmult
+001DD1 7403              MOV      A,#03H
+001DD3 F0                MOVX     @DPTR,A
+  382: 	}
+001DD4         ?C0081?KB_PROCESS:
+  383: 	delayChgInvTimer = 10;
+001DD4 904DF9            MOV      DPTR,#delayChgInvTimer
+001DD7 740A              MOV      A,#0AH
+001DD9 F0                MOVX     @DPTR,A
+  384: 
+  385: 	if(g_variable.battery_status == BAT_STATUS_LOW)
+001DDA 904CD5            MOV      DPTR,#g_variable+016H
+001DDD E0                MOVX     A,@DPTR
+001DDE FF                MOV      R7,A
+001DDF B40112            CJNE     A,#01H,?C0082?KB_PROCESS
+  386: 	{
+  387: 		m_24g_enter_hibernate[0]	= 0x00;
+001DE2 E4                CLR      A
+001DE3 904D40            MOV      DPTR,#m_24g_enter_hibernate
+001DE6 F0                MOVX     @DPTR,A
+  388: 		m_24g_enter_hibernate[1]	= 0x48;
+001DE7 A3                INC      DPTR
+001DE8 7448              MOV      A,#048H
+001DEA F0                MOVX     @DPTR,A
+  389: 		m_24g_enter_hibernate[2]	= 0x12;		// 100ms
+001DEB A3                INC      DPTR
+001DEC 7412              MOV      A,#012H
+001DEE F0                MOVX     @DPTR,A
+  390: 		m_24g_enter_hibernate[3]	= 0x00;
+001DEF E4                CLR      A
+001DF0 A3                INC      DPTR
+001DF1 F0                MOVX     @DPTR,A
+  391: 	}
+001DF2 8010              SJMP     ?C0083?KB_PROCESS
+001DF4         ?C0082?KB_PROCESS:
+  392: 	else
+  393: 	{
+  394: 		m_24g_enter_hibernate[0]	= 0x00;
+001DF4 E4                CLR      A
+001DF5 904D40            MOV      DPTR,#m_24g_enter_hibernate
+001DF8 F0                MOVX     @DPTR,A
+  395: 		m_24g_enter_hibernate[1]	= 0x48;
+001DF9 A3                INC      DPTR
+001DFA 7448              MOV      A,#048H
+001DFC F0                MOVX     @DPTR,A
+  396: 		m_24g_enter_hibernate[2]    = 0x5d;		// 510ms
+001DFD A3                INC      DPTR
+001DFE 745D              MOV      A,#05DH
+001E00 F0                MOVX     @DPTR,A
+  397: 		m_24g_enter_hibernate[3]	= 0x00;
+001E01 E4                CLR      A
+001E02 A3                INC      DPTR
+001E03 F0                MOVX     @DPTR,A
+  398: 	}
+001E04         ?C0083?KB_PROCESS:
+  399: 
+  400: 	m_power_on_flag = 1;
+001E04 904CB6            MOV      DPTR,#m_power_on_flag
+001E07 7401              MOV      A,#01H
+001E09 F0                MOVX     @DPTR,A
+  401: 	
+  402: 	#ifdef PC_SLEEP_STATUS_GET
+  403: 	if(m_pc_sleep_flag)		// wake from pc sleep,get led status
+001E0A 904D7D            MOV      DPTR,#m_pc_sleep_flag
+001E0D E0                MOVX     A,@DPTR
+001E0E 6008              JZ       ?C0084?KB_PROCESS
+  404: 	{
+  405: 		m_pc_sleep_flag = 0;
+001E10 E4                CLR      A
+001E11 F0                MOVX     @DPTR,A
+  406: 		m_24g_led_flag = KB_24G_LED_ACK_TYPE;	
+001E12 904D46            MOV      DPTR,#m_24g_led_flag
+001E15 7403              MOV      A,#03H
+001E17 F0                MOVX     @DPTR,A
+  407: 	}
+001E18         ?C0084?KB_PROCESS:
+  408: 	#endif
+  409: 
+  410: 	// if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED) 
+  411: 	// {
+  412: 	// 	//24G娑?閹稿鏁崬銈夊晪閸ョ偠绻,get娑撯偓濞嗩搲APS缁涘ED閻樿埖鈧?
+  413: 	// 	//if((g_variable.In_SLEEP_FLAG)||(g_variable.sleepTimer))
+  414: 	// 	if(g_variable.In_SLEEP_FLAG)
+  415: 	// 	{
+  416: 	// 		//g_variable.In_SLEEP_FLAG = 0;
+  417: 	// 		m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+  418: 	// 		delayChgInvTimer = 10;
+  419: 	// 	}
+  420: 	// }
+  421: 
+  422: 	// g_variable.sleepTimer = 0;
+  423: 	// g_variable.In_SLEEP_FLAG = 0;
+  424: 
+  425: 	temp0 = pEvt->ksPool[0];
+001E18 904EE1            MOV      DPTR,#pEvt
+001E1B E0                MOVX     A,@DPTR
+001E1C FB                MOV      R3,A
+001E1D A3                INC      DPTR
+001E1E E0                MOVX     A,@DPTR
+001E1F FA                MOV      R2,A
+001E20 A3                INC      DPTR
+001E21 E0                MOVX     A,@DPTR
+001E22 F9                MOV      R1,A
+001E23 900001            MOV      DPTR,#01H
+001E26 1203CF            LCALL    ?C?CLDOPTR
+001E29 FE                MOV      R6,A
+001E2A 904EDE            MOV      DPTR,#temp0
+001E2D F0                MOVX     @DPTR,A
+  426: 	temp1 = pEvt->ksPool[1];
+001E2E 900002            MOV      DPTR,#02H
+001E31 1203CF            LCALL    ?C?CLDOPTR
+001E34 904EDF            MOV      DPTR,#temp1
+001E37 F0                MOVX     @DPTR,A
+  427: 	temp2 = pEvt->standardSel;
+001E38 1203B6            LCALL    ?C?CLDPTR
+001E3B 904EE0            MOV      DPTR,#temp2
+001E3E F0                MOVX     @DPTR,A
+  428: 	//temp3 = pEvt->ksPool[2];
+  429: 
+  430: 	if(temp0 == 0x7f){
+001E3F BE7F08            CJNE     R6,#07FH,?C0085?KB_PROCESS
+  431: 		fn_tx_flag = 1;
+001E42 904DE8            MOV      DPTR,#fn_tx_flag
+001E45 7401              MOV      A,#01H
+001E47 F0                MOVX     @DPTR,A
+  432: 	}
+001E48 8005              SJMP     ?C0086?KB_PROCESS
+001E4A         ?C0085?KB_PROCESS:
+  433: 	else {
+  434: 		fn_tx_flag = 0;
+001E4A E4                CLR      A
+001E4B 904DE8            MOV      DPTR,#fn_tx_flag
+001E4E F0                MOVX     @DPTR,A
+  435: 	}
+001E4F         ?C0086?KB_PROCESS:
+  436: 	
+  437: 	if(g_variable.battery_status != BAT_STATUS_SHUT_DOWN)
+001E4F EF                MOV      A,R7
+001E50 6402              XRL      A,#02H
+001E52 7002              JNZ      $ + 4H
+001E54 E13C              AJMP     ?C0087?KB_PROCESS
+  438: 	{
+  439: 		#ifdef OS_Switch_Enable
+  440: 		if (YC_check_is_connected())
+  441: 		{
+  442: 		    if((temp0 == HID_KEY_FN)&&((temp1 == MODE_system_key1)||(temp1 == MODE_system_key2)||(temp1 == MODE_system_
+>> key3)))
+  443: 		    {
+  444: 		        if(OS_Switch_led_Enable){
+  445: 					g_variable.delay_enter_lpm_timer = 7;
+  446: 					g_variable.OS_Switch_led_timer = 6;
+  447: 		        }
+  448: 					
+  449: 				if(temp1 == MODE_system_key1)
+  450: 				{   
+  451: 					g_variable.system_mode = MODE_system_mode1;
+  452: 				}
+  453: 				else if(temp1 == MODE_system_key2)
+  454: 				{
+  455: 					g_variable.system_mode = MODE_system_mode2;
+  456: 				}
+  457: 				else if(temp1 == MODE_system_key3)
+  458: 				{
+  459: 					g_variable.system_mode = MODE_system_mode3;
+  460: 				}
+  461: 
+  462: 				//IIC_SPEED_INIT();
+  463: 					
+  464: 				if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+  465: 				{
+  466: 					IIC_WriteBlock(EEPROM_RECON_INFO_G24_SYTEM_MODE,1,(byte *)&g_variable.system_mode);
+  467: 				}
+  468: 				else if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+  469: 				{
+  470: 					IIC_WriteBlock(EEPROM_RECON_INFO_BASE+31*g_variable.current_device_num-2,1,(byte *)&g_variable.system_mode);
+>> 
+  471: 				}
+  472: 				goto NextLoop;
+  473: 		   	}
+  474: 			
+  475: 			/*if((temp0 == HID_KEY_FN)&&(temp1 == 0x4c))
+  476: 			{
+  477: 				g_variable.Fn_key_lock_flag ^= 1;
+  478: 
+  479: 				//IIC_SPEED_INIT();
+  480: 				if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+  481: 				{
+  482: 					IIC_WriteBlock(EEPROM_G24_Fn_key_lock_flag ,1 ,(byte *)&g_variable.Fn_key_lock_flag);
+  483: 				}
+  484: 				else if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+  485: 				{
+  486: 					IIC_WriteBlock(EEPROM_RECON_INFO_BASE+31*g_variable.current_device_num-1,1,(byte *)&g_variable.Fn_key_lock_f
+>> lag);
+  487: 				}
+  488: 				goto NextLoop;
+  489: 			}*/
+  490: 			
+  491: 		}
+  492: 		#endif
+  493: 
+  494: 		if(temp0 == HID_KEY_ESC)
+001E56 904EDE            MOV      DPTR,#temp0
+001E59 E0                MOVX     A,@DPTR
+001E5A 6429              XRL      A,#029H
+001E5C 706A              JNZ      ?C0088?KB_PROCESS
+  495: 		{
+  496: 			if (temp1 == HID_KEY_Q)  
+001E5E A3                INC      DPTR
+001E5F E0                MOVX     A,@DPTR
+001E60 6414              XRL      A,#014H
+001E62 7058              JNZ      ?C0089?KB_PROCESS
+  497: 			{
+  498: 				g_variable.delay_enter_lpm_timer = 10;
+001E64 904CEA            MOV      DPTR,#g_variable+02BH
+001E67 740A              MOV      A,#0AH
+001E69 F0                MOVX     @DPTR,A
+  499: 			    g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+001E6A 904CCE            MOV      DPTR,#g_variable+0FH
+001E6D E0                MOVX     A,@DPTR
+001E6E 54F7              ANL      A,#0F7H
+001E70 F0                MOVX     @DPTR,A
+  500: 						
+  501: 				if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+001E71 904CC5            MOV      DPTR,#g_variable+06H
+001E74 E0                MOVX     A,@DPTR
+001E75 6401              XRL      A,#01H
+001E77 603B              JZ       ?C0090?KB_PROCESS
+  502: 				{
+  503: 					g_variable.button_flag |= KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001E79 904CCE            MOV      DPTR,#g_variable+0FH
+001E7C E0                MOVX     A,@DPTR
+001E7D 4410              ORL      A,#010H
+001E7F F0                MOVX     @DPTR,A
+  504: 					if( (g_variable.current_device_num != 0) && (g_variable.current_device_num != 0xfe))
+001E80 904CC3            MOV      DPTR,#g_variable+04H
+001E83 E0                MOVX     A,@DPTR
+001E84 FF                MOV      R7,A
+001E85 7002              JNZ      $ + 4H
+001E87 E152              AJMP     ?C0079?KB_PROCESS
+001E89 64FE              XRL      A,#0FEH
+001E8B 7002              JNZ      $ + 4H
+001E8D E152              AJMP     ?C0079?KB_PROCESS
+  505: 					{
+  506: 						m_24g_paring_addr[0] = 0x20;
+001E8F 904BEB            MOV      DPTR,#m_24g_paring_addr
+001E92 7420              MOV      A,#020H
+001E94 F0                MOVX     @DPTR,A
+  507: 						m_24g_paring_addr[1] = 0x15;
+001E95 A3                INC      DPTR
+001E96 7415              MOV      A,#015H
+001E98 F0                MOVX     @DPTR,A
+  508: 						m_24g_paring_addr[2] = 0x10;
+001E99 A3                INC      DPTR
+001E9A 7410              MOV      A,#010H
+001E9C F0                MOVX     @DPTR,A
+  509: 						m_24g_paring_addr[3] = 0x05;
+001E9D A3                INC      DPTR
+001E9E 7405              MOV      A,#05H
+001EA0 F0                MOVX     @DPTR,A
+  510: 								
+  511: 						g_variable.pairing_g24_timeout = G24_PAIRING_TIME_OUT_20S;
+001EA1 904CEE            MOV      DPTR,#g_variable+02FH
+001EA4 7428              MOV      A,#028H
+001EA6 F0                MOVX     @DPTR,A
+  512: 						YC_disconnect_all_link();
+001EA7 120C00            LCALL    YC_disconnect_all_link
+  513: 						Delay1ms(10);
+001EAA 7F0A              MOV      R7,#0AH
+001EAC 120EC0            LCALL    _Delay1ms
+  514: 						//g_variable.reconnect_g24_flag = 0;
+  515: 						YC_key_action_handle(KEY_PAIRING_24G);
+001EAF 7F0A              MOV      R7,#0AH
+001EB1 02091C            LJMP     _YC_key_action_handle
+  516: 					}
+  517: 				}
+001EB4         ?C0090?KB_PROCESS:
+  518: 				else
+  519: 				{
+  520: 					g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001EB4 904CCE            MOV      DPTR,#g_variable+0FH
+001EB7 E0                MOVX     A,@DPTR
+001EB8 54EF              ANL      A,#0EFH
+001EBA F0                MOVX     @DPTR,A
+  521: 				}
+  522: 									
+  523: 				goto NextLoop;
+001EBB 22                RET      
+  524: 			}
+001EBC         ?C0089?KB_PROCESS:
+  525: 
+  526: 			else
+  527: 			{
+  528: 				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+001EBC 904CCE            MOV      DPTR,#g_variable+0FH
+001EBF E0                MOVX     A,@DPTR
+001EC0 54F7              ANL      A,#0F7H
+001EC2 F0                MOVX     @DPTR,A
+  529: 				g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001EC3 54EF              ANL      A,#0EFH
+001EC5 F0                MOVX     @DPTR,A
+  530: 			}
+  531: 		}
+001EC6 800A              SJMP     ?C0095?KB_PROCESS
+001EC8         ?C0088?KB_PROCESS:
+  532: 		else
+  533: 		{
+  534: 			g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+001EC8 904CCE            MOV      DPTR,#g_variable+0FH
+001ECB E0                MOVX     A,@DPTR
+001ECC 54F7              ANL      A,#0F7H
+001ECE F0                MOVX     @DPTR,A
+  535: 			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001ECF 54EF              ANL      A,#0EFH
+001ED1 F0                MOVX     @DPTR,A
+  536: 		}
+001ED2         ?C0095?KB_PROCESS:
+  537: 
+  538: 		if(temp0 == HID_KEY_FN)
+001ED2 904EDE            MOV      DPTR,#temp0
+001ED5 E0                MOVX     A,@DPTR
+001ED6 647F              XRL      A,#07FH
+001ED8 7058              JNZ      ?C0096?KB_PROCESS
+  539: 		{
+  540: 			if(temp1 == HID_KEY_T){
+001EDA A3                INC      DPTR
+001EDB E0                MOVX     A,@DPTR
+001EDC FB                MOV      R3,A
+001EDD B41709            CJNE     A,#017H,?C0097?KB_PROCESS
+  541: 				kb_set_multikey(0x0070);
+001EE0 7F70              MOV      R7,#070H
+001EE2 7E00              MOV      R6,#00H
+001EE4 1214F6            LCALL    _kb_set_multikey
+  542: 				//goto NextLoop;
+  543: 			}
+001EE7 8053              SJMP     ?C0087?KB_PROCESS
+001EE9         ?C0097?KB_PROCESS:
+  544: 			else if(temp1 == HID_KEY_Y){
+001EE9 EB                MOV      A,R3
+001EEA B41C09            CJNE     A,#01CH,?C0099?KB_PROCESS
+  545: 				kb_set_multikey(0x006F);
+001EED 7F6F              MOV      R7,#06FH
+001EEF 7E00              MOV      R6,#00H
+001EF1 1214F6            LCALL    _kb_set_multikey
+  546: 				//goto NextLoop;
+  547: 			}
+001EF4 8046              SJMP     ?C0087?KB_PROCESS
+001EF6         ?C0099?KB_PROCESS:
+  548: 			else if(temp1 == HID_KEY_U){
+001EF6 904EDF            MOV      DPTR,#temp1
+001EF9 E0                MOVX     A,@DPTR
+001EFA FB                MOV      R3,A
+001EFB B41809            CJNE     A,#018H,?C0101?KB_PROCESS
+  549: 				kb_set_multikey(0x0183);
+001EFE 7F83              MOV      R7,#083H
+001F00 7E01              MOV      R6,#01H
+001F02 1214F6            LCALL    _kb_set_multikey
+  550: 				//goto NextLoop;
+  551: 			}
+001F05 8035              SJMP     ?C0087?KB_PROCESS
+001F07         ?C0101?KB_PROCESS:
+  552: 			else if(temp1 == HID_KEY_I){
+001F07 EB                MOV      A,R3
+001F08 B40C09            CJNE     A,#0CH,?C0103?KB_PROCESS
+  553: 				kb_set_multikey(0x00ea);
+001F0B 7FEA              MOV      R7,#0EAH
+001F0D 7E00              MOV      R6,#00H
+001F0F 1214F6            LCALL    _kb_set_multikey
+  554: 				//goto NextLoop;
+  555: 			}
+001F12 8028              SJMP     ?C0087?KB_PROCESS
+001F14         ?C0103?KB_PROCESS:
+  556: 			else if(temp1 == HID_KEY_O){
+001F14 904EDF            MOV      DPTR,#temp1
+001F17 E0                MOVX     A,@DPTR
+001F18 FB                MOV      R3,A
+001F19 B41209            CJNE     A,#012H,?C0105?KB_PROCESS
+  557: 				kb_set_multikey(0x00e9);
+001F1C 7FE9              MOV      R7,#0E9H
+001F1E 7E00              MOV      R6,#00H
+001F20 1214F6            LCALL    _kb_set_multikey
+  558: 				//goto NextLoop;
+  559: 			}
+001F23 8017              SJMP     ?C0087?KB_PROCESS
+001F25         ?C0105?KB_PROCESS:
+  560: 			else if(temp1 == HID_KEY_P){
+001F25 EB                MOV      A,R3
+001F26 B41313            CJNE     A,#013H,?C0087?KB_PROCESS
+  561: 				kb_set_multikey(0x00e2);
+001F29 7FE2              MOV      R7,#0E2H
+001F2B 7E00              MOV      R6,#00H
+001F2D 1214F6            LCALL    _kb_set_multikey
+  562: 				//goto NextLoop;
+  563: 			}
+  564: 		}
+001F30 800A              SJMP     ?C0087?KB_PROCESS
+001F32         ?C0096?KB_PROCESS:
+  565: 		else
+  566: 		{
+  567: 			g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+001F32 904CCE            MOV      DPTR,#g_variable+0FH
+001F35 E0                MOVX     A,@DPTR
+001F36 54F7              ANL      A,#0F7H
+001F38 F0                MOVX     @DPTR,A
+  568: 			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001F39 54EF              ANL      A,#0EFH
+001F3B F0                MOVX     @DPTR,A
+  569: 		}
+  570: 
+  571: 	    //24G 鐎靛湱鐖
+  572: 	    /*
+  573: 		#ifdef COMBO_CONNECT_KEY_ENABLE_FLAG
+  574: 		if((temp0 == COMBO_CONNECT_KEY1_KEY_CODE)&&(temp1 == COMBO_CONNECT_KEY2_KEY_CODE))
+  575: 		{
+  576: 		    g_variable.delay_enter_lpm_timer = 10;
+  577: 
+  578: 			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+  579: 			{
+  580: 				g_variable.button1_flag |= KEY_FLAG_24G_DEVICE_BUTTON;
+  581: 				goto NextLoop;
+  582: 			}
+  583: 			else
+  584: 			{
+  585: 				g_variable.button1_flag &= ~KEY_FLAG_24G_DEVICE_BUTTON;
+  586: 			}
+  587: 		}
+  588: 		else
+  589: 		{
+  590: 			g_variable.button1_flag &= ~KEY_FLAG_24G_DEVICE_BUTTON;
+  591: 		}
+  592: 		#endif
+  593: 		*/
+  594: 	/*	if((temp0 == HID_KEY_ESCAPE)&&(temp1 == HID_KEY_Q))
+  595: 		{
+  596: 			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+  597: 			{   
+  598: 				m_24g_paring_addr[0] = 0x20;
+  599: 				m_24g_paring_addr[1] = 0x15;
+  600: 				m_24g_paring_addr[2] = 0x10;
+  601: 				m_24g_paring_addr[3] = 0x05;
+  602: 				
+  603: 				g_variable.pairing_g24_timeout = G24_PAIRING_TIME_OUT_20S;
+  604: 				YC_disconnect_all_link();
+  605: 				Delay1ms(10);
+  606: 				g_variable.reconnect_g24_flag = 0;
+  607: 				YC_key_action_handle(KEY_PAIRING_24G);
+  608: 			}
+  609: 		}*/
+  610: 
+  611: 		#ifdef BackLight_ENABLE
+  612: 		if(!g_variable.Backlight_mode_off_flag){
+  613: 			Backlight_mode3_1();
+  614: 		}
+  615: 				
+  616: 		if(g_variable.Backlight_sleep_flag){
+  617: 			GPIO_SetOutput(RGB_POWER_ONOFF,1);
+  618: 			g_variable.Backlight_sleep_flag = 0;
+  619: 			Backlight_mode_storage();
+  620: 		}
+  621: 		else {
+  622: 			//濡崇础閸掑洦宕
+  623: 		    if((temp0 == 0x7f)&&(temp1== HID_KEY_0)){\
+  624: 				
+  625: 				GPIO_SetOutput(RGB_POWER_ONOFF,1);
+  626: 				if(g_variable.Backlight_mode_flag == 0){
+  627: 					g_variable.Backlight_mode_flag = 1;
+  628: 				}
+  629: 				else if(g_variable.Backlight_mode_flag == 1){
+  630: 					g_variable.Backlight_mode_flag = 4;
+  631: 				}
+  632: 				else if(g_variable.Backlight_mode_flag == 4){
+  633: 					g_variable.Backlight_mode_flag = 2;
+  634: 				}
+  635: 				else if(g_variable.Backlight_mode_flag == 2){
+  636: 					g_variable.Backlight_mode_flag = 3;
+  637: 				}
+  638: 				else if(g_variable.Backlight_mode_flag == 3){
+  639: 					g_variable.Backlight_mode_flag = 6;
+  640: 				}
+  641: 				/*else if(g_variable.Backlight_mode_flag == 5){
+  642: 					g_variable.Backlight_mode_flag = 6;
+  643: 				}*/
+  644: 				else if(g_variable.Backlight_mode_flag == 6){
+  645: 					g_variable.Backlight_mode_flag = 9;
+  646: 				}
+  647: 				/*else if(g_variable.Backlight_mode_flag == 7){
+  648: 					g_variable.Backlight_mode_flag = 9;
+  649: 				}*/
+  650: 				/*else if(g_variable.Backlight_mode_flag == 8){
+  651: 					g_variable.Backlight_mode_flag = 9;
+  652: 				}*/
+  653: 				else if(g_variable.Backlight_mode_flag == 9){
+  654: 					g_variable.Backlight_mode_flag = 0;
+  655: 				}
+  656: 				Backlight_mode_switch();
+  657: 				goto NextLoop;
+  658: 			}
+  659: 
+  660: 			//閸掑洦宕叉０婊嗗
+  661: 			/*if ((temp0 == 0x7f)&&(temp1== HID_KEY_PAGE_UP)){
+  662: 				g_variable.Backlight_mode_flag = 1;
+  663: 				if(g_variable.Backlight_mode_flag == 1){
+  664: 					/*
+  665: 					if(g_variable.Backlight_color_flag == 0)		
+  666: 						g_variable.Backlight_color_flag = 1;       //缁?
+  667: 					else if(g_variable.Backlight_color_flag == 1)  
+  668: 						g_variable.Backlight_color_flag = 2;       //閽?
+  669: 					else if(g_variable.Backlight_color_flag == 2)
+  670: 						g_variable.Backlight_color_flag = 3;       //姒?
+  671: 					else if(g_variable.Backlight_color_flag == 3)
+  672: 						g_variable.Backlight_color_flag = 4;		//闂?
+  673: 					else if(g_variable.Backlight_color_flag == 4)
+  674: 						g_variable.Backlight_color_flag = 5;		//缁?
+  675: 					else if(g_variable.Backlight_color_flag == 5)
+  676: 						g_variable.Backlight_color_flag = 6;		//閻?
+  677: 					else if(g_variable.Backlight_color_flag == 6)
+  678: 						g_variable.Backlight_color_flag = 0;      //缂?
+  679: 					*/
+  680: 					/*g_variable.Backlight_color_flag++;
+  681: 					if(g_variable.Backlight_color_flag >= 7)
+  682: 						g_variable.Backlight_color_flag = 0;
+  683: 					Backlight_mode1_color_switch();
+  684: 				}
+  685: 				goto NextLoop;
+  686: 			}   */
+  687: 
+  688: 			//閼冲苯鍘滄禍顔煎閸旂姴鍣
+  689: 			if(g_variable.Backlight_mode_flag == 1)
+  690: 			{
+  691: 				if((temp0 == 0x7f)&&((temp1 == HID_KEY_MINUS) ||(temp1 == HID_KEY_EQUAL)))
+  692: 				{
+  693: 					
+  694: 					GPIO_SetOutput(RGB_POWER_ONOFF,1);
+  695: 					if(temp1 == HID_KEY_EQUAL){
+  696: 						if(g_variable.Backlight_lightness_flag == 0){
+  697: 							g_variable.Backlight_lightness_flag = 85;
+  698: 						}
+  699: 						else if(g_variable.Backlight_lightness_flag == 85){
+  700: 							g_variable.Backlight_lightness_flag = 170;
+  701: 						}
+  702: 						else if(g_variable.Backlight_lightness_flag == 170){
+  703: 							g_variable.Backlight_lightness_flag = 255;
+  704: 						}
+  705: 					}
+  706: 					else if(temp1 == HID_KEY_MINUS){
+  707: 						
+  708: 						if(g_variable.Backlight_lightness_flag == 255){
+  709: 							g_variable.Backlight_lightness_flag = 170;
+  710: 						}
+  711: 						else if(g_variable.Backlight_lightness_flag == 170){
+  712: 							g_variable.Backlight_lightness_flag = 85;
+  713: 						}
+  714: 						else if(g_variable.Backlight_lightness_flag == 85){
+  715: 							g_variable.Backlight_lightness_flag = 0;
+  716: 							
+  717: 						}
+  718: 					}
+  719: 					Backlight_mode1_lightness_switch();
+  720: 					goto NextLoop;
+  721: 				}
+  722: 			}
+  723: 		}
+  724: 		#endif
+  725: 	}
+001F3C         ?C0087?KB_PROCESS:
+  726: 	kb_motion_keyscan(pEvt);
+001F3C 904EE1            MOV      DPTR,#pEvt
+001F3F E0                MOVX     A,@DPTR
+001F40 FB                MOV      R3,A
+001F41 A3                INC      DPTR
+001F42 E0                MOVX     A,@DPTR
+001F43 FA                MOV      R2,A
+001F44 A3                INC      DPTR
+001F45 E0                MOVX     A,@DPTR
+001F46 F9                MOV      R1,A
+001F47 121111            LCALL    _kb_motion_keyscan
+  727: 	if (!fast_connect_flag)		
+001F4A 904E69            MOV      DPTR,#fast_connect_flag
+001F4D E0                MOVX     A,@DPTR
+001F4E 7002              JNZ      ?C0079?KB_PROCESS
+  728: 		kb_keyscan_send();
+001F50 91D8              ACALL    kb_keyscan_send
+  729: NextLoop:
+001F52         NextLoop:
+  730: 	;
+  731: }
+001F52         ?C0079?KB_PROCESS:
+001F52 22                RET      
+----- FUNCTION kb_motion (END) -------
+
+
+----- FUNCTION kb_need_keyscan (BEGIN) -----
+ FILE: 'kb_process.c'
+  770: void kb_need_keyscan()
+  771: {
+  772: 	kb_motion();
+  773: 	//  if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+001F53 A197              AJMP     kb_motion
+  774: 	// 	|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+  775: 	// {
+  776: 	// 	kb_bt_pincode_enter();
+  777: 	// }
+  778: 	// else
+  779: 	// {
+  780: 	// 	/*
+  781: 	// 	  if ((GPIO_GetInputStatus(INT_GPIO) == 0) )//&& (tperr == 0))
+  782: 	// 	  {
+  783: 	// 		g_variable.mouse_data_send_flag = 0;
+  784: 	// 		g_variable.delay_enter_lpm_timer = 10;
+  785: 		  	
+  786: 	// 	 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+  787: 	// 	 	{
+  788: 	// 			if(m_customize_timer != g_variable.send_timer)
+  789: 	// 			{
+  790: 	// 				g_variable.send_timer = m_customize_timer;
+  791: 	// 			}
+  792: 	// 			else 
+  793: 	// 				return;
+  794: 	// 		}
+  795: 	// 		Touch_data_get();
+  796: 	// 		kb_set_mouse_data();
+  797: 	// 	}
+  798: 	// 	else
+  799: 	// 	*/
+  800: 	// 	{
+  801: 	// 	//	g_variable.sensor_x_l = 0;
+  802: 	// 	//	g_variable.sensor_x_h = 0;
+  803: 	// 	//	g_variable.sensor_y_l = 0;
+  804: 	// 	//	g_variable.sensor_y_h = 0;
+  805: 	// 	//	g_variable.sensor_wheel = 0;
+  806: 	// 	//	g_variable.sensor_titl = 0;
+  807: 			
+  808: 	// 	if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+  809: 	// 	||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+  810: 	// 	|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+  811: 	// 	)
+  812: 	// 		kb_motion();
+  813: 	// 	else
+  814: 	// 	{
+  815: 	// 		if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+  816: 	// 		{
+  817: 	// 			kb_send_combination_key(g_variable.key_combination_ctrl,0);
+  818: 	// 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+  819: 	// 		}
+  820: 	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+  821: 	// 		{	
+  822: 	// 			g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+  823: 	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+  824: 	// 		}
+  825: 	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+  826: 	// 		{
+  827: 	// 			g_variable.key_combination_keyvalue = 0;
+  828: 	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+  829: 	// 			g_variable.key_combination_ctrl = 0;
+  830: 	// 			if(!g_variable.one_key_press_wait_release_timer)
+  831: 	// 				g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+  832: 	// 			else
+  833: 	// 				g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+  834: 	// 		}
+  835: 	// 		else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
+  836: 	// 		{
+  837: 	// 			g_variable.key_combination_keyvalue = 0;
+  838: 	// 			g_variable.key_combination_ctrl = 0;
+  839: 	// 			kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+  840: 	// 			g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+  841: 	// 		}
+  842: 	// 	}
+  843: 	// 	}
+  844: 	// }
+----- FUNCTION kb_need_keyscan (END) -------
+
+
+----- FUNCTION _IPC_TxSppData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001F55 900BE7            MOV      DPTR,#ipcSendBuff
+001F58 7404              MOV      A,#04H
+001F5A F0                MOVX     @DPTR,A
+001F5B 61E5              AJMP     _IPC_TxData
+----- FUNCTION _IPC_TxSppData (END) -------
+
+
+----- FUNCTION _IPC_TxBleData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001F5D 900BE7            MOV      DPTR,#ipcSendBuff
+001F60 7405              MOV      A,#05H
+001F62 F0                MOVX     @DPTR,A
+001F63 61E5              AJMP     _IPC_TxData
+----- FUNCTION _IPC_TxBleData (END) -------
+
+
+----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
+001F65 904B9C            MOV      DPTR,#ipcTxWritePtr
+001F68 E0                MOVX     A,@DPTR
+001F69 FE                MOV      R6,A
+001F6A A3                INC      DPTR
+001F6B E0                MOVX     A,@DPTR
+001F6C FF                MOV      R7,A
+001F6D 904B9A            MOV      DPTR,#ipcTxReadPtr
+001F70 E0                MOVX     A,@DPTR
+001F71 B50607            CJNE     A,AR6,?C0025?IPC
+001F74 A3                INC      DPTR
+001F75 E0                MOVX     A,@DPTR
+001F76 B50702            CJNE     A,AR7,?C0025?IPC
+001F79 D3                SETB     C
+001F7A 22                RET      
+001F7B         ?C0025?IPC:
+001F7B C3                CLR      C
+001F7C 22                RET      
+----- FUNCTION IPC_IsTxBuffEmpty (END) -------
+
+
+----- FUNCTION kb_cb_Timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  836: static void kb_cb_Timer500ms()
+  837: {
+  838: 	LED_timer500ms();	
+  839: 
+001F7D 123252            LCALL    LED_timer500ms
+  840: 	g_variable.sleepTimer++;
+001F80 904CE4            MOV      DPTR,#g_variable+025H
+001F83 E0                MOVX     A,@DPTR
+001F84 04                INC      A
+001F85 F0                MOVX     @DPTR,A
+001F86 7006              JNZ      ?C0192?SYS
+001F88 904CE3            MOV      DPTR,#g_variable+024H
+001F8B E0                MOVX     A,@DPTR
+001F8C 04                INC      A
+001F8D F0                MOVX     @DPTR,A
+001F8E         ?C0192?SYS:
+  841: 	// if(g_variable.systemflag)
+  842: 	// {
+  843: 	//       systey_ledflash_1s();
+  844:     //        }
+  845: 	YC_adc_check_timer500ms();
+001F8E F1B2              ACALL    YC_adc_check_timer500ms
+  846: 	YC_connect_timeout_500ms();
+001F90 31F7              ACALL    YC_connect_timeout_500ms
+  847: 	kb_button_press_timer500ms();
+001F92 120C3F            LCALL    kb_button_press_timer500ms
+  848: 	YC_wait_disconnect_timer500ms();
+001F95 1235DB            LCALL    YC_wait_disconnect_timer500ms
+  849: 	YC_pairing_timerout_500ms();
+001F98 12362E            LCALL    YC_pairing_timerout_500ms
+  850: 	
+  851: 	
+  852: 	if((g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+001F9B 904CCA            MOV      DPTR,#g_variable+0BH
+001F9E E0                MOVX     A,@DPTR
+001F9F 6402              XRL      A,#02H
+001FA1 6007              JZ       ?C0141?SYS
+001FA3 904CC8            MOV      DPTR,#g_variable+09H
+001FA6 E0                MOVX     A,@DPTR
+001FA7 B40207            CJNE     A,#02H,?C0142?SYS
+001FAA         ?C0141?SYS:
+  853: 	|| (g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE))
+  854: 	{
+  855: 		g_variable.sleepTimer = 0;				//wait macOS enter pincode
+001FAA E4                CLR      A
+001FAB 904CE3            MOV      DPTR,#g_variable+024H
+001FAE F0                MOVX     @DPTR,A
+001FAF A3                INC      DPTR
+001FB0 F0                MOVX     @DPTR,A
+  856: 	}
+  857: 	
+  858: 	return;
+  859: }
+001FB1         ?C0142?SYS:
+001FB1 22                RET      
+----- FUNCTION kb_cb_Timer500ms (END) -------
+
+
+----- FUNCTION YC_adc_check_timer500ms (BEGIN) -----
+ FILE: 'adc.c'
+  115: void YC_adc_check_timer500ms()
+  116: {
+  117: #ifdef  ADC_ENABLE
+  118: 	// adc check timer	
+  119: 	if (g_variable.battery_check_interval)
+001FB2 904CD3            MOV      DPTR,#g_variable+014H
+001FB5 E0                MOVX     A,@DPTR
+001FB6 600B              JZ       ?C0026?ADC
+  120: 	{
+  121: 		g_variable.battery_check_interval--;
+001FB8 14                DEC      A
+001FB9 F0                MOVX     @DPTR,A
+  122: 		if (g_variable.battery_check_interval == 0)
+001FBA E0                MOVX     A,@DPTR
+001FBB 7006              JNZ      ?C0026?ADC
+  123: 		{
+  124: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+001FBD 7405              MOV      A,#05H
+001FBF F0                MOVX     @DPTR,A
+  125: 			YC_adc_check();
+001FC0 12375A            LCALL    YC_adc_check
+  126: 		}
+  127: 	}
+  128: #endif	
+  129: }
+001FC3         ?C0026?ADC:
+001FC3 22                RET      
+----- FUNCTION YC_adc_check_timer500ms (END) -------
+
+
+----- FUNCTION YC_clear_reconnect_flag (BEGIN) -----
+ FILE: 'bluetooth.c'
+  170: void YC_clear_reconnect_flag()  
+  171: {
+  172: 	g_variable.recon_count = 0;
+  173: 	ble_reconnect_flag = 0;
+001FC4 E4                CLR      A
+001FC5 904CF0            MOV      DPTR,#g_variable+031H
+001FC8 F0                MOVX     @DPTR,A
+  174: }
+001FC9 904DF8            MOV      DPTR,#ble_reconnect_flag
+001FCC F0                MOVX     @DPTR,A
+  175: 
+001FCD 22                RET      
+----- FUNCTION YC_clear_reconnect_flag (END) -------
+
+
+----- FUNCTION YC_start_reconnect (BEGIN) -----
+ FILE: 'bluetooth.c'
+  212: void YC_start_reconnect()
+  213: {
+  214: 	power_on_flag = 2;
+  215: 
+001FCE 904DFE            MOV      DPTR,#power_on_flag
+001FD1 7402              MOV      A,#02H
+001FD3 F0                MOVX     @DPTR,A
+  216: 	IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3, (byte *)bd_key_record_list);
+001FD4 7B01              MOV      R3,#01H
+001FD6 7A4E              MOV      R2,#HIGH bd_key_record_list
+001FD8 7902              MOV      R1,#LOW bd_key_record_list
+001FDA 7D5D              MOV      R5,#05DH
+001FDC 7C00              MOV      R4,#00H
+001FDE 7F60              MOV      R7,#060H
+001FE0 7E7F              MOV      R6,#07FH
+001FE2 12204E            LCALL    _IIC_Read
+  217: 	Delay1ms(10);
+001FE5 7F0A              MOV      R7,#0AH
+001FE7 120EC0            LCALL    _Delay1ms
+  218: 	IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+001FEA 7B01              MOV      R3,#01H
+001FEC 7A4C              MOV      R2,#HIGH m_24g_addr
+001FEE 7900              MOV      R1,#LOW m_24g_addr
+001FF0 7D04              MOV      R5,#04H
+001FF2 7C00              MOV      R4,#00H
+001FF4 7F52              MOV      R7,#052H
+001FF6 7E7F              MOV      R6,#07FH
+001FF8 12204E            LCALL    _IIC_Read
+  219: 	Delay1ms(10);
+001FFB 7F0A              MOV      R7,#0AH
+001FFD 120EC0            LCALL    _Delay1ms
+  220: 	IIC_Read(EEPROM_RECON_INFO_G24_FN_LOCK ,1 ,(byte *)&fn_lock_flag);
+002000 7B01              MOV      R3,#01H
+002002 7A4D              MOV      R2,#HIGH fn_lock_flag
+002004 79FA              MOV      R1,#LOW fn_lock_flag
+002006 7D01              MOV      R5,#01H
+002008 7C00              MOV      R4,#00H
+00200A 7F56              MOV      R7,#056H
+00200C 7E7F              MOV      R6,#07FH
+00200E 114E              ACALL    _IIC_Read
+  221: 	Delay1ms(10);
+002010 7F0A              MOV      R7,#0AH
+002012 120EC0            LCALL    _Delay1ms
+  222: 	//IIC_Read(EEPROM_RECON_INFO_G24_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+  223: 	//Delay1ms(10);
+  224: 	
+  225: 	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+002015 904CC3            MOV      DPTR,#g_variable+04H
+002018 E0                MOVX     A,@DPTR
+002019 FF                MOV      R7,A
+00201A D3                SETB     C
+00201B 9403              SUBB     A,#03H
+00201D 501E              JNC      ?C0039?BLUETOOTH
+00201F EF                MOV      A,R7
+002020 C3                CLR      C
+002021 9401              SUBB     A,#01H
+002023 4018              JC       ?C0039?BLUETOOTH
+  226: 	{
+  227: 		//g_variable.system_mode = bd_key_record_list[g_variable.current_device_num - 1].system_mode;
+  228: 		fn_lock_flag = bd_key_record_list[g_variable.current_device_num - 1].fn_lock; 
+002025 E0                MOVX     A,@DPTR
+002026 75F01F            MOV      B,#01FH
+002029 A4                MUL      AB
+00202A 2401              ADD      A,#LOW bd_key_record_list-01H
+00202C F582              MOV      DPL,A
+00202E E4                CLR      A
+00202F 344E              ADDC     A,#HIGH bd_key_record_list-01H
+002031 F583              MOV      DPH,A
+002033 E0                MOVX     A,@DPTR
+002034 904DFA            MOV      DPTR,#fn_lock_flag
+002037 F0                MOVX     @DPTR,A
+  229: 		YC_key_action_handle(g_variable.current_device_num);
+002038 12091C            LCALL    _YC_key_action_handle
+  230: 	}
+00203B 8005              SJMP     ?C0040?BLUETOOTH
+00203D         ?C0039?BLUETOOTH:
+  231: 	else	
+  232: 	{	
+  233: 		YC_key_action_handle(KEY_START_24G);
+00203D 7F08              MOV      R7,#08H
+00203F 12091C            LCALL    _YC_key_action_handle
+  234: 	}
+002042         ?C0040?BLUETOOTH:
+  235: 	if(fn_lock_flag > 1)
+002042 904DFA            MOV      DPTR,#fn_lock_flag
+002045 E0                MOVX     A,@DPTR
+002046 D3                SETB     C
+002047 9401              SUBB     A,#01H
+002049 4002              JC       ?C0042?BLUETOOTH
+  236: 		fn_lock_flag = 0;
+00204B E4                CLR      A
+00204C F0                MOVX     @DPTR,A
+  237: 	//if(g_variable.system_mode > OSMODE_IOS)
+  238: 	//{
+  239: 		//g_variable.system_mode = OSMODE_WINDOWS;
+  240: 	//}	
+  241: }
+00204D         ?C0042?BLUETOOTH:
+00204D 22                RET      
+----- FUNCTION YC_start_reconnect (END) -------
+
+
+----- FUNCTION _IIC_Read (BEGIN) -----
+00204E 904EF5            MOV      DPTR,#len
+002051 EC                MOV      A,R4
+002052 F0                MOVX     @DPTR,A
+002053 A3                INC      DPTR
+002054 ED                MOV      A,R5
+002055 F0                MOVX     @DPTR,A
+002056 A3                INC      DPTR
+002057 EB                MOV      A,R3
+002058 F0                MOVX     @DPTR,A
+002059 A3                INC      DPTR
+00205A EA                MOV      A,R2
+00205B F0                MOVX     @DPTR,A
+00205C A3                INC      DPTR
+00205D E9                MOV      A,R1
+00205E F0                MOVX     @DPTR,A
+;---- Variable 'addr' assigned to Register 'R6/R7' ----
+;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
+00205F 908098            MOV      DPTR,#08098H
+002062 7404              MOV      A,#04H
+002064 F0                MOVX     @DPTR,A
+002065 A3                INC      DPTR
+002066 E4                CLR      A
+002067 F0                MOVX     @DPTR,A
+002068 900CAF            MOV      DPTR,#YC_IICDTbuf
+00206B 74A0              MOV      A,#0A0H
+00206D F0                MOVX     @DPTR,A
+00206E A3                INC      DPTR
+00206F EE                MOV      A,R6
+002070 F0                MOVX     @DPTR,A
+002071 A3                INC      DPTR
+002072 EF                MOV      A,R7
+002073 F0                MOVX     @DPTR,A
+002074 900CB2            MOV      DPTR,#YC_IICDTbuf+03H
+002077 74A1              MOV      A,#0A1H
+002079 F0                MOVX     @DPTR,A
+00207A 7A0C              MOV      R2,#HIGH YC_IICDTbuf
+00207C 79AF              MOV      R1,#LOW YC_IICDTbuf
+00207E 7E0C              MOV      R6,#HIGH YC_IICDTbuf
+002080 7FAF              MOV      R7,#LOW YC_IICDTbuf
+002082 74AF              MOV      A,#LOW YC_IICDTbuf
+002084 FC                MOV      R4,A
+002085 740C              MOV      A,#HIGH YC_IICDTbuf
+002087 FF                MOV      R7,A
+002088 EC                MOV      A,R4
+002089 FE                MOV      R6,A
+00208A EF                MOV      A,R7
+00208B 90809A            MOV      DPTR,#0809AH
+00208E EE                MOV      A,R6
+00208F F0                MOVX     @DPTR,A
+002090 A3                INC      DPTR
+002091 EF                MOV      A,R7
+002092 F0                MOVX     @DPTR,A
+002093 904EF5            MOV      DPTR,#len
+002096 E0                MOVX     A,@DPTR
+002097 FC                MOV      R4,A
+002098 A3                INC      DPTR
+002099 E0                MOVX     A,@DPTR
+00209A FA                MOV      R2,A
+00209B EC                MOV      A,R4
+00209C FF                MOV      R7,A
+00209D EA                MOV      A,R2
+00209E FE                MOV      R6,A
+00209F EF                MOV      A,R7
+0020A0 90809E            MOV      DPTR,#0809EH
+0020A3 EE                MOV      A,R6
+0020A4 F0                MOVX     @DPTR,A
+0020A5 A3                INC      DPTR
+0020A6 EF                MOV      A,R7
+0020A7 F0                MOVX     @DPTR,A
+0020A8 7A0B              MOV      R2,#HIGH IIC_TempBuff
+0020AA 7983              MOV      R1,#LOW IIC_TempBuff
+0020AC 7E0B              MOV      R6,#HIGH IIC_TempBuff
+0020AE 7F83              MOV      R7,#LOW IIC_TempBuff
+0020B0 7483              MOV      A,#LOW IIC_TempBuff
+0020B2 FC                MOV      R4,A
+0020B3 740B              MOV      A,#HIGH IIC_TempBuff
+0020B5 FF                MOV      R7,A
+0020B6 EC                MOV      A,R4
+0020B7 FE                MOV      R6,A
+0020B8 EF                MOV      A,R7
+0020B9 90809C            MOV      DPTR,#0809CH
+0020BC EE                MOV      A,R6
+0020BD F0                MOVX     @DPTR,A
+0020BE A3                INC      DPTR
+0020BF EF                MOV      A,R7
+0020C0 F0                MOVX     @DPTR,A
+0020C1 908090            MOV      DPTR,#08090H
+0020C4 7402              MOV      A,#02H
+0020C6 F0                MOVX     @DPTR,A
+0020C7 90809C            MOV      DPTR,#0809CH
+0020CA A3                INC      DPTR
+0020CB E0                MOVX     A,@DPTR
+0020CC 20E707            JB       ACC.7,?C0004?IIC
+0020CF 908090            MOV      DPTR,#08090H
+0020D2 E0                MOVX     A,@DPTR
+0020D3 4401              ORL      A,#01H
+0020D5 F0                MOVX     @DPTR,A
+0020D6         ?C0004?IIC:
+0020D6 908006            MOV      DPTR,#08006H
+0020D9 E0                MOVX     A,@DPTR
+0020DA 4404              ORL      A,#04H
+0020DC F0                MOVX     @DPTR,A
+0020DD F1DB              ACALL    IIcWaitDone
+0020DF 904EF7            MOV      DPTR,#pbuff
+0020E2 E0                MOVX     A,@DPTR
+0020E3 A3                INC      DPTR
+0020E4 E0                MOVX     A,@DPTR
+0020E5 FA                MOV      R2,A
+0020E6 A3                INC      DPTR
+0020E7 E0                MOVX     A,@DPTR
+0020E8 AE02              MOV      R6,AR2
+0020EA FF                MOV      R7,A
+0020EB 7B01              MOV      R3,#01H
+0020ED 7A0B              MOV      R2,#HIGH IIC_TempBuff
+0020EF 7983              MOV      R1,#LOW IIC_TempBuff
+0020F1 904EF5            MOV      DPTR,#len
+0020F4 E0                MOVX     A,@DPTR
+0020F5 A3                INC      DPTR
+0020F6 E0                MOVX     A,@DPTR
+0020F7 904EEF            MOV      DPTR,#?_xmemcpy?BYTE+05H
+0020FA F0                MOVX     @DPTR,A
+0020FB 0210CE            LJMP     _xmemcpy
+----- FUNCTION _IIC_Read (END) -------
+
+
+----- FUNCTION _kb_cb_event (BEGIN) -----
+ FILE: 'sys.c'
+  121: static void kb_cb_event(byte evt)
+  122: {
+0020FE 904F2E            MOV      DPTR,#evt
+002101 EF                MOV      A,R7
+002102 F0                MOVX     @DPTR,A
+  123: #ifdef BT_FAST_CONNECT_ENABLE
+  124: 	xbyte bt_name_string[18];
+  125: #endif	
+  126: 
+  127: 	switch (evt) 
+002103 1205B3            LCALL    ?C?CCASE
+002106 2321              DW       ?C0038?SYS
+002108 01                DB       01H
+002109 243A              DW       ?C0053?SYS
+00210B 02                DB       02H
+00210C 242B              DW       ?C0051?SYS
+00210E 04                DB       04H
+00210F 2343              DW       ?C0040?SYS
+002111 06                DB       06H
+002112 23F3              DW       ?C0047?SYS
+002114 0A                DB       0AH
+002115 242B              DW       ?C0051?SYS
+002117 13                DB       013H
+002118 24F9              DW       ?C0063?SYS
+00211A 14                DB       014H
+00211B 25D4              DW       ?C0070?SYS
+00211D 15                DB       015H
+00211E 23A2              DW       ?C0043?SYS
+002120 18                DB       018H
+002121 221F              DW       ?C0024?SYS
+002123 27                DB       027H
+002124 259B              DW       ?C0068?SYS
+002126 29                DB       029H
+002127 23E9              DW       ?C0046?SYS
+002129 2A                DB       02AH
+00212A 214C              DW       ?C0015?SYS
+00212C 2F                DB       02FH
+00212D 221B              DW       ?C0022?SYS
+00212F 30                DB       030H
+002130 2272              DW       ?C0028?SYS
+002132 31                DB       031H
+002133 22E2              DW       ?C0034?SYS
+002135 32                DB       032H
+002136 214C              DW       ?C0015?SYS
+002138 33                DB       033H
+002139 2575              DW       ?C0067?SYS
+00213B 34                DB       034H
+00213C 25B5              DW       ?C0069?SYS
+00213E 35                DB       035H
+00213F 226A              DW       ?C0026?SYS
+002141 37                DB       037H
+002142 221F              DW       ?C0024?SYS
+002144 39                DB       039H
+002145 2272              DW       ?C0028?SYS
+002147 3C                DB       03CH
+002148 0000              DW       00H
+00214A 261B              DW       ?C0049?SYS
+  128: 	{
+  129: 
+  130: case IPC_EVT_HIBERNATE_WAKE:
+  131: case IPC_EVT_RESET:
+00214C         ?C0015?SYS:
+  132: 		System_Hardware_init();
+00214C F1A3              ACALL    System_Hardware_init
+  133: 		System_Software_init();
+00214E 121C18            LCALL    System_Software_init
+  134: 
+  135: 		IIC_Read(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+002151 7B01              MOV      R3,#01H
+002153 7A4C              MOV      R2,#HIGH g_variable+040H
+002155 79FF              MOV      R1,#LOW g_variable+040H
+002157 7D01              MOV      R5,#01H
+002159 7C00              MOV      R4,#00H
+00215B 7FC0              MOV      R7,#0C0H
+00215D 7E7F              MOV      R6,#07FH
+00215F 114E              ACALL    _IIC_Read
+  136: 		if(g_variable.battery_shutdown_flag == 1)
+002161 904CFF            MOV      DPTR,#g_variable+040H
+002164 E0                MOVX     A,@DPTR
+002165 6401              XRL      A,#01H
+002167 703F              JNZ      ?C0016?SYS
+  137: 		{	
+002169         ?C0017?SYS:
+  138: 			while(m_adcCurrentValue < m_adc0vBase) IPC_WaitLpm();
+002169 904C91            MOV      DPTR,#m_adc0vBase
+00216C E0                MOVX     A,@DPTR
+00216D FE                MOV      R6,A
+00216E A3                INC      DPTR
+00216F E0                MOVX     A,@DPTR
+002170 FF                MOV      R7,A
+002171 C3                CLR      C
+002172 904C96            MOV      DPTR,#m_adcCurrentValue+01H
+002175 E0                MOVX     A,@DPTR
+002176 9F                SUBB     A,R7
+002177 904C95            MOV      DPTR,#m_adcCurrentValue
+00217A E0                MOVX     A,@DPTR
+00217B 9E                SUBB     A,R6
+00217C 5005              JNC      ?C0018?SYS
+00217E 120F95            LCALL    IPC_WaitLpm
+002181 80E6              SJMP     ?C0017?SYS
+002183         ?C0018?SYS:
+  139: 
+  140: 			if(m_adcCurrentValue < g_variable.battery_level_shutdown)
+002183 904CE0            MOV      DPTR,#g_variable+021H
+002186 E0                MOVX     A,@DPTR
+002187 FE                MOV      R6,A
+002188 A3                INC      DPTR
+002189 E0                MOVX     A,@DPTR
+00218A FF                MOV      R7,A
+00218B C3                CLR      C
+00218C 904C96            MOV      DPTR,#m_adcCurrentValue+01H
+00218F E0                MOVX     A,@DPTR
+002190 9F                SUBB     A,R7
+002191 904C95            MOV      DPTR,#m_adcCurrentValue
+002194 E0                MOVX     A,@DPTR
+002195 9E                SUBB     A,R6
+002196 5010              JNC      ?C0016?SYS
+  141: 			{
+  142: 				g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+002198 904CD5            MOV      DPTR,#g_variable+016H
+00219B 7402              MOV      A,#02H
+00219D F0                MOVX     @DPTR,A
+  143: 				g_variable.powerOn_timer = 0;
+00219E E4                CLR      A
+00219F 904CE5            MOV      DPTR,#g_variable+026H
+0021A2 F0                MOVX     @DPTR,A
+  144: 				IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+0021A3 7F19              MOV      R7,#019H
+0021A5 02085F            LJMP     _IPC_TxControlCmd
+  145: 				break;
+  146: 			}
+  147: 		}		
+0021A8         ?C0016?SYS:
+  148: 		IIC_Read(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+0021A8 7B01              MOV      R3,#01H
+0021AA 7A4C              MOV      R2,#HIGH g_variable+02H
+0021AC 79C1              MOV      R1,#LOW g_variable+02H
+0021AE 7D01              MOV      R5,#01H
+0021B0 7C00              MOV      R4,#00H
+0021B2 7FC1              MOV      R7,#0C1H
+0021B4 7E7F              MOV      R6,#07FH
+0021B6 114E              ACALL    _IIC_Read
+  149: 		Delay1ms(10);
+0021B8 7F0A              MOV      R7,#0AH
+0021BA 120EC0            LCALL    _Delay1ms
+  150: 		if(g_variable.system_mode > OSMODE_ANDROID)
+0021BD 904CC1            MOV      DPTR,#g_variable+02H
+0021C0 E0                MOVX     A,@DPTR
+0021C1 D3                SETB     C
+0021C2 9403              SUBB     A,#03H
+0021C4 4012              JC       ?C0020?SYS
+  151: 		{
+  152: 			g_variable.system_mode = OSMODE_WINDOWS;
+0021C6 E4                CLR      A
+0021C7 F0                MOVX     @DPTR,A
+  153: 			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+0021C8 7B01              MOV      R3,#01H
+0021CA 7A4C              MOV      R2,#HIGH g_variable+02H
+0021CC 79C1              MOV      R1,#LOW g_variable+02H
+0021CE 7D01              MOV      R5,#01H
+0021D0 FC                MOV      R4,A
+0021D1 7FC1              MOV      R7,#0C1H
+0021D3 7E7F              MOV      R6,#07FH
+0021D5 120E12            LCALL    _IIC_WriteBlock
+  154: 		}
+0021D8         ?C0020?SYS:
+  155: 		
+  156: 
+  157: 		g_variable.current_device_num = g_variable.last_device_num;
+0021D8 904CC0            MOV      DPTR,#g_variable+01H
+0021DB E0                MOVX     A,@DPTR
+0021DC 904CC3            MOV      DPTR,#g_variable+04H
+0021DF F0                MOVX     @DPTR,A
+  158: 		LED_device_poweron();
+0021E0 120FA2            LCALL    LED_device_poweron
+  159: 		Delay1ms(10);
+0021E3 7F0A              MOV      R7,#0AH
+0021E5 120EC0            LCALL    _Delay1ms
+  160: 		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+0021E8 7B01              MOV      R3,#01H
+0021EA 7A4C              MOV      R2,#HIGH g_variable+033H
+0021EC 79F2              MOV      R1,#LOW g_variable+033H
+0021EE 7D02              MOV      R5,#02H
+0021F0 7C00              MOV      R4,#00H
+0021F2 7FBE              MOV      R7,#0BEH
+0021F4 7E7F              MOV      R6,#07FH
+0021F6 114E              ACALL    _IIC_Read
+  161: 		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
+0021F8 904CF2            MOV      DPTR,#g_variable+033H
+0021FB E0                MOVX     A,@DPTR
+0021FC B4FF19            CJNE     A,#0FFH,?C0021?SYS
+0021FF A3                INC      DPTR
+002200 E0                MOVX     A,@DPTR
+002201 B4FF14            CJNE     A,#0FFH,?C0021?SYS
+  162: 		{
+  163: 			g_variable.ble_ramdon_lap1 = m_adc3vValue;
+002204 904C93            MOV      DPTR,#m_adc3vValue
+002207 E0                MOVX     A,@DPTR
+002208 A3                INC      DPTR
+002209 E0                MOVX     A,@DPTR
+00220A 904CF2            MOV      DPTR,#g_variable+033H
+00220D F0                MOVX     @DPTR,A
+  164: 			g_variable.ble_ramdon_lap2 = m_adc0vBase;
+00220E 904C91            MOV      DPTR,#m_adc0vBase
+002211 E0                MOVX     A,@DPTR
+002212 A3                INC      DPTR
+002213 E0                MOVX     A,@DPTR
+002214 904CF3            MOV      DPTR,#g_variable+034H
+002217 F0                MOVX     @DPTR,A
+  165: 		}
+002218         ?C0021?SYS:
+  166: 		YC_start_reconnect();
+002218 021FCE            LJMP     YC_start_reconnect
+  167: 		break;
+  168: 	case IPC_EVT_WAKEUP:
+00221B         ?C0022?SYS:
+  169: 		System_IIC_clk_setup();
+00221B F1AA              ACALL    System_IIC_clk_setup
+  170: 		KS_Initialize();
+00221D E179              AJMP     KS_Initialize
+  171: 		break;
+  172: 
+  173: // connection event
+  174: 	case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+  175: 	case IPC_EVT_CLEAR_LINKKEY:
+00221F         ?C0024?SYS:
+  176: 		if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+00221F 904CC3            MOV      DPTR,#g_variable+04H
+002222 E0                MOVX     A,@DPTR
+002223 D3                SETB     C
+002224 9400              SUBB     A,#00H
+002226 5002              JNC      $ + 4H
+002228 C11B              AJMP     ?C0049?SYS
+00222A E0                MOVX     A,@DPTR
+00222B 9404              SUBB     A,#04H
+00222D 4002              JC       $ + 4H
+00222F C11B              AJMP     ?C0049?SYS
+  177: 		{
+  178: 			xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+002231 E0                MOVX     A,@DPTR
+002232 75F01F            MOV      B,#01FH
+002235 A4                MUL      AB
+002236 24E3              ADD      A,#LOW bd_key_record_list-01FH
+002238 F9                MOV      R1,A
+002239 744D              MOV      A,#HIGH bd_key_record_list-01FH
+00223B 35F0              ADDC     A,B
+00223D FA                MOV      R2,A
+00223E 7B01              MOV      R3,#01H
+002240 7D1F              MOV      R5,#01FH
+002242 7C00              MOV      R4,#00H
+002244 D11C              ACALL    _xmemclear_ff
+  179: 			Delay1ms(200);
+002246 7FC8              MOV      R7,#0C8H
+002248 120EC0            LCALL    _Delay1ms
+  180: 			GPIO_Setout(EEPROM_WP_GPIO,0);
+00224B C201              CLR      ?_GPIO_Setout?BIT
+00224D 7FFF              MOV      R7,#0FFH
+00224F 120AEC            LCALL    _GPIO_Setout
+  181: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+002252 7B01              MOV      R3,#01H
+002254 7A4E              MOV      R2,#HIGH bd_key_record_list
+002256 7902              MOV      R1,#LOW bd_key_record_list
+002258 7D5D              MOV      R5,#05DH
+00225A 7C00              MOV      R4,#00H
+00225C 7F60              MOV      R7,#060H
+00225E 7E7F              MOV      R6,#07FH
+002260 120E12            LCALL    _IIC_WriteBlock
+  182: 			GPIO_Setout(EEPROM_WP_GPIO,1);
+002263 D201              SETB     ?_GPIO_Setout?BIT
+002265 7FFF              MOV      R7,#0FFH
+002267 020AEC            LJMP     _GPIO_Setout
+  183: 		}
+  184: 		break;
+  185: 	case IPC_EVT_RECONNECT_STANDY:
+00226A         ?C0026?SYS:
+  186: 		YC_load_record_list(recon_index);
+00226A 904DD6            MOV      DPTR,#recon_index
+00226D E0                MOVX     A,@DPTR
+00226E FF                MOV      R7,A
+00226F 020737            LJMP     _YC_load_record_list
+  187: 		break;		
+  188: 		
+  189: // 2.4G event	
+  190: 	case IPC_EVT_24G_PAIRING_COMPLETE:
+  191: 	case IPC_EVT_24G_ATTEMPT_SUCCESS:
+002272         ?C0028?SYS:
+  192: 		g_variable.g24_currentState =  CHANGE_TO_24G_CONNECTED;
+002272 904CC5            MOV      DPTR,#g_variable+06H
+002275 7403              MOV      A,#03H
+002277 F0                MOVX     @DPTR,A
+  193: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+002278 E4                CLR      A
+002279 A3                INC      DPTR
+00227A F0                MOVX     @DPTR,A
+  194: 		YC_clear_reconnect_flag();
+00227B 121FC4            LCALL    YC_clear_reconnect_flag
+  195: 		g_variable.pairing_g24_timeout = 0;
+00227E E4                CLR      A
+00227F 904CEE            MOV      DPTR,#g_variable+02FH
+002282 F0                MOVX     @DPTR,A
+  196: 		g_variable.release_data = 0;
+002283 904CEB            MOV      DPTR,#g_variable+02CH
+002286 F0                MOVX     @DPTR,A
+  197: 		g_variable.last_device_num = 0xfe;
+002287 904CC0            MOV      DPTR,#g_variable+01H
+00228A 74FE              MOV      A,#0FEH
+00228C F0                MOVX     @DPTR,A
+  198: 		g_variable.current_device_num = 0xfe;
+00228D 904CC3            MOV      DPTR,#g_variable+04H
+002290 F0                MOVX     @DPTR,A
+  199: 		m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+002291 904D46            MOV      DPTR,#m_24g_led_flag
+002294 7403              MOV      A,#03H
+002296 F0                MOVX     @DPTR,A
+  200: 		delayChgInvTimer = 10;
+002297 904DF9            MOV      DPTR,#delayChgInvTimer
+00229A 740A              MOV      A,#0AH
+00229C F0                MOVX     @DPTR,A
+  201: 
+  202: 		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
+00229D 904F2E            MOV      DPTR,#evt
+0022A0 E0                MOVX     A,@DPTR
+0022A1 6431              XRL      A,#031H
+0022A3 7034              JNZ      ?C0029?SYS
+  203: 		{
+  204: 			fn_lock_flag = 0;
+0022A5 904DFA            MOV      DPTR,#fn_lock_flag
+0022A8 F0                MOVX     @DPTR,A
+  205: 			fast_connect_flag = 0;
+0022A9 904E69            MOV      DPTR,#fast_connect_flag
+0022AC F0                MOVX     @DPTR,A
+  206: 			g_variable.system_mode = OSMODE_WINDOWS;
+0022AD 904CC1            MOV      DPTR,#g_variable+02H
+0022B0 F0                MOVX     @DPTR,A
+  207: 			g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+0022B1 904CE5            MOV      DPTR,#g_variable+026H
+0022B4 741E              MOV      A,#01EH
+0022B6 F0                MOVX     @DPTR,A
+  208: 			if(m_24g_paring_addr[0] != 0x0f || m_24g_paring_addr[1] != 0x0f ||
+0022B7 904BEB            MOV      DPTR,#m_24g_paring_addr
+0022BA E0                MOVX     A,@DPTR
+0022BB B40F12            CJNE     A,#0FH,?C0031?SYS
+0022BE A3                INC      DPTR
+0022BF E0                MOVX     A,@DPTR
+0022C0 B40F0D            CJNE     A,#0FH,?C0031?SYS
+0022C3 A3                INC      DPTR
+0022C4 E0                MOVX     A,@DPTR
+0022C5 B40F08            CJNE     A,#0FH,?C0031?SYS
+0022C8 A3                INC      DPTR
+0022C9 E0                MOVX     A,@DPTR
+0022CA 640F              XRL      A,#0FH
+0022CC 7002              JNZ      $ + 4H
+0022CE C11B              AJMP     ?C0049?SYS
+0022D0         ?C0031?SYS:
+  209: 				m_24g_paring_addr[2] != 0x0f || m_24g_paring_addr[3] != 0x0f)
+  210: 				{
+  211: 					g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+0022D0 904CBF            MOV      DPTR,#g_variable
+0022D3 7402              MOV      A,#02H
+0022D5 F0                MOVX     @DPTR,A
+  212: 					YC_update_eeprom_data();
+0022D6 020D7B            LJMP     YC_update_eeprom_data
+  213: 				}
+  214: 		}
+0022D9         ?C0029?SYS:
+  215: 		else
+  216: 		{
+  217: 			if(!g_variable.powerOn_timer)
+0022D9 904CE5            MOV      DPTR,#g_variable+026H
+0022DC E0                MOVX     A,@DPTR
+0022DD 6002              JZ       $ + 4H
+0022DF C11B              AJMP     ?C0049?SYS
+  218: 			;//GPIO_Setout(G24_LED_GPIO,LED_OFF);
+  219: 		}
+  220: 		break;
+0022E1 22                RET      
+  221: 	
+  222: 	case IPC_EVT_24G_ATTEMPT_FAIL:	
+0022E2         ?C0034?SYS:
+  223: 		g_variable.g24_currentState =  CHANGE_TO_24G_DISCONNECTED;
+0022E2 E4                CLR      A
+0022E3 904CC5            MOV      DPTR,#g_variable+06H
+0022E6 F0                MOVX     @DPTR,A
+  224: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+0022E7 A3                INC      DPTR
+0022E8 F0                MOVX     @DPTR,A
+  225: 		g_variable.sleepTimer = 0;
+0022E9 904CE3            MOV      DPTR,#g_variable+024H
+0022EC F0                MOVX     @DPTR,A
+0022ED A3                INC      DPTR
+0022EE F0                MOVX     @DPTR,A
+  226: 		g_variable.release_data = 1;
+0022EF 904CEB            MOV      DPTR,#g_variable+02CH
+0022F2 04                INC      A
+0022F3 F0                MOVX     @DPTR,A
+  227: 
+  228: 		if (g_variable.key_action != KEY_NONE)
+0022F4 904CED            MOV      DPTR,#g_variable+02EH
+0022F7 E0                MOVX     A,@DPTR
+0022F8 600B              JZ       ?C0035?SYS
+  229: 		{
+  230: 			YC_clear_reconnect_flag();
+0022FA 121FC4            LCALL    YC_clear_reconnect_flag
+  231: 			YC_key_action_handle(g_variable.key_action);
+0022FD 904CED            MOV      DPTR,#g_variable+02EH
+002300 E0                MOVX     A,@DPTR
+002301 FF                MOV      R7,A
+002302 02091C            LJMP     _YC_key_action_handle
+  232: 			break;
+  233: 		}
+002305         ?C0035?SYS:
+  234: 
+  235: 		if (g_variable.lockLpm == 1)
+002305 904CEC            MOV      DPTR,#g_variable+02DH
+002308 E0                MOVX     A,@DPTR
+002309 B40105            CJNE     A,#01H,?C0036?SYS
+  236: 		{
+  237: 			g_variable.lockLpm =0;
+00230C E4                CLR      A
+00230D F0                MOVX     @DPTR,A
+  238: 			System_long_sleep();
+00230E 020FCF            LJMP     System_long_sleep
+  239: 			break;
+  240: 		}
+002311         ?C0036?SYS:
+  241: 		if (g_variable.recon_count != 0)
+002311 904CF0            MOV      DPTR,#g_variable+031H
+002314 E0                MOVX     A,@DPTR
+002315 7002              JNZ      $ + 4H
+002317 C11B              AJMP     ?C0049?SYS
+  242: 		{
+  243: 			YC_load_record_list(recon_index);
+002319 904DD6            MOV      DPTR,#recon_index
+00231C E0                MOVX     A,@DPTR
+00231D FF                MOV      R7,A
+00231E 020737            LJMP     _YC_load_record_list
+  244: 		}
+  245: 		break;
+  246: 
+  247: 
+  248: 		
+  249: // BT3.0 event
+  250: 	case IPC_EVT_BB_CONNECTED:
+002321         ?C0038?SYS:
+  251: 		g_variable.br_currentState = CHANGE_TO_BR_CONNECTING;
+002321 904CC9            MOV      DPTR,#g_variable+0AH
+002324 7403              MOV      A,#03H
+002326 F0                MOVX     @DPTR,A
+  252: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_INIT;
+002327 A3                INC      DPTR
+002328 7401              MOV      A,#01H
+00232A F0                MOVX     @DPTR,A
+  253: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+00232B E4                CLR      A
+00232C 904CC7            MOV      DPTR,#g_variable+08H
+00232F F0                MOVX     @DPTR,A
+  254: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+002330 A3                INC      DPTR
+002331 F0                MOVX     @DPTR,A
+  255: 		if ((m_ui_state_map & 0x8000) == 0x8000)
+002332 9047F4            MOV      DPTR,#m_ui_state_map
+002335 E0                MOVX     A,@DPTR
+002336 A3                INC      DPTR
+002337 20E702            JB       ACC.7,$ + 5H
+00233A C11B              AJMP     ?C0049?SYS
+  256: 		{
+  257: 			switch_role_timer = 50;
+00233C 904DEA            MOV      DPTR,#switch_role_timer
+00233F 7432              MOV      A,#032H
+002341 F0                MOVX     @DPTR,A
+  258: 		}
+  259: 		break;
+002342 22                RET      
+  260: 	case IPC_EVT_HID_CONNECTED:
+002343         ?C0040?SYS:
+  261: 		g_variable.br_currentState = CHANGE_TO_BR_CONNECTED;
+002343 904CC9            MOV      DPTR,#g_variable+0AH
+002346 7404              MOV      A,#04H
+002348 F0                MOVX     @DPTR,A
+  262: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+002349 E4                CLR      A
+00234A A3                INC      DPTR
+00234B F0                MOVX     @DPTR,A
+  263: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+00234C 7F0E              MOV      R7,#0EH
+00234E 12085F            LCALL    _IPC_TxControlCmd
+  264: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+002351 7F02              MOV      R7,#02H
+002353 12085F            LCALL    _IPC_TxControlCmd
+  265: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+002356 C201              CLR      ?_GPIO_Setout?BIT
+002358 7FFF              MOV      R7,#0FFH
+00235A 120AEC            LCALL    _GPIO_Setout
+  266: 		g_variable.last_device_num = g_variable.current_device_num;
+00235D 904CC3            MOV      DPTR,#g_variable+04H
+002360 E0                MOVX     A,@DPTR
+002361 904CC0            MOV      DPTR,#g_variable+01H
+002364 F0                MOVX     @DPTR,A
+  267: 	#ifdef BT_FAST_CONNECT_ENABLE				
+  268: 		if(g_variable.fast_connect_send_name)
+  269: 		{
+  270: 			g_variable.fast_connect_send_name = 0;
+  271: 
+  272: 			bt_name_string[0] = HID_REPORTID_FAST_CONN_NAME;
+  273: 			if(m_local_name_length > 17)
+  274: 				bt_name_string[1] = 17;
+  275: 			else
+  276: 				bt_name_string[1] = m_local_name_length;
+  277: 			
+  278: 			dmemcpy(bt_name_string+2, &m_local_name_length+1, bt_name_string[1]);
+  279: 			IPC_TxBREDRHidData(bt_name_string,bt_name_string[1]+2);
+  280: 		}
+  281: 	#endif	
+  282: 		g_variable.sleepTimer = 0;
+002365 E4                CLR      A
+002366 904CE3            MOV      DPTR,#g_variable+024H
+002369 F0                MOVX     @DPTR,A
+00236A A3                INC      DPTR
+00236B F0                MOVX     @DPTR,A
+  283: 		
+  284: 		YC_clear_reconnect_flag();
+00236C 121FC4            LCALL    YC_clear_reconnect_flag
+  285: 		g_variable.release_data = 0;
+00236F E4                CLR      A
+002370 904CEB            MOV      DPTR,#g_variable+02CH
+002373 F0                MOVX     @DPTR,A
+  286: 		switch_role_timer = 0;
+002374 904DEA            MOV      DPTR,#switch_role_timer
+002377 F0                MOVX     @DPTR,A
+  287: 		kscurrmult = 0x1a;
+002378 904213            MOV      DPTR,#kscurrmult
+00237B 741A              MOV      A,#01AH
+00237D F0                MOVX     @DPTR,A
+  288: 		iOS_rec_pinCode = 0;	
+00237E E4                CLR      A
+00237F 904DF4            MOV      DPTR,#iOS_rec_pinCode
+002382 F0                MOVX     @DPTR,A
+002383         ?C0041?SYS:
+  289: 		
+  290: 		while( (m_remote_addr[0]==0)&&(m_remote_addr[1]==0)&&(m_remote_addr[2]==0)
+002383 900040            MOV      DPTR,#m_remote_addr
+002386 E0                MOVX     A,@DPTR
+002387 7014              JNZ      ?C0042?SYS
+002389 A3                INC      DPTR
+00238A E0                MOVX     A,@DPTR
+00238B 7010              JNZ      ?C0042?SYS
+00238D A3                INC      DPTR
+00238E E0                MOVX     A,@DPTR
+00238F 700C              JNZ      ?C0042?SYS
+002391 A3                INC      DPTR
+002392 E0                MOVX     A,@DPTR
+002393 7008              JNZ      ?C0042?SYS
+002395 A3                INC      DPTR
+002396 E0                MOVX     A,@DPTR
+002397 7004              JNZ      ?C0042?SYS
+002399 A3                INC      DPTR
+00239A E0                MOVX     A,@DPTR
+00239B 60E6              JZ       ?C0041?SYS
+00239D         ?C0042?SYS:
+  291: 			&&(m_remote_addr[3]==0)&&(m_remote_addr[4]==0)&&(m_remote_addr[5]==0));
+  292: 		IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+00239D 7F05              MOV      R7,#05H
+00239F 02085F            LJMP     _IPC_TxControlCmd
+  293: 		break;
+  294: 	case IPC_EVT_LINKKEY_GENERATE:
+0023A2         ?C0043?SYS:
+  295: 		if(g_variable.pairing_timeout)
+0023A2 904CE9            MOV      DPTR,#g_variable+02AH
+0023A5 E0                MOVX     A,@DPTR
+0023A6 602A              JZ       ?C0044?SYS
+  296: 		{
+  297: 			fn_lock_flag = 0;
+0023A8 E4                CLR      A
+0023A9 904DFA            MOV      DPTR,#fn_lock_flag
+0023AC F0                MOVX     @DPTR,A
+  298: 
+  299: 			//g_variable.system_mode = OSMODE_WINDOWS;
+  300: 			bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+0023AD 904CC1            MOV      DPTR,#g_variable+02H
+0023B0 E0                MOVX     A,@DPTR
+0023B1 FF                MOV      R7,A
+0023B2 904CC3            MOV      DPTR,#g_variable+04H
+0023B5 E0                MOVX     A,@DPTR
+0023B6 75F01F            MOV      B,#01FH
+0023B9 A4                MUL      AB
+0023BA 2400              ADD      A,#LOW bd_key_record_list-02H
+0023BC F582              MOV      DPL,A
+0023BE E4                CLR      A
+0023BF 344E              ADDC     A,#HIGH bd_key_record_list-02H
+0023C1 F583              MOV      DPH,A
+0023C3 EF                MOV      A,R7
+0023C4 F0                MOVX     @DPTR,A
+  301: 			YC_clear_BT_same_address_record();
+0023C5 D149              ACALL    YC_clear_BT_same_address_record
+  302: 			g_variable.update_eeprom_flag = 3;
+0023C7 904CBF            MOV      DPTR,#g_variable
+0023CA 7403              MOV      A,#03H
+0023CC F0                MOVX     @DPTR,A
+  303: 
+  304: 			g_variable.pairing_timeout = 0;
+0023CD E4                CLR      A
+0023CE 904CE9            MOV      DPTR,#g_variable+02AH
+0023D1 F0                MOVX     @DPTR,A
+  305: 		}
+0023D2         ?C0044?SYS:
+  306: 		g_variable.delay_enter_lpm_timer = 10;
+0023D2 904CEA            MOV      DPTR,#g_variable+02BH
+0023D5 740A              MOV      A,#0AH
+0023D7 F0                MOVX     @DPTR,A
+  307: 		m_lpm_mode = 1;
+0023D8 904131            MOV      DPTR,#m_lpm_mode
+0023DB 7401              MOV      A,#01H
+0023DD F0                MOVX     @DPTR,A
+  308: 		if(!g_variable.powerOn_timer)
+0023DE 904CE5            MOV      DPTR,#g_variable+026H
+0023E1 E0                MOVX     A,@DPTR
+0023E2 6002              JZ       $ + 4H
+0023E4 C11B              AJMP     ?C0049?SYS
+  309: 			LED_device_poweroff();
+0023E6 023435            LJMP     LED_device_poweroff
+  310: 		break;
+  311: 	case IPC_EVT_SWITCH_FAIL_MASTER:
+0023E9         ?C0046?SYS:
+  312: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+0023E9 7F04              MOV      R7,#04H
+0023EB 12085F            LCALL    _IPC_TxControlCmd
+  313: 		Delay1ms(10);
+0023EE 7F0A              MOV      R7,#0AH
+0023F0 020EC0            LJMP     _Delay1ms
+  314: 		break;	
+  315: 	case IPC_EVT_PINCODE_REQ:
+0023F3         ?C0047?SYS:
+  316: 		ipcPinlen = 0;
+0023F3 E4                CLR      A
+0023F4 90054F            MOV      DPTR,#ipcPinlen
+0023F7 F0                MOVX     @DPTR,A
+  317: 		pinCode_flag = 1;
+0023F8 904DF1            MOV      DPTR,#pinCode_flag
+0023FB 04                INC      A
+0023FC F0                MOVX     @DPTR,A
+  318: 		switch_role_timer = 0;
+0023FD E4                CLR      A
+0023FE 904DEA            MOV      DPTR,#switch_role_timer
+002401 F0                MOVX     @DPTR,A
+  319: 		if ((m_ui_state_map & 0x8000) == 0x8000)
+002402 9047F4            MOV      DPTR,#m_ui_state_map
+002405 E0                MOVX     A,@DPTR
+002406 A3                INC      DPTR
+002407 30E710            JNB      ACC.7,?C0048?SYS
+  320: 		{
+  321: 			iOS_rec_pinCode = 1;	
+00240A 904DF4            MOV      DPTR,#iOS_rec_pinCode
+00240D 7401              MOV      A,#01H
+00240F F0                MOVX     @DPTR,A
+  322: 			ipcPinlen = 4;
+002410 90054F            MOV      DPTR,#ipcPinlen
+002413 7404              MOV      A,#04H
+002415 F0                MOVX     @DPTR,A
+  323: 			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+002416 FF                MOV      R7,A
+002417 02085F            LJMP     _IPC_TxControlCmd
+  324: 			return;
+  325: 		}
+00241A         ?C0048?SYS:
+  326: 		g_variable.recon_count = 0;
+00241A E4                CLR      A
+00241B 904CF0            MOV      DPTR,#g_variable+031H
+00241E F0                MOVX     @DPTR,A
+  327: 		g_variable.br_currentSubState =  CHANGE_TO_BR_SUB_PINCODE;
+00241F 904CCA            MOV      DPTR,#g_variable+0BH
+002422 7402              MOV      A,#02H
+002424 F0                MOVX     @DPTR,A
+  328: 		g_variable.br_currentState =CHANGE_TO_BR_CONNECTING;
+002425 904CC9            MOV      DPTR,#g_variable+0AH
+002428 04                INC      A
+002429 F0                MOVX     @DPTR,A
+  329: 		break;	
+00242A 22                RET      
+  330: 	case IPC_EVT_RECONN_PAGE_TIMEOUT:
+  331: 	case IPC_EVT_RECONN_FAILED:
+00242B         ?C0051?SYS:
+  332: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+00242B 904CC5            MOV      DPTR,#g_variable+06H
+00242E E0                MOVX     A,@DPTR
+00242F B40308            CJNE     A,#03H,?C0053?SYS
+  333: 		{
+  334: 			g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+002432 E4                CLR      A
+002433 904CC9            MOV      DPTR,#g_variable+0AH
+002436 F0                MOVX     @DPTR,A
+  335: 			g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+002437 A3                INC      DPTR
+002438 F0                MOVX     @DPTR,A
+002439 22                RET      
+  336: 			return;
+  337: 		}		
+  338: 	case IPC_EVT_BB_DISCONNECTED:
+00243A         ?C0053?SYS:
+  339: 		g_variable.history_state = g_variable.br_currentState ;
+00243A 904CC9            MOV      DPTR,#g_variable+0AH
+00243D E0                MOVX     A,@DPTR
+00243E 904CCB            MOV      DPTR,#g_variable+0CH
+002441 F0                MOVX     @DPTR,A
+  340: 		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+002442 E4                CLR      A
+002443 904CC9            MOV      DPTR,#g_variable+0AH
+002446 F0                MOVX     @DPTR,A
+  341: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+002447 A3                INC      DPTR
+002448 F0                MOVX     @DPTR,A
+  342: 		g_variable.release_data = 1;
+002449 904CEB            MOV      DPTR,#g_variable+02CH
+00244C 04                INC      A
+00244D F0                MOVX     @DPTR,A
+  343: 		switch_role_timer = 0;
+00244E E4                CLR      A
+00244F 904DEA            MOV      DPTR,#switch_role_timer
+002452 F0                MOVX     @DPTR,A
+  344: 		if (iOS_rec_pinCode == 1)
+002453 904DF4            MOV      DPTR,#iOS_rec_pinCode
+002456 E0                MOVX     A,@DPTR
+002457 6401              XRL      A,#01H
+002459 704C              JNZ      ?C0054?SYS
+  345: 		{
+  346: 			if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+00245B 904CC3            MOV      DPTR,#g_variable+04H
+00245E E0                MOVX     A,@DPTR
+00245F D3                SETB     C
+002460 9400              SUBB     A,#00H
+002462 403E              JC       ?C0055?SYS
+002464 E0                MOVX     A,@DPTR
+002465 9404              SUBB     A,#04H
+002467 5039              JNC      ?C0055?SYS
+  347: 			{
+  348: 				xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+002469 E0                MOVX     A,@DPTR
+00246A 75F01F            MOV      B,#01FH
+00246D A4                MUL      AB
+00246E 24E3              ADD      A,#LOW bd_key_record_list-01FH
+002470 F9                MOV      R1,A
+002471 744D              MOV      A,#HIGH bd_key_record_list-01FH
+002473 35F0              ADDC     A,B
+002475 FA                MOV      R2,A
+002476 7B01              MOV      R3,#01H
+002478 7D1F              MOV      R5,#01FH
+00247A 7C00              MOV      R4,#00H
+00247C D11C              ACALL    _xmemclear_ff
+  349: 				Delay1ms(200);
+00247E 7FC8              MOV      R7,#0C8H
+002480 120EC0            LCALL    _Delay1ms
+  350: 				GPIO_Setout(EEPROM_WP_GPIO,0);
+002483 C201              CLR      ?_GPIO_Setout?BIT
+002485 7FFF              MOV      R7,#0FFH
+002487 120AEC            LCALL    _GPIO_Setout
+  351: 				IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+00248A 7B01              MOV      R3,#01H
+00248C 7A4E              MOV      R2,#HIGH bd_key_record_list
+00248E 7902              MOV      R1,#LOW bd_key_record_list
+002490 7D5D              MOV      R5,#05DH
+002492 7C00              MOV      R4,#00H
+002494 7F60              MOV      R7,#060H
+002496 7E7F              MOV      R6,#07FH
+002498 120E12            LCALL    _IIC_WriteBlock
+  352: 				GPIO_Setout(EEPROM_WP_GPIO,1);
+00249B D201              SETB     ?_GPIO_Setout?BIT
+00249D 7FFF              MOV      R7,#0FFH
+00249F 120AEC            LCALL    _GPIO_Setout
+  353: 			}
+0024A2         ?C0055?SYS:
+  354: 			iOS_rec_pinCode = 0;
+0024A2 E4                CLR      A
+0024A3 904DF4            MOV      DPTR,#iOS_rec_pinCode
+0024A6 F0                MOVX     @DPTR,A
+  355: 		}
+0024A7         ?C0054?SYS:
+  356: 
+  357: 		if (g_variable.lockLpm == 1)
+0024A7 904CEC            MOV      DPTR,#g_variable+02DH
+0024AA E0                MOVX     A,@DPTR
+0024AB B40105            CJNE     A,#01H,?C0056?SYS
+  358: 		{
+  359: 			g_variable.lockLpm =0;
+0024AE E4                CLR      A
+0024AF F0                MOVX     @DPTR,A
+  360: 			System_long_sleep();
+0024B0 020FCF            LJMP     System_long_sleep
+  361: 			break;
+  362: 		}
+0024B3         ?C0056?SYS:
+  363: 
+  364: 		if (g_variable.key_action != KEY_NONE)
+0024B3 904CED            MOV      DPTR,#g_variable+02EH
+0024B6 E0                MOVX     A,@DPTR
+0024B7 6004              JZ       ?C0057?SYS
+  365: 		{
+  366: 			YC_key_action_handle(g_variable.key_action);
+0024B9 FF                MOV      R7,A
+0024BA 02091C            LJMP     _YC_key_action_handle
+  367: 			break;
+  368: 		}
+0024BD         ?C0057?SYS:
+  369: 
+  370: 		if (g_variable.recon_count != 0)
+0024BD 904CF0            MOV      DPTR,#g_variable+031H
+0024C0 E0                MOVX     A,@DPTR
+0024C1 6008              JZ       ?C0058?SYS
+  371: 		{
+  372: 			YC_load_record_list(recon_index);
+0024C3 904DD6            MOV      DPTR,#recon_index
+0024C6 E0                MOVX     A,@DPTR
+0024C7 FF                MOV      R7,A
+0024C8 020737            LJMP     _YC_load_record_list
+  373: 			break;
+  374: 		}
+0024CB         ?C0058?SYS:
+  375: 
+  376: 		if (g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+0024CB 904CC5            MOV      DPTR,#g_variable+06H
+0024CE E0                MOVX     A,@DPTR
+0024CF 6401              XRL      A,#01H
+0024D1 7002              JNZ      $ + 4H
+0024D3 C11B              AJMP     ?C0049?SYS
+  377: 		{
+  378: 			return;
+  379: 		}
+0024D5         ?C0059?SYS:
+  380: 
+  381: 
+  382: 		if (evt == IPC_EVT_RECONN_PAGE_TIMEOUT)
+0024D5 904F2E            MOV      DPTR,#evt
+0024D8 E0                MOVX     A,@DPTR
+0024D9 6413              XRL      A,#013H
+0024DB 7002              JNZ      $ + 4H
+0024DD C11B              AJMP     ?C0049?SYS
+  383: 		{
+  384: 			break;
+  385: 		}
+0024DF         ?C0060?SYS:
+  386: 		
+  387: 		if (g_variable.history_state != CHANGE_TO_BR_CONNECTED)
+0024DF 904CCB            MOV      DPTR,#g_variable+0CH
+0024E2 E0                MOVX     A,@DPTR
+0024E3 6404              XRL      A,#04H
+0024E5 6007              JZ       ?C0061?SYS
+  388: 		{
+  389: 			YC_key_action_handle(KEY_DISCOVERY);
+0024E7 7F05              MOV      R7,#05H
+0024E9 12091C            LCALL    _YC_key_action_handle
+  390: 		}
+0024EC 8003              SJMP     ?C0062?SYS
+0024EE         ?C0061?SYS:
+  391: 		else
+  392: 		{
+  393: 			System_long_sleep();
+0024EE 120FCF            LCALL    System_long_sleep
+  394: 		}
+0024F1         ?C0062?SYS:
+  395: 		g_variable.sleepTimer = 0;
+0024F1 E4                CLR      A
+0024F2 904CE3            MOV      DPTR,#g_variable+024H
+0024F5 F0                MOVX     @DPTR,A
+0024F6 A3                INC      DPTR
+0024F7 F0                MOVX     @DPTR,A
+  396: 		break;		
+0024F8 22                RET      
+  397: 
+  398: // BT 4.2 event
+  399: 	case IPC_EVT_LE_CONNECTED:
+0024F9         ?C0063?SYS:
+  400: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+0024F9 904CC7            MOV      DPTR,#g_variable+08H
+0024FC 7403              MOV      A,#03H
+0024FE F0                MOVX     @DPTR,A
+  401: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
+0024FF A3                INC      DPTR
+002500 7401              MOV      A,#01H
+002502 F0                MOVX     @DPTR,A
+  402: 		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+002503 E4                CLR      A
+002504 A3                INC      DPTR
+002505 F0                MOVX     @DPTR,A
+  403: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+002506 A3                INC      DPTR
+002507 F0                MOVX     @DPTR,A
+  404: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+002508 7F0E              MOV      R7,#0EH
+00250A 12085F            LCALL    _IPC_TxControlCmd
+  405: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+00250D 7F02              MOV      R7,#02H
+00250F 12085F            LCALL    _IPC_TxControlCmd
+  406: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+002512 C201              CLR      ?_GPIO_Setout?BIT
+002514 7FFF              MOV      R7,#0FFH
+002516 120AEC            LCALL    _GPIO_Setout
+  407: 		if(g_variable.pairing_timeout)
+002519 904CE9            MOV      DPTR,#g_variable+02AH
+00251C E0                MOVX     A,@DPTR
+00251D 6035              JZ       ?C0064?SYS
+  408: 		{
+  409: 			fn_lock_flag = 0;
+00251F E4                CLR      A
+002520 904DFA            MOV      DPTR,#fn_lock_flag
+002523 F0                MOVX     @DPTR,A
+  410: 			//g_variable.system_mode = OSMODE_WINDOWS;
+  411: 			bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+002524 904CC1            MOV      DPTR,#g_variable+02H
+002527 E0                MOVX     A,@DPTR
+002528 FF                MOV      R7,A
+002529 904CC3            MOV      DPTR,#g_variable+04H
+00252C E0                MOVX     A,@DPTR
+00252D 75F01F            MOV      B,#01FH
+002530 A4                MUL      AB
+002531 2400              ADD      A,#LOW bd_key_record_list-02H
+002533 F582              MOV      DPL,A
+002535 E4                CLR      A
+002536 344E              ADDC     A,#HIGH bd_key_record_list-02H
+002538 F583              MOV      DPH,A
+00253A EF                MOV      A,R7
+00253B F0                MOVX     @DPTR,A
+  412: 			bd_key_record_list[g_variable.current_device_num - 1].fn_lock = fn_lock_flag;
+00253C 904DFA            MOV      DPTR,#fn_lock_flag
+00253F E0                MOVX     A,@DPTR
+002540 FF                MOV      R7,A
+002541 904CC3            MOV      DPTR,#g_variable+04H
+002544 E0                MOVX     A,@DPTR
+002545 75F01F            MOV      B,#01FH
+002548 A4                MUL      AB
+002549 2401              ADD      A,#LOW bd_key_record_list-01H
+00254B F582              MOV      DPL,A
+00254D E4                CLR      A
+00254E 344E              ADDC     A,#HIGH bd_key_record_list-01H
+002550 F583              MOV      DPH,A
+002552 EF                MOV      A,R7
+002553 F0                MOVX     @DPTR,A
+  413: 		}
+002554         ?C0064?SYS:
+  414: 		if(!ble_reconnect_flag)
+002554 904DF8            MOV      DPTR,#ble_reconnect_flag
+002557 E0                MOVX     A,@DPTR
+002558 7006              JNZ      ?C0065?SYS
+  415: 			ble_send_secutiry_request_timer = 20;
+00255A 904DD4            MOV      DPTR,#ble_send_secutiry_request_timer
+00255D 7414              MOV      A,#014H
+00255F F0                MOVX     @DPTR,A
+002560         ?C0065?SYS:
+  416: 		if(!g_variable.powerOn_timer)
+002560 904CE5            MOV      DPTR,#g_variable+026H
+002563 E0                MOVX     A,@DPTR
+002564 7003              JNZ      ?C0066?SYS
+  417: 			LED_device_poweroff();
+002566 123435            LCALL    LED_device_poweroff
+002569         ?C0066?SYS:
+  418: 		g_variable.pairing_timeout = 0;
+002569 E4                CLR      A
+00256A 904CE9            MOV      DPTR,#g_variable+02AH
+00256D F0                MOVX     @DPTR,A
+  419: 		g_variable.sleepTimer = 0;
+00256E 904CE3            MOV      DPTR,#g_variable+024H
+002571 F0                MOVX     @DPTR,A
+002572 A3                INC      DPTR
+002573 F0                MOVX     @DPTR,A
+  420: 		break;
+002574 22                RET      
+  421: 	case IPC_EVT_LE_PROTOCOL_CONNECTED:
+002575         ?C0067?SYS:
+  422: 	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
+002575 904CC7            MOV      DPTR,#g_variable+08H
+002578 7404              MOV      A,#04H
+00257A F0                MOVX     @DPTR,A
+  423: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+00257B E4                CLR      A
+00257C A3                INC      DPTR
+00257D F0                MOVX     @DPTR,A
+  424: 		YC_clear_reconnect_flag();
+00257E 121FC4            LCALL    YC_clear_reconnect_flag
+  425: 		g_variable.release_data = 0;
+002581 E4                CLR      A
+002582 904CEB            MOV      DPTR,#g_variable+02CH
+002585 F0                MOVX     @DPTR,A
+  426: 		le_send_battery_level_delay_count = 10;
+002586 904DEC            MOV      DPTR,#le_send_battery_level_delay_count
+002589 740A              MOV      A,#0AH
+00258B F0                MOVX     @DPTR,A
+  427: 		g_variable.last_device_num = g_variable.current_device_num;
+00258C 904CC3            MOV      DPTR,#g_variable+04H
+00258F E0                MOVX     A,@DPTR
+002590 904CC0            MOV      DPTR,#g_variable+01H
+002593 F0                MOVX     @DPTR,A
+  428: 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+002594 904CBF            MOV      DPTR,#g_variable
+002597 7403              MOV      A,#03H
+002599 F0                MOVX     @DPTR,A
+  429: 		break;
+00259A 22                RET      
+  430: 	case IPC_EVT_LE_ENC_INFO:
+00259B         ?C0068?SYS:
+  431: 		YC_store_record_list(1, g_variable.current_device_num-1);
+00259B 904CC3            MOV      DPTR,#g_variable+04H
+00259E E0                MOVX     A,@DPTR
+00259F 14                DEC      A
+0025A0 FD                MOV      R5,A
+0025A1 7F01              MOV      R7,#01H
+0025A3 120FF7            LCALL    _YC_store_record_list
+  432: 		g_variable.last_device_num = g_variable.current_device_num;
+0025A6 904CC3            MOV      DPTR,#g_variable+04H
+0025A9 E0                MOVX     A,@DPTR
+0025AA 904CC0            MOV      DPTR,#g_variable+01H
+0025AD F0                MOVX     @DPTR,A
+  433: 		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+0025AE 904CBF            MOV      DPTR,#g_variable
+0025B1 7403              MOV      A,#03H
+0025B3 F0                MOVX     @DPTR,A
+  434: 		break;
+0025B4 22                RET      
+  435: 
+  436: 	case IPC_EVT_LE_PINCODE_REQ:
+0025B5         ?C0069?SYS:
+  437: 		le_pin_code = 0;
+0025B5 904D39            MOV      DPTR,#le_pin_code
+0025B8 120582            LCALL    ?C?LSTKXDATA
+0025BB 00                DB       00H
+0025BC 00                DB       00H
+0025BD 00                DB       00H
+0025BE 00                DB       00H
+  438: 		le_pin_code_len = 0;
+0025BF E4                CLR      A
+0025C0 904DD7            MOV      DPTR,#le_pin_code_len
+0025C3 F0                MOVX     @DPTR,A
+  439: 		pinCode_flag = 1;
+0025C4 904DF1            MOV      DPTR,#pinCode_flag
+0025C7 04                INC      A
+0025C8 F0                MOVX     @DPTR,A
+  440: 		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
+0025C9 904CC8            MOV      DPTR,#g_variable+09H
+0025CC 04                INC      A
+0025CD F0                MOVX     @DPTR,A
+  441: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+0025CE 904CC7            MOV      DPTR,#g_variable+08H
+0025D1 04                INC      A
+0025D2 F0                MOVX     @DPTR,A
+  442: 		break;
+0025D3 22                RET      
+  443: 		
+  444: 	case IPC_EVT_LE_DISCONNECTED:	
+0025D4         ?C0070?SYS:
+  445: 		g_variable.history_state = g_variable.ble_currentState ;
+0025D4 904CC7            MOV      DPTR,#g_variable+08H
+0025D7 E0                MOVX     A,@DPTR
+0025D8 904CCB            MOV      DPTR,#g_variable+0CH
+0025DB F0                MOVX     @DPTR,A
+  446: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+0025DC E4                CLR      A
+0025DD 904CC7            MOV      DPTR,#g_variable+08H
+0025E0 F0                MOVX     @DPTR,A
+  447: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+0025E1 A3                INC      DPTR
+0025E2 F0                MOVX     @DPTR,A
+  448: 		g_variable.release_data = 1;
+0025E3 904CEB            MOV      DPTR,#g_variable+02CH
+0025E6 04                INC      A
+0025E7 F0                MOVX     @DPTR,A
+  449: 		m_le_send_security_request_flag = 0;
+0025E8 E4                CLR      A
+0025E9 904D3D            MOV      DPTR,#m_le_send_security_request_flag
+0025EC F0                MOVX     @DPTR,A
+  450: 		if (g_variable.lockLpm == 1)
+0025ED 904CEC            MOV      DPTR,#g_variable+02DH
+0025F0 E0                MOVX     A,@DPTR
+0025F1 B40105            CJNE     A,#01H,?C0071?SYS
+  451: 		{
+  452: 			g_variable.lockLpm =0;
+0025F4 E4                CLR      A
+0025F5 F0                MOVX     @DPTR,A
+  453: 			System_long_sleep();
+0025F6 020FCF            LJMP     System_long_sleep
+  454: 			break;
+  455: 		}
+0025F9         ?C0071?SYS:
+  456: 
+  457: 		if (g_variable.key_action != KEY_NONE)
+0025F9 904CED            MOV      DPTR,#g_variable+02EH
+0025FC E0                MOVX     A,@DPTR
+0025FD 6004              JZ       ?C0072?SYS
+  458: 		{
+  459: 			YC_key_action_handle(g_variable.key_action);
+0025FF FF                MOV      R7,A
+002600 02091C            LJMP     _YC_key_action_handle
+  460: 			break;
+  461: 		}
+002603         ?C0072?SYS:
+  462: 
+  463: 
+  464: 		if (g_variable.recon_count != 0)
+002603 904CF0            MOV      DPTR,#g_variable+031H
+002606 E0                MOVX     A,@DPTR
+002607 6008              JZ       ?C0073?SYS
+  465: 		{
+  466: 			YC_load_record_list(recon_index);
+002609 904DD6            MOV      DPTR,#recon_index
+00260C E0                MOVX     A,@DPTR
+00260D FF                MOV      R7,A
+00260E 020737            LJMP     _YC_load_record_list
+  467: 			break;
+  468: 		}
+002611         ?C0073?SYS:
+  469: 
+  470: 		System_long_sleep();		
+002611 120FCF            LCALL    System_long_sleep
+  471: 		g_variable.sleepTimer = 0;
+002614 E4                CLR      A
+002615 904CE3            MOV      DPTR,#g_variable+024H
+002618 F0                MOVX     @DPTR,A
+002619 A3                INC      DPTR
+00261A F0                MOVX     @DPTR,A
+  472: 		break;
+  473: 	}
+  474: }
+00261B         ?C0049?SYS:
+00261B 22                RET      
+----- FUNCTION _kb_cb_event (END) -------
+
+
+----- FUNCTION _xmemclear_ff (BEGIN) -----
+00261C 904F18            MOV      DPTR,#dest
+00261F EB                MOV      A,R3
+002620 F0                MOVX     @DPTR,A
+002621 A3                INC      DPTR
+002622 EA                MOV      A,R2
+002623 F0                MOVX     @DPTR,A
+002624 A3                INC      DPTR
+002625 E9                MOV      A,R1
+002626 F0                MOVX     @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+002627         ?C0011?UTILITIES:
+002627 ED                MOV      A,R5
+002628 1D                DEC      R5
+002629 AE04              MOV      R6,AR4
+00262B 7001              JNZ      ?C0027?UTILITIES
+00262D 1C                DEC      R4
+00262E         ?C0027?UTILITIES:
+00262E 4E                ORL      A,R6
+00262F 6017              JZ       ?C0013?UTILITIES
+002631 904F18            MOV      DPTR,#dest
+002634 E0                MOVX     A,@DPTR
+002635 FB                MOV      R3,A
+002636 A3                INC      DPTR
+002637 E4                CLR      A
+002638 75F001            MOV      B,#01H
+00263B 120424            LCALL    ?C?ILDIX
+00263E A9F0              MOV      R1,B
+002640 FA                MOV      R2,A
+002641 74FF              MOV      A,#0FFH
+002643 1203FC            LCALL    ?C?CSTPTR
+002646 80DF              SJMP     ?C0011?UTILITIES
+002648         ?C0013?UTILITIES:
+002648 22                RET      
+----- FUNCTION _xmemclear_ff (END) -------
+
+
+----- FUNCTION YC_clear_BT_same_address_record (BEGIN) -----
+ FILE: 'bluetooth.c'
+  258: void  YC_clear_BT_same_address_record()
+  259: {
+  260: 	byte record_index;
+  261: 	//if (pinCode_flag == 1)			//clear the same BT3.0 device address record
+  262: 	{
+  263: 		record_index = g_variable.current_device_num-1;
+002649 904CC3            MOV      DPTR,#g_variable+04H
+00264C E0                MOVX     A,@DPTR
+00264D 14                DEC      A
+00264E 904F28            MOV      DPTR,#record_index
+002651 F0                MOVX     @DPTR,A
+  264: 		pinCode_flag= 0;
+002652 E4                CLR      A
+002653 904DF1            MOV      DPTR,#pinCode_flag
+002656 F0                MOVX     @DPTR,A
+  265: 		YC_store_record_list(2, record_index);
+002657 904F28            MOV      DPTR,#record_index
+00265A E0                MOVX     A,@DPTR
+00265B FD                MOV      R5,A
+00265C 7F02              MOV      R7,#02H
+00265E 120FF7            LCALL    _YC_store_record_list
+  266: 
+  267: 		if(record_index != 0)
+002661 904F28            MOV      DPTR,#record_index
+002664 E0                MOVX     A,@DPTR
+002665 FF                MOV      R7,A
+002666 603C              JZ       ?C0044?BLUETOOTH
+  268: 		{
+  269: 			if(bd_key_record_list[0].device_type == 2) 
+002668 904E02            MOV      DPTR,#bd_key_record_list
+00266B E0                MOVX     A,@DPTR
+00266C 6402              XRL      A,#02H
+00266E 7034              JNZ      ?C0044?BLUETOOTH
+  270: 			{
+  271: 				if (compare_str(bd_key_record_list[0].device_addr,bd_key_record_list[record_index].device_addr,6))
+002670 EF                MOV      A,R7
+002671 75F01F            MOV      B,#01FH
+002674 A4                MUL      AB
+002675 2403              ADD      A,#LOW bd_key_record_list+01H
+002677 F9                MOV      R1,A
+002678 744E              MOV      A,#HIGH bd_key_record_list+01H
+00267A 35F0              ADDC     A,B
+00267C FA                MOV      R2,A
+00267D 904ED3            MOV      DPTR,#?_compare_str?BYTE+03H
+002680 7401              MOV      A,#01H
+002682 F0                MOVX     @DPTR,A
+002683 A3                INC      DPTR
+002684 EA                MOV      A,R2
+002685 F0                MOVX     @DPTR,A
+002686 A3                INC      DPTR
+002687 E9                MOV      A,R1
+002688 F0                MOVX     @DPTR,A
+002689 A3                INC      DPTR
+00268A 7406              MOV      A,#06H
+00268C F0                MOVX     @DPTR,A
+00268D 7B01              MOV      R3,#01H
+00268F 7A4E              MOV      R2,#HIGH bd_key_record_list+01H
+002691 7903              MOV      R1,#LOW bd_key_record_list+01H
+002693 F12F              ACALL    _compare_str
+002695 EF                MOV      A,R7
+002696 600C              JZ       ?C0044?BLUETOOTH
+  272: 					xmemclear_ff((byte *)(&bd_key_record_list[0]), sizeof(BD_KEY_RECORD));
+002698 7B01              MOV      R3,#01H
+00269A 7A4E              MOV      R2,#HIGH bd_key_record_list
+00269C 7902              MOV      R1,#LOW bd_key_record_list
+00269E 7D1F              MOV      R5,#01FH
+0026A0 7C00              MOV      R4,#00H
+0026A2 D11C              ACALL    _xmemclear_ff
+  273: 			}
+  274: 		}
+0026A4         ?C0044?BLUETOOTH:
+  275: 
+  276: 		if(record_index != 1)
+0026A4 904F28            MOV      DPTR,#record_index
+0026A7 E0                MOVX     A,@DPTR
+0026A8 FF                MOV      R7,A
+0026A9 6401              XRL      A,#01H
+0026AB 603C              JZ       ?C0047?BLUETOOTH
+  277: 		{
+  278: 			if(bd_key_record_list[1].device_type == 2) 
+0026AD 904E21            MOV      DPTR,#bd_key_record_list+01FH
+0026B0 E0                MOVX     A,@DPTR
+0026B1 6402              XRL      A,#02H
+0026B3 7034              JNZ      ?C0047?BLUETOOTH
+  279: 			{
+  280: 				if (compare_str(bd_key_record_list[1].device_addr,bd_key_record_list[record_index].device_addr,6))
+0026B5 EF                MOV      A,R7
+0026B6 75F01F            MOV      B,#01FH
+0026B9 A4                MUL      AB
+0026BA 2403              ADD      A,#LOW bd_key_record_list+01H
+0026BC F9                MOV      R1,A
+0026BD 744E              MOV      A,#HIGH bd_key_record_list+01H
+0026BF 35F0              ADDC     A,B
+0026C1 FA                MOV      R2,A
+0026C2 904ED3            MOV      DPTR,#?_compare_str?BYTE+03H
+0026C5 7401              MOV      A,#01H
+0026C7 F0                MOVX     @DPTR,A
+0026C8 A3                INC      DPTR
+0026C9 EA                MOV      A,R2
+0026CA F0                MOVX     @DPTR,A
+0026CB A3                INC      DPTR
+0026CC E9                MOV      A,R1
+0026CD F0                MOVX     @DPTR,A
+0026CE A3                INC      DPTR
+0026CF 7406              MOV      A,#06H
+0026D1 F0                MOVX     @DPTR,A
+0026D2 7B01              MOV      R3,#01H
+0026D4 7A4E              MOV      R2,#HIGH bd_key_record_list+020H
+0026D6 7922              MOV      R1,#LOW bd_key_record_list+020H
+0026D8 F12F              ACALL    _compare_str
+0026DA EF                MOV      A,R7
+0026DB 600C              JZ       ?C0047?BLUETOOTH
+  281: 					xmemclear_ff((byte *)(&bd_key_record_list[1]), sizeof(BD_KEY_RECORD));
+0026DD 7B01              MOV      R3,#01H
+0026DF 7A4E              MOV      R2,#HIGH bd_key_record_list+01FH
+0026E1 7921              MOV      R1,#LOW bd_key_record_list+01FH
+0026E3 7D1F              MOV      R5,#01FH
+0026E5 7C00              MOV      R4,#00H
+0026E7 D11C              ACALL    _xmemclear_ff
+  282: 			}
+  283: 		}
+0026E9         ?C0047?BLUETOOTH:
+  284: 
+  285: 		if(record_index != 2)
+0026E9 904F28            MOV      DPTR,#record_index
+0026EC E0                MOVX     A,@DPTR
+0026ED FF                MOV      R7,A
+0026EE 6402              XRL      A,#02H
+0026F0 603C              JZ       ?C0053?BLUETOOTH
+  286: 		{
+  287: 			if(bd_key_record_list[2].device_type == 2) 
+0026F2 904E40            MOV      DPTR,#bd_key_record_list+03EH
+0026F5 E0                MOVX     A,@DPTR
+0026F6 6402              XRL      A,#02H
+0026F8 7034              JNZ      ?C0053?BLUETOOTH
+  288: 			{
+  289: 				if (compare_str(bd_key_record_list[2].device_addr,bd_key_record_list[record_index].device_addr,6))
+0026FA EF                MOV      A,R7
+0026FB 75F01F            MOV      B,#01FH
+0026FE A4                MUL      AB
+0026FF 2403              ADD      A,#LOW bd_key_record_list+01H
+002701 F9                MOV      R1,A
+002702 744E              MOV      A,#HIGH bd_key_record_list+01H
+002704 35F0              ADDC     A,B
+002706 FA                MOV      R2,A
+002707 904ED3            MOV      DPTR,#?_compare_str?BYTE+03H
+00270A 7401              MOV      A,#01H
+00270C F0                MOVX     @DPTR,A
+00270D A3                INC      DPTR
+00270E EA                MOV      A,R2
+00270F F0                MOVX     @DPTR,A
+002710 A3                INC      DPTR
+002711 E9                MOV      A,R1
+002712 F0                MOVX     @DPTR,A
+002713 A3                INC      DPTR
+002714 7406              MOV      A,#06H
+002716 F0                MOVX     @DPTR,A
+002717 7B01              MOV      R3,#01H
+002719 7A4E              MOV      R2,#HIGH bd_key_record_list+03FH
+00271B 7941              MOV      R1,#LOW bd_key_record_list+03FH
+00271D F12F              ACALL    _compare_str
+00271F EF                MOV      A,R7
+002720 600C              JZ       ?C0053?BLUETOOTH
+  290: 					xmemclear_ff((byte *)(&bd_key_record_list[2]), sizeof(BD_KEY_RECORD));
+002722 7B01              MOV      R3,#01H
+002724 7A4E              MOV      R2,#HIGH bd_key_record_list+03EH
+002726 7940              MOV      R1,#LOW bd_key_record_list+03EH
+002728 7D1F              MOV      R5,#01FH
+00272A 7C00              MOV      R4,#00H
+00272C D11C              ACALL    _xmemclear_ff
+  291: 			}
+  292: 		}	
+  293: 	}
+  294: }
+00272E         ?C0053?BLUETOOTH:
+00272E 22                RET      
+----- FUNCTION YC_clear_BT_same_address_record (END) -------
+
+
+----- FUNCTION _compare_str (BEGIN) -----
+00272F 904ED0            MOV      DPTR,#str1
+002732 EB                MOV      A,R3
+002733 F0                MOVX     @DPTR,A
+002734 A3                INC      DPTR
+002735 EA                MOV      A,R2
+002736 F0                MOVX     @DPTR,A
+002737 A3                INC      DPTR
+002738 E9                MOV      A,R1
+002739 F0                MOVX     @DPTR,A
+;---- Variable 'i' assigned to Register 'R7' ----
+00273A E4                CLR      A
+00273B FF                MOV      R7,A
+00273C         ?C0021?UTILITIES:
+00273C 904ED6            MOV      DPTR,#len
+00273F E0                MOVX     A,@DPTR
+002740 FE                MOV      R6,A
+002741 EF                MOV      A,R7
+002742 C3                CLR      C
+002743 9E                SUBB     A,R6
+002744 5030              JNC      ?C0022?UTILITIES
+002746 904ED3            MOV      DPTR,#str2
+002749 E0                MOVX     A,@DPTR
+00274A FB                MOV      R3,A
+00274B A3                INC      DPTR
+00274C E0                MOVX     A,@DPTR
+00274D FA                MOV      R2,A
+00274E A3                INC      DPTR
+00274F E0                MOVX     A,@DPTR
+002750 F9                MOV      R1,A
+002751 8F82              MOV      DPL,R7
+002753 758300            MOV      DPH,#00H
+002756 1203CF            LCALL    ?C?CLDOPTR
+002759 FE                MOV      R6,A
+00275A 904ED0            MOV      DPTR,#str1
+00275D E0                MOVX     A,@DPTR
+00275E FB                MOV      R3,A
+00275F A3                INC      DPTR
+002760 E0                MOVX     A,@DPTR
+002761 FA                MOV      R2,A
+002762 A3                INC      DPTR
+002763 E0                MOVX     A,@DPTR
+002764 F9                MOV      R1,A
+002765 8F82              MOV      DPL,R7
+002767 758300            MOV      DPH,#00H
+00276A 1203CF            LCALL    ?C?CLDOPTR
+00276D 6E                XRL      A,R6
+00276E 6003              JZ       ?C0023?UTILITIES
+002770 7F00              MOV      R7,#00H
+002772 22                RET      
+002773         ?C0023?UTILITIES:
+002773 0F                INC      R7
+002774 80C6              SJMP     ?C0021?UTILITIES
+002776         ?C0022?UTILITIES:
+002776 7F01              MOV      R7,#01H
+002778 22                RET      
+----- FUNCTION _compare_str (END) -------
+
+
+----- FUNCTION KS_Initialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  275: void KS_Initialize()
+  276: {
+  277: 	REG_GPIO_SELECT(0) = 0;
+  278: 	REG_GPIO_SELECT(1) = 0;
+002779 908080            MOV      DPTR,#08080H
+00277C E4                CLR      A
+00277D F0                MOVX     @DPTR,A
+  279: 	REG_GPIO_SELECT(2) = 0;
+00277E A3                INC      DPTR
+00277F F0                MOVX     @DPTR,A
+  280: 	ksRawInitialize();
+002780 A3                INC      DPTR
+002781 F0                MOVX     @DPTR,A
+  281: 	ksColInitialize();
+002782 F1BD              ACALL    ksRawInitialize
+;----                  JMP      ksColInitialize
+  282: }
+----- FUNCTION KS_Initialize (END) -------
+
+
+----- FUNCTION ksColInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  267: static void ksColInitialize()
+  268: {
+  269: 	byte i = 0;
+  270: 	for (i=0; col[i]!=0; i++) {
+002784 E4                CLR      A
+002785 904F2C            MOV      DPTR,#i
+002788 F0                MOVX     @DPTR,A
+  271: 		GPIO_SetInput(col[i], 0);
+002789 F0                MOVX     @DPTR,A
+00278A         ?C0035?KEYSCAN:
+00278A 904F2C            MOV      DPTR,#i
+00278D E0                MOVX     A,@DPTR
+00278E 900681            MOV      DPTR,#col
+002791 93                MOVC     A,@A+DPTR
+002792 FF                MOV      R7,A
+002793 600D              JZ       ?C0038?KEYSCAN
+  272: 	}
+002795 C205              CLR      ?_GPIO_SetInput?BIT
+002797 123D9B            LCALL    _GPIO_SetInput
+  273: }
+00279A 904F2C            MOV      DPTR,#i
+00279D E0                MOVX     A,@DPTR
+00279E 04                INC      A
+00279F F0                MOVX     @DPTR,A
+0027A0 80E8              SJMP     ?C0035?KEYSCAN
+  274: 
+0027A2         ?C0038?KEYSCAN:
+0027A2 22                RET      
+----- FUNCTION ksColInitialize (END) -------
+
+
+----- FUNCTION System_Hardware_init (BEGIN) -----
+ FILE: 'sys.c'
+   54: static void System_Hardware_init()
+   55: {
+   56: 	System_IIC_clk_setup();
+   57: 	KS_Initialize();
+0027A3 F1AA              ACALL    System_IIC_clk_setup
+   58: 	LED_all_shutdown();
+0027A5 F179              ACALL    KS_Initialize
+   59: }
+0027A7 020ED8            LJMP     LED_all_shutdown
+----- FUNCTION System_Hardware_init (END) -------
+
+
+----- FUNCTION System_IIC_clk_setup (BEGIN) -----
+ FILE: 'sys.c'
+   44: static void System_IIC_clk_setup()		// 400KHz
+   45: {
+   46: 	REG_IICD_SCL_LOW  =  0x0d;
+   47:    	REG_IICD_SCL_HIGH  =  0x0e;
+0027AA 908091            MOV      DPTR,#08091H
+0027AD 740D              MOV      A,#0DH
+0027AF F0                MOVX     @DPTR,A
+   48:    	REG_IICD_START_SETUP  = 0x0e;
+0027B0 A3                INC      DPTR
+0027B1 04                INC      A
+0027B2 F0                MOVX     @DPTR,A
+   49:    	REG_IICD_START_HOLD  = 0x0e;
+0027B3 A3                INC      DPTR
+0027B4 F0                MOVX     @DPTR,A
+   50:   	REG_IICD_STOP_SETUP  = 0x0e;
+0027B5 A3                INC      DPTR
+0027B6 F0                MOVX     @DPTR,A
+   51:    	REG_IICD_DATA_SETUP  = 0x0d;
+0027B7 A3                INC      DPTR
+0027B8 F0                MOVX     @DPTR,A
+   52: }
+0027B9 A3                INC      DPTR
+0027BA 14                DEC      A
+0027BB F0                MOVX     @DPTR,A
+   53: 
+0027BC 22                RET      
+----- FUNCTION System_IIC_clk_setup (END) -------
+
+
+----- FUNCTION ksRawInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  258: static void ksRawInitialize()
+  259: {
+  260: 	byte i = 0;
+  261: 	
+0027BD E4                CLR      A
+0027BE 904F2B            MOV      DPTR,#i
+0027C1 F0                MOVX     @DPTR,A
+  262: 	for (i=0; i<8; i++) {
+0027C2 F0                MOVX     @DPTR,A
+0027C3         ?C0031?KEYSCAN:
+0027C3 904F2B            MOV      DPTR,#i
+0027C6 E0                MOVX     A,@DPTR
+0027C7 FF                MOV      R7,A
+0027C8 C3                CLR      C
+0027C9 9408              SUBB     A,#08H
+0027CB 500D              JNC      ?C0034?KEYSCAN
+  263: 		GPIO_SetInput(i, 0);
+0027CD C205              CLR      ?_GPIO_SetInput?BIT
+0027CF 123D9B            LCALL    _GPIO_SetInput
+  264: 	}
+0027D2 904F2B            MOV      DPTR,#i
+0027D5 E0                MOVX     A,@DPTR
+0027D6 04                INC      A
+0027D7 F0                MOVX     @DPTR,A
+0027D8 80E9              SJMP     ?C0031?KEYSCAN
+  265: }
+0027DA         ?C0034?KEYSCAN:
+0027DA 22                RET      
+----- FUNCTION ksRawInitialize (END) -------
+
+
+----- FUNCTION IIcWaitDone (BEGIN) -----
+0027DB         ?C0001?IIC:
+0027DB 90812C            MOV      DPTR,#0812CH
+0027DE E0                MOVX     A,@DPTR
+0027DF 30E5F9            JNB      ACC.5,?C0001?IIC
+0027E2 22                RET      
+----- FUNCTION IIcWaitDone (END) -------
+
+
+----- FUNCTION YC_get_ble_ramdon_lap (BEGIN) -----
+ FILE: 'bluetooth.c'
+  245: void YC_get_ble_ramdon_lap()		
+  246: {
+  247: 	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+  248: 	g_variable.ble_ramdon_lap1++;
+0027E3 7B01              MOV      R3,#01H
+0027E5 7A4C              MOV      R2,#HIGH g_variable+033H
+0027E7 79F2              MOV      R1,#LOW g_variable+033H
+0027E9 7D02              MOV      R5,#02H
+0027EB 7C00              MOV      R4,#00H
+0027ED 7FBE              MOV      R7,#0BEH
+0027EF 7E7F              MOV      R6,#07FH
+0027F1 114E              ACALL    _IIC_Read
+  249: 	g_variable.ble_ramdon_lap2++;
+0027F3 904CF2            MOV      DPTR,#g_variable+033H
+0027F6 E0                MOVX     A,@DPTR
+0027F7 04                INC      A
+0027F8 F0                MOVX     @DPTR,A
+  250: 	m_le_lap[1] = g_variable.ble_ramdon_lap1;
+0027F9 A3                INC      DPTR
+0027FA E0                MOVX     A,@DPTR
+0027FB 04                INC      A
+0027FC F0                MOVX     @DPTR,A
+  251: 	m_le_lap[2] = g_variable.ble_ramdon_lap2;
+0027FD 904CF2            MOV      DPTR,#g_variable+033H
+002800 E0                MOVX     A,@DPTR
+002801 9044FA            MOV      DPTR,#m_le_lap+01H
+002804 F0                MOVX     @DPTR,A
+  252: 	m_le_lap[3] = le_lap_temp[0];
+002805 904CF3            MOV      DPTR,#g_variable+034H
+002808 E0                MOVX     A,@DPTR
+002809 9044FB            MOV      DPTR,#m_le_lap+02H
+00280C F0                MOVX     @DPTR,A
+  253: 	m_le_lap[4] = le_lap_temp[1];
+00280D 904DD0            MOV      DPTR,#le_lap_temp
+002810 E0                MOVX     A,@DPTR
+002811 9044FC            MOV      DPTR,#m_le_lap+03H
+002814 F0                MOVX     @DPTR,A
+  254: 	m_le_lap[5] = le_lap_temp[2];
+002815 904DD1            MOV      DPTR,#le_lap_temp+01H
+002818 E0                MOVX     A,@DPTR
+002819 9044FD            MOV      DPTR,#m_le_lap+04H
+00281C F0                MOVX     @DPTR,A
+  255: }
+00281D 904DD2            MOV      DPTR,#le_lap_temp+02H
+002820 E0                MOVX     A,@DPTR
+002821 9044FE            MOV      DPTR,#m_le_lap+05H
+002824 F0                MOVX     @DPTR,A
+  256: 
+002825 22                RET      
+----- FUNCTION YC_get_ble_ramdon_lap (END) -------
+
+
+----- FUNCTION _kb_set_systemkey (BEGIN) -----
+ FILE: 'kb_process.c'
+  209: void kb_set_systemkey(byte systemkey_value)
+  210: {
+;---- Variable 'systemkey_value' assigned to Register 'R7' ----
+  211: 	if(mult_key_status != KEY_WAIT_RELEASE)
+  212: 	{
+002826 904E5F            MOV      DPTR,#mult_key_status
+002829 E0                MOVX     A,@DPTR
+00282A 6402              XRL      A,#02H
+00282C 6012              JZ       ?C0052?KB_PROCESS
+  213: 		mult_key_status = KEY_SYSTEM_PRESS;
+  214: 		system_key_press = 1;
+00282E 7404              MOV      A,#04H
+002830 F0                MOVX     @DPTR,A
+  215: 		multikey[0] = HID_REPORTID_SYSTEM;
+002831 904DFC            MOV      DPTR,#system_key_press
+002834 7401              MOV      A,#01H
+002836 F0                MOVX     @DPTR,A
+  216: 		multikey[1] = systemkey_value;
+002837 904E60            MOV      DPTR,#multikey
+00283A 7406              MOV      A,#06H
+00283C F0                MOVX     @DPTR,A
+  217: 	}
+00283D A3                INC      DPTR
+00283E EF                MOV      A,R7
+00283F F0                MOVX     @DPTR,A
+  218: }
+  219: 
+002840         ?C0052?KB_PROCESS:
+002840 22                RET      
+----- FUNCTION _kb_set_systemkey (END) -------
+
+
+----- FUNCTION kb_bt_pincode_enter (BEGIN) -----
+ FILE: 'kb_process.c'
+  248: void kb_bt_pincode_enter()
+  249: {
+  250: 	tKSEVENT *pEvt = NULL;
+  251: 	pEvt = KS_GetCurrentEvt();
+002841 904F06            MOV      DPTR,#pEvt
+002844 E4                CLR      A
+002845 F0                MOVX     @DPTR,A
+002846 A3                INC      DPTR
+002847 F0                MOVX     @DPTR,A
+002848 A3                INC      DPTR
+002849 F0                MOVX     @DPTR,A
+  252: 	if (pEvt == NULL)
+00284A 51B3              ACALL    KS_GetCurrentEvt
+00284C 904F06            MOV      DPTR,#pEvt
+00284F EB                MOV      A,R3
+002850 F0                MOVX     @DPTR,A
+002851 A3                INC      DPTR
+002852 EA                MOV      A,R2
+002853 F0                MOVX     @DPTR,A
+002854 A3                INC      DPTR
+002855 E9                MOV      A,R1
+002856 F0                MOVX     @DPTR,A
+  253: 		return;
+002857 4A                ORL      A,R2
+002858 7002              JNZ      $ + 4H
+00285A 41B2              AJMP     ?C0055?KB_PROCESS
+00285C         ?C0054?KB_PROCESS:
+  254: 	if (pEvt->ksPool[0] != 0) {
+00285C 904F06            MOV      DPTR,#pEvt
+00285F E0                MOVX     A,@DPTR
+002860 FB                MOV      R3,A
+002861 A3                INC      DPTR
+002862 E0                MOVX     A,@DPTR
+002863 FA                MOV      R2,A
+002864 A3                INC      DPTR
+002865 E0                MOVX     A,@DPTR
+002866 F9                MOV      R1,A
+002867 900001            MOV      DPTR,#01H
+00286A 1203CF            LCALL    ?C?CLDOPTR
+00286D FF                MOV      R7,A
+00286E 7002              JNZ      $ + 4H
+002870 41B2              AJMP     ?C0055?KB_PROCESS
+  255: 		if (pEvt->ksPool[0] == HID_KEY_ENTER ||pEvt->ksPool[0] == HID_KEY_KP_ENTER) {
+002872 6428              XRL      A,#028H
+002874 6005              JZ       ?C0058?KB_PROCESS
+002876 EF                MOV      A,R7
+002877 6458              XRL      A,#058H
+002879 7032              JNZ      ?C0057?KB_PROCESS
+00287B         ?C0058?KB_PROCESS:
+  256: 			if (	g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
+00287B 904CC8            MOV      DPTR,#g_variable+09H
+00287E E0                MOVX     A,@DPTR
+00287F B40210            CJNE     A,#02H,?C0059?KB_PROCESS
+  257: 			{
+  258: 				IPC_TxControlCmd(IPC_CMD_LE_SET_PINCODE);
+002882 7F29              MOV      R7,#029H
+002884 12085F            LCALL    _IPC_TxControlCmd
+  259: 				g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_PINCODE_OK;
+002887 904CC8            MOV      DPTR,#g_variable+09H
+00288A 7403              MOV      A,#03H
+00288C F0                MOVX     @DPTR,A
+  260: 				le_pin_code_len = 0;
+00288D E4                CLR      A
+00288E 904DD7            MOV      DPTR,#le_pin_code_len
+002891 F0                MOVX     @DPTR,A
+  261: 			}
+002892         ?C0059?KB_PROCESS:
+  262: 
+  263: 			if (	g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+002892 904CCA            MOV      DPTR,#g_variable+0BH
+002895 E0                MOVX     A,@DPTR
+002896 6402              XRL      A,#02H
+002898 6002              JZ       $ + 4H
+00289A 41B2              AJMP     ?C0055?KB_PROCESS
+  264: 			{	
+  265: 				m_link_key_exists = 1;
+00289C 90425E            MOV      DPTR,#m_link_key_exists
+00289F 04                INC      A
+0028A0 F0                MOVX     @DPTR,A
+  266: 				IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+0028A1 7F0A              MOV      R7,#0AH
+0028A3 12085F            LCALL    _IPC_TxControlCmd
+  267: 				g_variable.br_currentSubState = CHANGE_TO_BR_SUB_PINCODE_OK;
+0028A6 904CCA            MOV      DPTR,#g_variable+0BH
+0028A9 7403              MOV      A,#03H
+0028AB F0                MOVX     @DPTR,A
+  268: 			}
+  269: 		}
+0028AC 22                RET      
+0028AD         ?C0057?KB_PROCESS:
+  270: 		else
+  271: 		{
+  272: 			if (pEvt->ksPool[0] <=HID_KEY_KP_0 && pEvt->ksPool[0] >= HID_KEY_KP_1)
+0028AD 904F06            MOV      DPTR,#pEvt
+0028B0 E0                MOVX     A,@DPTR
+0028B1 FB                MOV      R3,A
+0028B2 A3                INC      DPTR
+0028B3 E0                MOVX     A,@DPTR
+0028B4 FA                MOV      R2,A
+0028B5 A3                INC      DPTR
+0028B6 E0                MOVX     A,@DPTR
+0028B7 F9                MOV      R1,A
+0028B8 900001            MOV      DPTR,#01H
+0028BB 1203CF            LCALL    ?C?CLDOPTR
+0028BE FF                MOV      R7,A
+0028BF D3                SETB     C
+0028C0 9462              SUBB     A,#062H
+0028C2 4002              JC       $ + 4H
+0028C4 217E              AJMP     ?C0062?KB_PROCESS
+0028C6 EF                MOV      A,R7
+0028C7 C3                CLR      C
+0028C8 9459              SUBB     A,#059H
+0028CA 5002              JNC      $ + 4H
+0028CC 217E              AJMP     ?C0062?KB_PROCESS
+  273: 			{
+  274: 				if (pEvt->ksPool[0] == HID_KEY_KP_0) 
+0028CE EF                MOV      A,R7
+0028CF B46238            CJNE     A,#062H,?C0063?KB_PROCESS
+  275: 				{
+  276: 					ipcPin[ipcPinlen ++] = 0x30;	//ascii code: 0     x030
+0028D2 90054F            MOV      DPTR,#ipcPinlen
+0028D5 E0                MOVX     A,@DPTR
+0028D6 FF                MOV      R7,A
+0028D7 04                INC      A
+0028D8 F0                MOVX     @DPTR,A
+0028D9 7450              MOV      A,#LOW ipcPin
+0028DB 2F                ADD      A,R7
+0028DC F582              MOV      DPL,A
+0028DE E4                CLR      A
+0028DF 3405              ADDC     A,#HIGH ipcPin
+0028E1 F583              MOV      DPH,A
+0028E3 7430              MOV      A,#030H
+0028E5 F0                MOVX     @DPTR,A
+  277: 					le_pin_code = le_pin_code*10;
+0028E6 904D39            MOV      DPTR,#le_pin_code
+0028E9 E0                MOVX     A,@DPTR
+0028EA FC                MOV      R4,A
+0028EB A3                INC      DPTR
+0028EC E0                MOVX     A,@DPTR
+0028ED FD                MOV      R5,A
+0028EE A3                INC      DPTR
+0028EF E0                MOVX     A,@DPTR
+0028F0 FE                MOV      R6,A
+0028F1 A3                INC      DPTR
+0028F2 E0                MOVX     A,@DPTR
+0028F3 FF                MOV      R7,A
+0028F4 E4                CLR      A
+0028F5 7B0A              MOV      R3,#0AH
+0028F7 FA                MOV      R2,A
+0028F8 F9                MOV      R1,A
+0028F9 F8                MOV      R0,A
+0028FA 12043A            LCALL    ?C?LMUL
+0028FD 904D39            MOV      DPTR,#le_pin_code
+002900 120576            LCALL    ?C?LSTXDATA
+  278: 					le_pin_code_len++;
+002903 904DD7            MOV      DPTR,#le_pin_code_len
+002906 E0                MOVX     A,@DPTR
+002907 04                INC      A
+002908 F0                MOVX     @DPTR,A
+  279: 				}
+002909 22                RET      
+00290A         ?C0063?KB_PROCESS:
+  280: 				else 
+  281: 				{
+  282: 					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - 0x28;  // ascii :0x31-0x39
+00290A 904F06            MOV      DPTR,#pEvt
+00290D E0                MOVX     A,@DPTR
+00290E FB                MOV      R3,A
+00290F A3                INC      DPTR
+002910 E0                MOVX     A,@DPTR
+002911 FA                MOV      R2,A
+002912 A3                INC      DPTR
+002913 E0                MOVX     A,@DPTR
+002914 F9                MOV      R1,A
+002915 900001            MOV      DPTR,#01H
+002918 1203CF            LCALL    ?C?CLDOPTR
+00291B 24D8              ADD      A,#0D8H
+00291D FF                MOV      R7,A
+00291E 90054F            MOV      DPTR,#ipcPinlen
+002921 E0                MOVX     A,@DPTR
+002922 FE                MOV      R6,A
+002923 04                INC      A
+002924 F0                MOVX     @DPTR,A
+002925 7450              MOV      A,#LOW ipcPin
+002927 2E                ADD      A,R6
+002928 F582              MOV      DPL,A
+00292A E4                CLR      A
+00292B 3405              ADDC     A,#HIGH ipcPin
+00292D F583              MOV      DPH,A
+00292F EF                MOV      A,R7
+002930 F0                MOVX     @DPTR,A
+  283: 					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - 0x58);
+002931 900001            MOV      DPTR,#01H
+002934 1203CF            LCALL    ?C?CLDOPTR
+002937 24A8              ADD      A,#0A8H
+002939 FF                MOV      R7,A
+00293A E4                CLR      A
+00293B 34FF              ADDC     A,#0FFH
+00293D FE                MOV      R6,A
+00293E E4                CLR      A
+00293F FC                MOV      R4,A
+002940 FD                MOV      R5,A
+002941 C004              PUSH     AR4
+002943 C005              PUSH     AR5
+002945 C006              PUSH     AR6
+002947 C007              PUSH     AR7
+002949 7F0A              MOV      R7,#0AH
+00294B FE                MOV      R6,A
+00294C 904D39            MOV      DPTR,#le_pin_code
+00294F E0                MOVX     A,@DPTR
+002950 F8                MOV      R0,A
+002951 A3                INC      DPTR
+002952 E0                MOVX     A,@DPTR
+002953 F9                MOV      R1,A
+002954 A3                INC      DPTR
+002955 E0                MOVX     A,@DPTR
+002956 FA                MOV      R2,A
+002957 A3                INC      DPTR
+002958 E0                MOVX     A,@DPTR
+002959 FB                MOV      R3,A
+00295A 12043A            LCALL    ?C?LMUL
+00295D D003              POP      AR3
+00295F D002              POP      AR2
+002961 D001              POP      AR1
+002963 D000              POP      AR0
+002965 EF                MOV      A,R7
+002966 2B                ADD      A,R3
+002967 FF                MOV      R7,A
+002968 EE                MOV      A,R6
+002969 3A                ADDC     A,R2
+00296A FE                MOV      R6,A
+00296B ED                MOV      A,R5
+00296C 39                ADDC     A,R1
+00296D FD                MOV      R5,A
+00296E EC                MOV      A,R4
+00296F 38                ADDC     A,R0
+002970 FC                MOV      R4,A
+002971 904D39            MOV      DPTR,#le_pin_code
+002974 120576            LCALL    ?C?LSTXDATA
+  284: 					le_pin_code_len++;
+002977 904DD7            MOV      DPTR,#le_pin_code_len
+00297A E0                MOVX     A,@DPTR
+00297B 04                INC      A
+00297C F0                MOVX     @DPTR,A
+  285: 				}
+  286: 			}
+00297D 22                RET      
+00297E         ?C0062?KB_PROCESS:
+  287: 			else if (pEvt->ksPool[0] <=HID_KEY_0 && pEvt->ksPool[0] >= HID_KEY_1)
+00297E 904F06            MOV      DPTR,#pEvt
+002981 E0                MOVX     A,@DPTR
+002982 FB                MOV      R3,A
+002983 A3                INC      DPTR
+002984 E0                MOVX     A,@DPTR
+002985 FA                MOV      R2,A
+002986 A3                INC      DPTR
+002987 E0                MOVX     A,@DPTR
+002988 F9                MOV      R1,A
+002989 900001            MOV      DPTR,#01H
+00298C 1203CF            LCALL    ?C?CLDOPTR
+00298F FF                MOV      R7,A
+002990 D3                SETB     C
+002991 9427              SUBB     A,#027H
+002993 4002              JC       $ + 4H
+002995 414F              AJMP     ?C0066?KB_PROCESS
+002997 EF                MOV      A,R7
+002998 C3                CLR      C
+002999 941E              SUBB     A,#01EH
+00299B 5002              JNC      $ + 4H
+00299D 414F              AJMP     ?C0066?KB_PROCESS
+  288: 			{
+  289: 				if (pEvt->ksPool[0] == HID_KEY_0) 
+00299F EF                MOV      A,R7
+0029A0 B42738            CJNE     A,#027H,?C0067?KB_PROCESS
+  290: 				{
+  291: 					ipcPin[ipcPinlen ++] = 0x30;	//0
+0029A3 90054F            MOV      DPTR,#ipcPinlen
+0029A6 E0                MOVX     A,@DPTR
+0029A7 FF                MOV      R7,A
+0029A8 04                INC      A
+0029A9 F0                MOVX     @DPTR,A
+0029AA 7450              MOV      A,#LOW ipcPin
+0029AC 2F                ADD      A,R7
+0029AD F582              MOV      DPL,A
+0029AF E4                CLR      A
+0029B0 3405              ADDC     A,#HIGH ipcPin
+0029B2 F583              MOV      DPH,A
+0029B4 7430              MOV      A,#030H
+0029B6 F0                MOVX     @DPTR,A
+  292: 					le_pin_code = le_pin_code*10;
+0029B7 904D39            MOV      DPTR,#le_pin_code
+0029BA E0                MOVX     A,@DPTR
+0029BB FC                MOV      R4,A
+0029BC A3                INC      DPTR
+0029BD E0                MOVX     A,@DPTR
+0029BE FD                MOV      R5,A
+0029BF A3                INC      DPTR
+0029C0 E0                MOVX     A,@DPTR
+0029C1 FE                MOV      R6,A
+0029C2 A3                INC      DPTR
+0029C3 E0                MOVX     A,@DPTR
+0029C4 FF                MOV      R7,A
+0029C5 E4                CLR      A
+0029C6 7B0A              MOV      R3,#0AH
+0029C8 FA                MOV      R2,A
+0029C9 F9                MOV      R1,A
+0029CA F8                MOV      R0,A
+0029CB 12043A            LCALL    ?C?LMUL
+0029CE 904D39            MOV      DPTR,#le_pin_code
+0029D1 120576            LCALL    ?C?LSTXDATA
+  293: 					le_pin_code_len++;
+0029D4 904DD7            MOV      DPTR,#le_pin_code_len
+0029D7 E0                MOVX     A,@DPTR
+0029D8 04                INC      A
+0029D9 F0                MOVX     @DPTR,A
+  294: 				}
+0029DA 22                RET      
+0029DB         ?C0067?KB_PROCESS:
+  295: 				else 
+  296: 				{
+  297: 					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - (HID_KEY_1 -1) + 0x30;
+0029DB 904F06            MOV      DPTR,#pEvt
+0029DE E0                MOVX     A,@DPTR
+0029DF FB                MOV      R3,A
+0029E0 A3                INC      DPTR
+0029E1 E0                MOVX     A,@DPTR
+0029E2 FA                MOV      R2,A
+0029E3 A3                INC      DPTR
+0029E4 E0                MOVX     A,@DPTR
+0029E5 F9                MOV      R1,A
+0029E6 900001            MOV      DPTR,#01H
+0029E9 1203CF            LCALL    ?C?CLDOPTR
+0029EC 2413              ADD      A,#013H
+0029EE FF                MOV      R7,A
+0029EF 90054F            MOV      DPTR,#ipcPinlen
+0029F2 E0                MOVX     A,@DPTR
+0029F3 FE                MOV      R6,A
+0029F4 04                INC      A
+0029F5 F0                MOVX     @DPTR,A
+0029F6 7450              MOV      A,#LOW ipcPin
+0029F8 2E                ADD      A,R6
+0029F9 F582              MOV      DPL,A
+0029FB E4                CLR      A
+0029FC 3405              ADDC     A,#HIGH ipcPin
+0029FE F583              MOV      DPH,A
+002A00 EF                MOV      A,R7
+002A01 F0                MOVX     @DPTR,A
+  298: 					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - (HID_KEY_1 -1));
+002A02 900001            MOV      DPTR,#01H
+002A05 1203CF            LCALL    ?C?CLDOPTR
+002A08 24E3              ADD      A,#0E3H
+002A0A FF                MOV      R7,A
+002A0B E4                CLR      A
+002A0C 34FF              ADDC     A,#0FFH
+002A0E FE                MOV      R6,A
+002A0F E4                CLR      A
+002A10 FC                MOV      R4,A
+002A11 FD                MOV      R5,A
+002A12 C004              PUSH     AR4
+002A14 C005              PUSH     AR5
+002A16 C006              PUSH     AR6
+002A18 C007              PUSH     AR7
+002A1A 7F0A              MOV      R7,#0AH
+002A1C FE                MOV      R6,A
+002A1D 904D39            MOV      DPTR,#le_pin_code
+002A20 E0                MOVX     A,@DPTR
+002A21 F8                MOV      R0,A
+002A22 A3                INC      DPTR
+002A23 E0                MOVX     A,@DPTR
+002A24 F9                MOV      R1,A
+002A25 A3                INC      DPTR
+002A26 E0                MOVX     A,@DPTR
+002A27 FA                MOV      R2,A
+002A28 A3                INC      DPTR
+002A29 E0                MOVX     A,@DPTR
+002A2A FB                MOV      R3,A
+002A2B 12043A            LCALL    ?C?LMUL
+002A2E D003              POP      AR3
+002A30 D002              POP      AR2
+002A32 D001              POP      AR1
+002A34 D000              POP      AR0
+002A36 EF                MOV      A,R7
+002A37 2B                ADD      A,R3
+002A38 FF                MOV      R7,A
+002A39 EE                MOV      A,R6
+002A3A 3A                ADDC     A,R2
+002A3B FE                MOV      R6,A
+002A3C ED                MOV      A,R5
+002A3D 39                ADDC     A,R1
+002A3E FD                MOV      R5,A
+002A3F EC                MOV      A,R4
+002A40 38                ADDC     A,R0
+002A41 FC                MOV      R4,A
+002A42 904D39            MOV      DPTR,#le_pin_code
+002A45 120576            LCALL    ?C?LSTXDATA
+  299: 					le_pin_code_len++;
+002A48 904DD7            MOV      DPTR,#le_pin_code_len
+002A4B E0                MOVX     A,@DPTR
+002A4C 04                INC      A
+002A4D F0                MOVX     @DPTR,A
+  300: 				}
+  301: 			}
+002A4E 22                RET      
+002A4F         ?C0066?KB_PROCESS:
+  302: 			else if(pEvt->ksPool[0] == HID_KEY_BACKSPACE) 
+002A4F 904F06            MOV      DPTR,#pEvt
+002A52 E0                MOVX     A,@DPTR
+002A53 FB                MOV      R3,A
+002A54 A3                INC      DPTR
+002A55 E0                MOVX     A,@DPTR
+002A56 FA                MOV      R2,A
+002A57 A3                INC      DPTR
+002A58 E0                MOVX     A,@DPTR
+002A59 F9                MOV      R1,A
+002A5A 900001            MOV      DPTR,#01H
+002A5D 1203CF            LCALL    ?C?CLDOPTR
+002A60 642A              XRL      A,#02AH
+002A62 7040              JNZ      ?C0070?KB_PROCESS
+  303: 			{
+  304: 				if(ipcPinlen)
+002A64 90054F            MOV      DPTR,#ipcPinlen
+002A67 E0                MOVX     A,@DPTR
+002A68 6010              JZ       ?C0071?KB_PROCESS
+  305: 					ipcPin[ipcPinlen --] = 0;
+002A6A E0                MOVX     A,@DPTR
+002A6B FF                MOV      R7,A
+002A6C 14                DEC      A
+002A6D F0                MOVX     @DPTR,A
+002A6E 7450              MOV      A,#LOW ipcPin
+002A70 2F                ADD      A,R7
+002A71 F582              MOV      DPL,A
+002A73 E4                CLR      A
+002A74 3405              ADDC     A,#HIGH ipcPin
+002A76 F583              MOV      DPH,A
+002A78 E4                CLR      A
+002A79 F0                MOVX     @DPTR,A
+002A7A         ?C0071?KB_PROCESS:
+  306: 				if(le_pin_code_len)
+002A7A 904DD7            MOV      DPTR,#le_pin_code_len
+002A7D E0                MOVX     A,@DPTR
+002A7E 6032              JZ       ?C0055?KB_PROCESS
+  307: 				{
+  308: 					le_pin_code = le_pin_code/10;
+002A80 904D39            MOV      DPTR,#le_pin_code
+002A83 E0                MOVX     A,@DPTR
+002A84 FC                MOV      R4,A
+002A85 A3                INC      DPTR
+002A86 E0                MOVX     A,@DPTR
+002A87 FD                MOV      R5,A
+002A88 A3                INC      DPTR
+002A89 E0                MOVX     A,@DPTR
+002A8A FE                MOV      R6,A
+002A8B A3                INC      DPTR
+002A8C E0                MOVX     A,@DPTR
+002A8D FF                MOV      R7,A
+002A8E E4                CLR      A
+002A8F 7B0A              MOV      R3,#0AH
+002A91 FA                MOV      R2,A
+002A92 F9                MOV      R1,A
+002A93 F8                MOV      R0,A
+002A94 1204C5            LCALL    ?C?ULDIV
+002A97 904D39            MOV      DPTR,#le_pin_code
+002A9A 120576            LCALL    ?C?LSTXDATA
+  309: 					le_pin_code_len--;
+002A9D 904DD7            MOV      DPTR,#le_pin_code_len
+002AA0 E0                MOVX     A,@DPTR
+002AA1 14                DEC      A
+002AA2 F0                MOVX     @DPTR,A
+  310: 				}
+  311: 			}
+002AA3 22                RET      
+002AA4         ?C0070?KB_PROCESS:
+  312: 			else
+  313: 			{
+  314: 				kb_motion_keyscan(pEvt);
+002AA4 904F06            MOV      DPTR,#pEvt
+002AA7 E0                MOVX     A,@DPTR
+002AA8 FB                MOV      R3,A
+002AA9 A3                INC      DPTR
+002AAA E0                MOVX     A,@DPTR
+002AAB FA                MOV      R2,A
+002AAC A3                INC      DPTR
+002AAD E0                MOVX     A,@DPTR
+002AAE F9                MOV      R1,A
+002AAF 121111            LCALL    _kb_motion_keyscan
+  315: 			}
+  316: 		}
+  317: 	}
+  318: }
+002AB2         ?C0055?KB_PROCESS:
+002AB2 22                RET      
+----- FUNCTION kb_bt_pincode_enter (END) -------
+
+
+----- FUNCTION KS_GetCurrentEvt (BEGIN) -----
+ FILE: 'keyscan.c'
+  361: tKSEVENT *KS_GetCurrentEvt()
+  362: {
+  363: 	//
+  364: 	byte i = 0;
+002AB3 E4                CLR      A
+002AB4 904EAD            MOV      DPTR,#i
+002AB7 F0                MOVX     @DPTR,A
+  365: 	byte j = 0;
+002AB8 A3                INC      DPTR
+002AB9 F0                MOVX     @DPTR,A
+  366: 	byte k = 0;
+002ABA A3                INC      DPTR
+002ABB F0                MOVX     @DPTR,A
+  367: 	byte temp = 0;
+002ABC A3                INC      DPTR
+002ABD F0                MOVX     @DPTR,A
+  368: 	byte flag = 0;
+002ABE A3                INC      DPTR
+002ABF F0                MOVX     @DPTR,A
+  369: 	byte offset = 0;
+002AC0 A3                INC      DPTR
+002AC1 F0                MOVX     @DPTR,A
+  370: 	byte state = 0;
+002AC2 A3                INC      DPTR
+002AC3 F0                MOVX     @DPTR,A
+  371: 	byte keyCounttemp = 0;
+002AC4 A3                INC      DPTR
+002AC5 F0                MOVX     @DPTR,A
+  372: 	byte key_value_temp = 0;
+002AC6 A3                INC      DPTR
+002AC7 F0                MOVX     @DPTR,A
+  373: 	byte ghost = 0;
+002AC8 A3                INC      DPTR
+002AC9 F0                MOVX     @DPTR,A
+  374: 	byte rawCount = 0;
+002ACA A3                INC      DPTR
+002ACB F0                MOVX     @DPTR,A
+  375: 	
+  376: 	KS_ScanMatrix();
+002ACC 1232D7            LCALL    KS_ScanMatrix
+  377: 
+  378: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+002ACF 7A4D              MOV      R2,#HIGH ksSelMapCheck
+002AD1 79A8              MOV      R1,#LOW ksSelMapCheck
+002AD3 904ED3            MOV      DPTR,#?_compare_str?BYTE+03H
+002AD6 7401              MOV      A,#01H
+002AD8 F0                MOVX     @DPTR,A
+002AD9 A3                INC      DPTR
+002ADA 744D              MOV      A,#HIGH ksSelMapCheck
+002ADC F0                MOVX     @DPTR,A
+002ADD A3                INC      DPTR
+002ADE 74A8              MOV      A,#LOW ksSelMapCheck
+002AE0 F0                MOVX     @DPTR,A
+002AE1 A3                INC      DPTR
+002AE2 7414              MOV      A,#014H
+002AE4 F0                MOVX     @DPTR,A
+002AE5 7B01              MOV      R3,#01H
+002AE7 7A4D              MOV      R2,#HIGH ksSelMapCurr
+002AE9 79BC              MOV      R1,#LOW ksSelMapCurr
+002AEB 12272F            LCALL    _compare_str
+002AEE EF                MOV      A,R7
+002AEF 6016              JZ       ?C0062?KEYSCAN
+002AF1 7B01              MOV      R3,#01H
+002AF3 7A4D              MOV      R2,#HIGH ksSelMapCurr
+002AF5 79BC              MOV      R1,#LOW ksSelMapCurr
+002AF7 7D14              MOV      R5,#014H
+002AF9 91E9              ACALL    _array_is_empty
+002AFB EF                MOV      A,R7
+002AFC 7009              JNZ      ?C0062?KEYSCAN
+  379: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+  380: 	{
+  381: 		g_variable.button_flag |= 0x02;
+002AFE 904CCE            MOV      DPTR,#g_variable+0FH
+002B01 E0                MOVX     A,@DPTR
+002B02 4402              ORL      A,#02H
+002B04 F0                MOVX     @DPTR,A
+  382: 	}
+002B05 800C              SJMP     ?C0063?KEYSCAN
+002B07         ?C0062?KEYSCAN:
+  383: 	else
+  384: 	{	
+  385: 		g_variable.button_flag &= 0xFD;
+002B07 904CCE            MOV      DPTR,#g_variable+0FH
+002B0A E0                MOVX     A,@DPTR
+002B0B 54FD              ANL      A,#0FDH
+002B0D F0                MOVX     @DPTR,A
+  386: 		g_variable.button_timer[1] = 0;
+002B0E E4                CLR      A
+002B0F 904CD0            MOV      DPTR,#g_variable+011H
+002B12 F0                MOVX     @DPTR,A
+  387: 	}
+002B13         ?C0063?KEYSCAN:
+  388: 
+  389: 	for (i=0; col[i]!=0; i++) 
+002B13 E4                CLR      A
+002B14 904EAD            MOV      DPTR,#i
+002B17 F0                MOVX     @DPTR,A
+002B18         ?C0064?KEYSCAN:
+002B18 904EAD            MOV      DPTR,#i
+002B1B E0                MOVX     A,@DPTR
+002B1C FF                MOV      R7,A
+002B1D 900681            MOV      DPTR,#col
+002B20 93                MOVC     A,@A+DPTR
+002B21 7002              JNZ      $ + 4H
+002B23 61E5              AJMP     ?C0065?KEYSCAN
+  390: 	{
+  391: 		temp = ksSelMapCurr[i];
+002B25 74BC              MOV      A,#LOW ksSelMapCurr
+002B27 2F                ADD      A,R7
+002B28 F582              MOV      DPL,A
+002B2A E4                CLR      A
+002B2B 344D              ADDC     A,#HIGH ksSelMapCurr
+002B2D F583              MOV      DPH,A
+002B2F E0                MOVX     A,@DPTR
+002B30 904EB0            MOV      DPTR,#temp
+002B33 F0                MOVX     @DPTR,A
+  392: 		rawCount = bit_count(temp);
+002B34 E0                MOVX     A,@DPTR
+002B35 FF                MOV      R7,A
+002B36 91DB              ACALL    _bit_count
+002B38 904EB7            MOV      DPTR,#rawCount
+002B3B EF                MOV      A,R7
+002B3C F0                MOVX     @DPTR,A
+  393: 		if(rawCount >= 2)		// col[i] has more than two key press
+002B3D C3                CLR      C
+002B3E 9402              SUBB     A,#02H
+002B40 5002              JNC      $ + 4H
+002B42 61CE              AJMP     ?C0067?KEYSCAN
+  394: 		{
+  395: 			for(j=0 ; j<8 ;j++)
+002B44 E4                CLR      A
+002B45 904EAE            MOV      DPTR,#j
+002B48 F0                MOVX     @DPTR,A
+002B49         ?C0068?KEYSCAN:
+002B49 904EAE            MOV      DPTR,#j
+002B4C E0                MOVX     A,@DPTR
+002B4D FF                MOV      R7,A
+002B4E C3                CLR      C
+002B4F 9408              SUBB     A,#08H
+002B51 507B              JNC      ?C0067?KEYSCAN
+  396: 			{
+  397: 				if(temp & (1<<j))	// Ci_Rj press
+002B53 7401              MOV      A,#01H
+002B55 7E00              MOV      R6,#00H
+002B57 A807              MOV      R0,AR7
+002B59 08                INC      R0
+002B5A 8005              SJMP     ?C0112?KEYSCAN
+002B5C         ?C0111?KEYSCAN:
+002B5C C3                CLR      C
+002B5D 33                RLC      A
+002B5E CE                XCH      A,R6
+002B5F 33                RLC      A
+002B60 CE                XCH      A,R6
+002B61         ?C0112?KEYSCAN:
+002B61 D8F9              DJNZ     R0,?C0111?KEYSCAN
+002B63 FF                MOV      R7,A
+002B64 904EB0            MOV      DPTR,#temp
+002B67 E0                MOVX     A,@DPTR
+002B68 FD                MOV      R5,A
+002B69 E4                CLR      A
+002B6A EF                MOV      A,R7
+002B6B 5D                ANL      A,R5
+002B6C 6058              JZ       ?C0070?KEYSCAN
+  398: 				{
+  399: 					for(k=0 ; col[k]!=0; k++)
+002B6E E4                CLR      A
+002B6F 904EAF            MOV      DPTR,#k
+002B72 F0                MOVX     @DPTR,A
+002B73         ?C0072?KEYSCAN:
+002B73 904EAF            MOV      DPTR,#k
+002B76 E0                MOVX     A,@DPTR
+002B77 FF                MOV      R7,A
+002B78 900681            MOV      DPTR,#col
+002B7B 93                MOVC     A,@A+DPTR
+002B7C 6048              JZ       ?C0070?KEYSCAN
+  400: 					{
+  401: 						if(k!= i)
+002B7E 904EAD            MOV      DPTR,#i
+002B81 E0                MOVX     A,@DPTR
+002B82 FE                MOV      R6,A
+002B83 EF                MOV      A,R7
+002B84 6E                XRL      A,R6
+002B85 6037              JZ       ?C0074?KEYSCAN
+  402: 						{
+  403: 							if(ksSelMapCurr[k] & (1<<j))	// R line has another key press
+002B87 904EAF            MOV      DPTR,#k
+002B8A E0                MOVX     A,@DPTR
+002B8B 24BC              ADD      A,#LOW ksSelMapCurr
+002B8D F582              MOV      DPL,A
+002B8F E4                CLR      A
+002B90 344D              ADDC     A,#HIGH ksSelMapCurr
+002B92 F583              MOV      DPH,A
+002B94 E0                MOVX     A,@DPTR
+002B95 FD                MOV      R5,A
+002B96 7C00              MOV      R4,#00H
+002B98 904EAE            MOV      DPTR,#j
+002B9B E0                MOVX     A,@DPTR
+002B9C FF                MOV      R7,A
+002B9D 7401              MOV      A,#01H
+002B9F 7E00              MOV      R6,#00H
+002BA1 A807              MOV      R0,AR7
+002BA3 08                INC      R0
+002BA4 8005              SJMP     ?C0114?KEYSCAN
+002BA6         ?C0113?KEYSCAN:
+002BA6 C3                CLR      C
+002BA7 33                RLC      A
+002BA8 CE                XCH      A,R6
+002BA9 33                RLC      A
+002BAA CE                XCH      A,R6
+002BAB         ?C0114?KEYSCAN:
+002BAB D8F9              DJNZ     R0,?C0113?KEYSCAN
+002BAD FF                MOV      R7,A
+002BAE EE                MOV      A,R6
+002BAF 5C                ANL      A,R4
+002BB0 FE                MOV      R6,A
+002BB1 EF                MOV      A,R7
+002BB2 5D                ANL      A,R5
+002BB3 4E                ORL      A,R6
+002BB4 6008              JZ       ?C0074?KEYSCAN
+  404: 							{
+  405: 								ghost = 1;
+002BB6 904EB6            MOV      DPTR,#ghost
+002BB9 7401              MOV      A,#01H
+002BBB F0                MOVX     @DPTR,A
+  406: 								break;
+002BBC 8008              SJMP     ?C0070?KEYSCAN
+  407: 							}	
+  408: 						}
+  409: 					}
+002BBE         ?C0074?KEYSCAN:
+002BBE 904EAF            MOV      DPTR,#k
+002BC1 E0                MOVX     A,@DPTR
+002BC2 04                INC      A
+002BC3 F0                MOVX     @DPTR,A
+002BC4 80AD              SJMP     ?C0072?KEYSCAN
+  410: 				}
+  411: 			}
+002BC6         ?C0070?KEYSCAN:
+002BC6 904EAE            MOV      DPTR,#j
+002BC9 E0                MOVX     A,@DPTR
+002BCA 04                INC      A
+002BCB F0                MOVX     @DPTR,A
+002BCC 6149              AJMP     ?C0068?KEYSCAN
+  412: 		}
+002BCE         ?C0067?KEYSCAN:
+  413: 		
+  414: 		if (temp!=0)
+002BCE 904EB0            MOV      DPTR,#temp
+002BD1 E0                MOVX     A,@DPTR
+002BD2 FF                MOV      R7,A
+002BD3 6008              JZ       ?C0066?KEYSCAN
+  415: 		{
+  416: 			keyCounttemp += bit_count(temp);
+002BD5 91DB              ACALL    _bit_count
+002BD7 904EB4            MOV      DPTR,#keyCounttemp
+002BDA E0                MOVX     A,@DPTR
+002BDB 2F                ADD      A,R7
+002BDC F0                MOVX     @DPTR,A
+  417: 		}
+  418: 	}
+002BDD         ?C0066?KEYSCAN:
+002BDD 904EAD            MOV      DPTR,#i
+002BE0 E0                MOVX     A,@DPTR
+002BE1 04                INC      A
+002BE2 F0                MOVX     @DPTR,A
+002BE3 6118              AJMP     ?C0064?KEYSCAN
+002BE5         ?C0065?KEYSCAN:
+  419: 	keyCount = keyCounttemp;
+002BE5 904EB4            MOV      DPTR,#keyCounttemp
+002BE8 E0                MOVX     A,@DPTR
+002BE9 904DF7            MOV      DPTR,#keyCount
+002BEC F0                MOVX     @DPTR,A
+  420: 	
+  421: 	for (i=0; col[i]!=0; i++)
+002BED E4                CLR      A
+002BEE 904EAD            MOV      DPTR,#i
+002BF1 F0                MOVX     @DPTR,A
+002BF2         ?C0078?KEYSCAN:
+002BF2 904EAD            MOV      DPTR,#i
+002BF5 E0                MOVX     A,@DPTR
+002BF6 FF                MOV      R7,A
+002BF7 900681            MOV      DPTR,#col
+002BFA 93                MOVC     A,@A+DPTR
+002BFB 7002              JNZ      $ + 4H
+002BFD 81C7              AJMP     ?C0079?KEYSCAN
+  422: 	{
+  423: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+002BFF 7493              MOV      A,#LOW ksSelMapOld
+002C01 2F                ADD      A,R7
+002C02 F582              MOV      DPL,A
+002C04 E4                CLR      A
+002C05 344D              ADDC     A,#HIGH ksSelMapOld
+002C07 F583              MOV      DPH,A
+002C09 E0                MOVX     A,@DPTR
+002C0A FE                MOV      R6,A
+002C0B 74BC              MOV      A,#LOW ksSelMapCurr
+002C0D 2F                ADD      A,R7
+002C0E F582              MOV      DPL,A
+002C10 E4                CLR      A
+002C11 344D              ADDC     A,#HIGH ksSelMapCurr
+002C13 F583              MOV      DPH,A
+002C15 E0                MOVX     A,@DPTR
+002C16 6E                XRL      A,R6
+002C17 904EB0            MOV      DPTR,#temp
+002C1A F0                MOVX     @DPTR,A
+  424: 		state = ksSelMapCurr[i];
+002C1B 904EAD            MOV      DPTR,#i
+002C1E E0                MOVX     A,@DPTR
+002C1F FF                MOV      R7,A
+002C20 24BC              ADD      A,#LOW ksSelMapCurr
+002C22 F582              MOV      DPL,A
+002C24 E4                CLR      A
+002C25 344D              ADDC     A,#HIGH ksSelMapCurr
+002C27 F583              MOV      DPH,A
+002C29 E0                MOVX     A,@DPTR
+002C2A 904EB3            MOV      DPTR,#state
+002C2D F0                MOVX     @DPTR,A
+  425: 		if (temp == 0) 
+002C2E 904EB0            MOV      DPTR,#temp
+002C31 E0                MOVX     A,@DPTR
+002C32 7004              JNZ      ?C0081?KEYSCAN
+  426: 		{
+  427: 			continue;
+002C34 81BF              AJMP     ?C0080?KEYSCAN
+  428: 		}
+002C36 81BF              AJMP     ?C0080?KEYSCAN
+002C38         ?C0081?KEYSCAN:
+  429: 		else 
+  430: 		{
+  431: 
+  432: 			if (ghost) 
+002C38 904EB6            MOV      DPTR,#ghost
+002C3B E0                MOVX     A,@DPTR
+002C3C 6007              JZ       ?C0083?KEYSCAN
+  433: 				return NULL;
+002C3E 7B00              MOV      R3,#00H
+002C40 7A00              MOV      R2,#00H
+002C42 7900              MOV      R1,#00H
+002C44 22                RET      
+002C45         ?C0083?KEYSCAN:
+  434: 			ksSelMapOld[i] = ksSelMapCurr[i];
+002C45 74BC              MOV      A,#LOW ksSelMapCurr
+002C47 2F                ADD      A,R7
+002C48 F582              MOV      DPL,A
+002C4A E4                CLR      A
+002C4B 344D              ADDC     A,#HIGH ksSelMapCurr
+002C4D F583              MOV      DPH,A
+002C4F E0                MOVX     A,@DPTR
+002C50 FE                MOV      R6,A
+002C51 7493              MOV      A,#LOW ksSelMapOld
+002C53 2F                ADD      A,R7
+002C54 F582              MOV      DPL,A
+002C56 E4                CLR      A
+002C57 344D              ADDC     A,#HIGH ksSelMapOld
+002C59 F583              MOV      DPH,A
+002C5B EE                MOV      A,R6
+002C5C F0                MOVX     @DPTR,A
+  435: 			for (j = 0 ; j<8 ; j++) 
+002C5D E4                CLR      A
+002C5E 904EAE            MOV      DPTR,#j
+002C61 F0                MOVX     @DPTR,A
+002C62         ?C0085?KEYSCAN:
+002C62 904EAE            MOV      DPTR,#j
+002C65 E0                MOVX     A,@DPTR
+002C66 FF                MOV      R7,A
+002C67 C3                CLR      C
+002C68 9408              SUBB     A,#08H
+002C6A 504D              JNC      ?C0086?KEYSCAN
+  436: 			{
+  437: 				if (temp&1)
+002C6C 904EB0            MOV      DPTR,#temp
+002C6F E0                MOVX     A,@DPTR
+002C70 30E02E            JNB      ACC.0,?C0088?KEYSCAN
+  438: 				{
+  439: 					offset = i<<3 |j;
+002C73 904EAD            MOV      DPTR,#i
+002C76 E0                MOVX     A,@DPTR
+002C77 FE                MOV      R6,A
+002C78 33                RLC      A
+002C79 33                RLC      A
+002C7A 33                RLC      A
+002C7B 54F8              ANL      A,#0F8H
+002C7D FE                MOV      R6,A
+002C7E EF                MOV      A,R7
+002C7F 4E                ORL      A,R6
+002C80 904EB2            MOV      DPTR,#offset
+002C83 F0                MOVX     @DPTR,A
+  440: 					//key_value_temp = key_fn_function(state,ksMap[offset]);
+  441: 					if (state & 1)
+002C84 A3                INC      DPTR
+002C85 E0                MOVX     A,@DPTR
+002C86 30E00D            JNB      ACC.0,?C0089?KEYSCAN
+  442: 					{
+  443: 						keyIn(ksMap[offset]);
+002C89 904EB2            MOV      DPTR,#offset
+002C8C E0                MOVX     A,@DPTR
+002C8D 900696            MOV      DPTR,#ksMap
+002C90 93                MOVC     A,@A+DPTR
+002C91 FF                MOV      R7,A
+002C92 B119              ACALL    _keyIn
+  444: 					}
+002C94 800B              SJMP     ?C0088?KEYSCAN
+002C96         ?C0089?KEYSCAN:
+  445: 					else
+  446: 					{
+  447: 						keyOut(ksMap[offset]);
+002C96 904EB2            MOV      DPTR,#offset
+002C99 E0                MOVX     A,@DPTR
+002C9A 900696            MOV      DPTR,#ksMap
+002C9D 93                MOVC     A,@A+DPTR
+002C9E FF                MOV      R7,A
+002C9F B1DB              ACALL    _keyOut
+  448: 					}
+  449: 				}
+002CA1         ?C0088?KEYSCAN:
+  450: 				temp = temp >>1;
+002CA1 904EB0            MOV      DPTR,#temp
+002CA4 E0                MOVX     A,@DPTR
+002CA5 FF                MOV      R7,A
+002CA6 C3                CLR      C
+002CA7 13                RRC      A
+002CA8 F0                MOVX     @DPTR,A
+  451: 				state = state>>1;
+002CA9 904EB3            MOV      DPTR,#state
+002CAC E0                MOVX     A,@DPTR
+002CAD FF                MOV      R7,A
+002CAE C3                CLR      C
+002CAF 13                RRC      A
+002CB0 F0                MOVX     @DPTR,A
+  452: 			}
+002CB1 904EAE            MOV      DPTR,#j
+002CB4 E0                MOVX     A,@DPTR
+002CB5 04                INC      A
+002CB6 F0                MOVX     @DPTR,A
+002CB7 80A9              SJMP     ?C0085?KEYSCAN
+002CB9         ?C0086?KEYSCAN:
+  453: 			flag = 1;
+002CB9 904EB1            MOV      DPTR,#flag
+002CBC 7401              MOV      A,#01H
+002CBE F0                MOVX     @DPTR,A
+  454: 		}
+  455: 	}
+002CBF         ?C0080?KEYSCAN:
+002CBF 904EAD            MOV      DPTR,#i
+002CC2 E0                MOVX     A,@DPTR
+002CC3 04                INC      A
+002CC4 F0                MOVX     @DPTR,A
+002CC5 61F2              AJMP     ?C0078?KEYSCAN
+002CC7         ?C0079?KEYSCAN:
+  456: 	
+  457: 	// if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+  458: 	// {
+  459: 	// 	standard_key_release_flag = 2;		//media key and standard key  release the same time
+  460: 	// }
+  461: 
+  462: 	if(flag)
+002CC7 904EB1            MOV      DPTR,#flag
+002CCA E0                MOVX     A,@DPTR
+002CCB 6007              JZ       ?C0091?KEYSCAN
+  463: 	//if (flag || standard_key_release_flag == 2) 
+  464: 	{
+  465: 		return &ksEvtPool;
+002CCD 7B01              MOV      R3,#01H
+002CCF 7A4E              MOV      R2,#HIGH ksEvtPool
+002CD1 79C9              MOV      R1,#LOW ksEvtPool
+002CD3 22                RET      
+  466: 	}
+002CD4         ?C0091?KEYSCAN:
+  467: 	else
+  468: 	{
+  469: 		return NULL;
+002CD4 7B00              MOV      R3,#00H
+002CD6 7A00              MOV      R2,#00H
+002CD8 7900              MOV      R1,#00H
+  470: 	}
+  471: 	
+  472: 
+  473: }
+002CDA 22                RET      
+----- FUNCTION KS_GetCurrentEvt (END) -------
+
+
+----- FUNCTION _bit_count (BEGIN) -----
+ FILE: 'keyscan.c'
+   24: static byte bit_count(byte v)
+   25: {
+;---- Variable 'v' assigned to Register 'R7' ----
+   26: 	unsigned char c;
+   27: 	for (c = 0; v; c++) {
+;---- Variable 'c' assigned to Register 'R6' ----
+002CDB E4                CLR      A
+002CDC FE                MOV      R6,A
+002CDD         ?C0001?KEYSCAN:
+002CDD EF                MOV      A,R7
+002CDE 6006              JZ       ?C0002?KEYSCAN
+   28:     	v &= v - 1;
+002CE0 14                DEC      A
+002CE1 5F                ANL      A,R7
+002CE2 FF                MOV      R7,A
+   29:     }
+002CE3 0E                INC      R6
+002CE4 80F7              SJMP     ?C0001?KEYSCAN
+002CE6         ?C0002?KEYSCAN:
+   30:     return c;
+002CE6 AF06              MOV      R7,AR6
+   31: }
+002CE8 22                RET      
+----- FUNCTION _bit_count (END) -------
+
+
+----- FUNCTION _array_is_empty (BEGIN) -----
+ FILE: 'keyscan.c'
+  349: byte array_is_empty(byte * str1,byte len)
+  350: {
+002CE9 904F0F            MOV      DPTR,#str1
+002CEC EB                MOV      A,R3
+002CED F0                MOVX     @DPTR,A
+002CEE A3                INC      DPTR
+002CEF EA                MOV      A,R2
+002CF0 F0                MOVX     @DPTR,A
+002CF1 A3                INC      DPTR
+002CF2 E9                MOV      A,R1
+002CF3 F0                MOVX     @DPTR,A
+;---- Variable 'len' assigned to Register 'R5' ----
+  351: 	byte i;
+  352: 	for (i=0;i < len;i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+002CF4 E4                CLR      A
+002CF5 FF                MOV      R7,A
+002CF6         ?C0057?KEYSCAN:
+002CF6 EF                MOV      A,R7
+002CF7 C3                CLR      C
+002CF8 9D                SUBB     A,R5
+002CF9 501B              JNC      ?C0058?KEYSCAN
+  353: 	{
+  354: 		if (str1[i] != 0)
+002CFB 904F0F            MOV      DPTR,#str1
+002CFE E0                MOVX     A,@DPTR
+002CFF FB                MOV      R3,A
+002D00 A3                INC      DPTR
+002D01 E0                MOVX     A,@DPTR
+002D02 FA                MOV      R2,A
+002D03 A3                INC      DPTR
+002D04 E0                MOVX     A,@DPTR
+002D05 F9                MOV      R1,A
+002D06 8F82              MOV      DPL,R7
+002D08 758300            MOV      DPH,#00H
+002D0B 1203CF            LCALL    ?C?CLDOPTR
+002D0E 6003              JZ       ?C0059?KEYSCAN
+  355: 			return 0x00;
+002D10 7F00              MOV      R7,#00H
+002D12 22                RET      
+  356: 	}
+002D13         ?C0059?KEYSCAN:
+002D13 0F                INC      R7
+002D14 80E0              SJMP     ?C0057?KEYSCAN
+002D16         ?C0058?KEYSCAN:
+  357: 	return 0x01;
+002D16 7F01              MOV      R7,#01H
+  358: }
+002D18 22                RET      
+----- FUNCTION _array_is_empty (END) -------
+
+
+----- FUNCTION _keyIn (BEGIN) -----
+ FILE: 'keyscan.c'
+   35: static void keyIn(byte key)
+   36: {
+;---- Variable 'key' assigned to Register 'R7' ----
+   37: 	byte i = 0;
+   38: 
+;---- Variable 'i' assigned to Register 'R6' ----
+002D19 E4                CLR      A
+002D1A FE                MOV      R6,A
+   39: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+002D1B EF                MOV      A,R7
+002D1C C3                CLR      C
+002D1D 94E0              SUBB     A,#0E0H
+002D1F 4020              JC       ?C0005?KEYSCAN
+002D21 EF                MOV      A,R7
+002D22 D3                SETB     C
+002D23 94E7              SUBB     A,#0E7H
+002D25 501A              JNC      ?C0005?KEYSCAN
+   40: 	{
+   41: 		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
+002D27 904EC9            MOV      DPTR,#ksEvtPool
+002D2A E0                MOVX     A,@DPTR
+002D2B FE                MOV      R6,A
+002D2C EF                MOV      A,R7
+002D2D 5407              ANL      A,#07H
+002D2F FF                MOV      R7,A
+002D30 7401              MOV      A,#01H
+002D32 A807              MOV      R0,AR7
+002D34 08                INC      R0
+002D35 8002              SJMP     ?C0094?KEYSCAN
+002D37         ?C0093?KEYSCAN:
+002D37 C3                CLR      C
+002D38 33                RLC      A
+002D39         ?C0094?KEYSCAN:
+002D39 D8FC              DJNZ     R0,?C0093?KEYSCAN
+002D3B 4E                ORL      A,R6
+002D3C 904EC9            MOV      DPTR,#ksEvtPool
+002D3F F0                MOVX     @DPTR,A
+002D40 22                RET      
+   42: 		return;
+   43: 	}
+002D41         ?C0005?KEYSCAN:
+   44: /*
+   45: 
+   46: 	if (key == HID_KEY_RIGHT_GUI)
+   47: 	{
+   48: 		ksEvtPool.standardSel |= KS_SEL_RGUI;
+   49: 		return;
+   50: 	}
+   51: 	else if (key ==HID_KEY_RIGHT_ALT) 
+   52: 	{
+   53: 		ksEvtPool.standardSel |= KS_SEL_RALT;
+   54: 		return;
+   55: 	}
+   56: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
+   57: 	{
+   58: 		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+   59: 		return;
+   60: 	}
+   61: 	else if (key ==HID_KEY_RIGHT_CTL) 
+   62: 	{
+   63: 		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+   64: 		return;
+   65: 	}
+   66: 	else if (key ==HID_KEY_LEFT_GUI) 
+   67: 	{
+   68: 		ksEvtPool.standardSel |= KS_SEL_LGUI;
+   69: 		return;
+   70: 	}
+   71: 	else if (key ==HID_KEY_LEFT_ALT) 
+   72: 	{
+   73: 		ksEvtPool.standardSel |= KS_SEL_LALT;
+   74: 		return;
+   75: 	}
+   76: 	else if (key ==HID_KEY_LEFT_SHIFT)
+   77: 	{
+   78: 		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+   79: 		return;
+   80: 	}
+   81: 	else if (key ==HID_KEY_LEFT_CTL) 
+   82: 	{
+   83: 		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+   84: 		return;
+   85: 	}
+   86: */	
+   87: 	//special key
+   88: 
+   89: 	// for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+   90: 	// {
+   91: 	// 	if (ksEvtPool.ksPool[i] == key)
+   92: 	// 		break;
+   93: 	// 	if (ksEvtPool.ksPool[i] == 0) 
+   94: 	// 	{
+   95: 	// 		if(mult_key_value != key)
+   96: 	// 			ksEvtPool.ksPool[i] = key;
+   97: 	// 		break;
+   98: 	// 	}
+   99: 	// }
+  100: 	for (i=0 ; i<24 ; i++) {
+002D41 E4                CLR      A
+002D42 FE                MOV      R6,A
+002D43         ?C0007?KEYSCAN:
+  101: 
+  102: 		if(i<KS_BUFF_POLL_LEN)
+002D43 EE                MOV      A,R6
+002D44 C3                CLR      C
+002D45 9406              SUBB     A,#06H
+002D47 5021              JNC      ?C0010?KEYSCAN
+  103: 		{
+  104: 			if (ksEvtPool.ksPool[i] == key)
+002D49 74CA              MOV      A,#LOW ksEvtPool+01H
+002D4B 2E                ADD      A,R6
+002D4C F582              MOV      DPL,A
+002D4E E4                CLR      A
+002D4F 344E              ADDC     A,#HIGH ksEvtPool+01H
+002D51 F583              MOV      DPH,A
+002D53 E0                MOVX     A,@DPTR
+002D54 FD                MOV      R5,A
+002D55 6F                XRL      A,R7
+002D56 7002              JNZ      $ + 4H
+002D58 A1DA              AJMP     ?C0006?KEYSCAN
+  105: 				break;
+002D5A         ?C0011?KEYSCAN:
+  106: 			if (ksEvtPool.ksPool[i] == 0) 
+002D5A ED                MOV      A,R5
+002D5B 7075              JNZ      ?C0009?KEYSCAN
+  107: 			{
+  108: 				ksEvtPool.ksPool[i] = key;
+002D5D 74CA              MOV      A,#LOW ksEvtPool+01H
+002D5F 2E                ADD      A,R6
+002D60 F582              MOV      DPL,A
+002D62 E4                CLR      A
+002D63 344E              ADDC     A,#HIGH ksEvtPool+01H
+002D65 F583              MOV      DPH,A
+002D67 EF                MOV      A,R7
+002D68 F0                MOVX     @DPTR,A
+  109: 				break;
+002D69 22                RET      
+  110: 			}
+  111: 		}
+002D6A         ?C0010?KEYSCAN:
+  112: 		else
+  113: 		{
+  114: 			if(key < 0x38)
+002D6A EF                MOV      A,R7
+002D6B C3                CLR      C
+002D6C 9438              SUBB     A,#038H
+002D6E 5032              JNC      ?C0014?KEYSCAN
+  115: 			{
+  116: 				g_variable.bit_key1[key/8] |= 0x01<<(key%8);
+002D70 EF                MOV      A,R7
+002D71 13                RRC      A
+002D72 13                RRC      A
+002D73 13                RRC      A
+002D74 541F              ANL      A,#01FH
+002D76 2402              ADD      A,#LOW g_variable+043H
+002D78 F582              MOV      DPL,A
+002D7A E4                CLR      A
+002D7B 344D              ADDC     A,#HIGH g_variable+043H
+002D7D F583              MOV      DPH,A
+002D7F C083              PUSH     DPH
+002D81 C082              PUSH     DPL
+002D83 E0                MOVX     A,@DPTR
+002D84 FD                MOV      R5,A
+002D85 EF                MOV      A,R7
+002D86 5407              ANL      A,#07H
+002D88 FC                MOV      R4,A
+002D89 7401              MOV      A,#01H
+002D8B A804              MOV      R0,AR4
+002D8D 08                INC      R0
+002D8E 8002              SJMP     ?C0096?KEYSCAN
+002D90         ?C0095?KEYSCAN:
+002D90 C3                CLR      C
+002D91 33                RLC      A
+002D92         ?C0096?KEYSCAN:
+002D92 D8FC              DJNZ     R0,?C0095?KEYSCAN
+002D94 4D                ORL      A,R5
+002D95 D082              POP      DPL
+002D97 D083              POP      DPH
+002D99 F0                MOVX     @DPTR,A
+  117: 				g_variable.bit_key1_flag = 1;
+002D9A 904D09            MOV      DPTR,#g_variable+04AH
+002D9D 7401              MOV      A,#01H
+002D9F F0                MOVX     @DPTR,A
+  118: 			}
+002DA0 8030              SJMP     ?C0009?KEYSCAN
+002DA2         ?C0014?KEYSCAN:
+  119: 			else
+  120: 			{ 
+  121: 				g_variable.bit_key2[(key/8)-7] |= 0x01<<(key%8);
+002DA2 EF                MOV      A,R7
+002DA3 13                RRC      A
+002DA4 13                RRC      A
+002DA5 13                RRC      A
+002DA6 541F              ANL      A,#01FH
+002DA8 2403              ADD      A,#LOW g_variable+044H
+002DAA F582              MOV      DPL,A
+002DAC E4                CLR      A
+002DAD 344D              ADDC     A,#HIGH g_variable+044H
+002DAF F583              MOV      DPH,A
+002DB1 C083              PUSH     DPH
+002DB3 C082              PUSH     DPL
+002DB5 E0                MOVX     A,@DPTR
+002DB6 FD                MOV      R5,A
+002DB7 EF                MOV      A,R7
+002DB8 5407              ANL      A,#07H
+002DBA FC                MOV      R4,A
+002DBB 7401              MOV      A,#01H
+002DBD A804              MOV      R0,AR4
+002DBF 08                INC      R0
+002DC0 8002              SJMP     ?C0098?KEYSCAN
+002DC2         ?C0097?KEYSCAN:
+002DC2 C3                CLR      C
+002DC3 33                RLC      A
+002DC4         ?C0098?KEYSCAN:
+002DC4 D8FC              DJNZ     R0,?C0097?KEYSCAN
+002DC6 4D                ORL      A,R5
+002DC7 D082              POP      DPL
+002DC9 D083              POP      DPH
+002DCB F0                MOVX     @DPTR,A
+  122: 				g_variable.bit_key2_flag = 1;
+002DCC 904D11            MOV      DPTR,#g_variable+052H
+002DCF 7401              MOV      A,#01H
+002DD1 F0                MOVX     @DPTR,A
+  123: 			}
+  124: 		}
+  125: 	}
+002DD2         ?C0009?KEYSCAN:
+002DD2 0E                INC      R6
+002DD3 EE                MOV      A,R6
+002DD4 6418              XRL      A,#018H
+002DD6 6002              JZ       $ + 4H
+002DD8 A143              AJMP     ?C0007?KEYSCAN
+  126: }
+002DDA         ?C0006?KEYSCAN:
+002DDA 22                RET      
+----- FUNCTION _keyIn (END) -------
+
+
+----- FUNCTION _keyOut (BEGIN) -----
+ FILE: 'keyscan.c'
+  128: static void keyOut(byte key)
+  129: {
+;---- Variable 'key' assigned to Register 'R7' ----
+  130: 	byte i = 0 ;
+  131: 	byte found = 0;
+;---- Variable 'i' assigned to Register 'R6' ----
+002DDB E4                CLR      A
+002DDC FE                MOV      R6,A
+  132: 
+002DDD 904F2A            MOV      DPTR,#found
+002DE0 F0                MOVX     @DPTR,A
+  133: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
+002DE1 EF                MOV      A,R7
+002DE2 C3                CLR      C
+002DE3 94E0              SUBB     A,#0E0H
+002DE5 4021              JC       ?C0016?KEYSCAN
+002DE7 EF                MOV      A,R7
+002DE8 D3                SETB     C
+002DE9 94E7              SUBB     A,#0E7H
+002DEB 501B              JNC      ?C0016?KEYSCAN
+  134: 	{
+  135: 
+  136: 		ksEvtPool.standardSel  &= ~(0x01 << (key & 0x07));
+002DED 904EC9            MOV      DPTR,#ksEvtPool
+002DF0 E0                MOVX     A,@DPTR
+002DF1 FE                MOV      R6,A
+002DF2 EF                MOV      A,R7
+002DF3 5407              ANL      A,#07H
+002DF5 FF                MOV      R7,A
+002DF6 7401              MOV      A,#01H
+002DF8 A807              MOV      R0,AR7
+002DFA 08                INC      R0
+002DFB 8002              SJMP     ?C0100?KEYSCAN
+002DFD         ?C0099?KEYSCAN:
+002DFD C3                CLR      C
+002DFE 33                RLC      A
+002DFF         ?C0100?KEYSCAN:
+002DFF D8FC              DJNZ     R0,?C0099?KEYSCAN
+002E01 F4                CPL      A
+002E02 5E                ANL      A,R6
+002E03 904EC9            MOV      DPTR,#ksEvtPool
+002E06 F0                MOVX     @DPTR,A
+002E07 22                RET      
+  137: 		return;
+  138: 	}
+002E08         ?C0016?KEYSCAN:
+  139: 	for (i=0 ; i<24 ; i++) 
+002E08 E4                CLR      A
+002E09 FE                MOV      R6,A
+002E0A         ?C0018?KEYSCAN:
+  140: 	{	if(i<KS_BUFF_POLL_LEN)
+002E0A EE                MOV      A,R6
+002E0B C3                CLR      C
+002E0C 9406              SUBB     A,#06H
+002E0E 5067              JNC      ?C0021?KEYSCAN
+  141: 		{
+  142: 			if (found == 0) 
+002E10 904F2A            MOV      DPTR,#found
+002E13 E0                MOVX     A,@DPTR
+002E14 7027              JNZ      ?C0022?KEYSCAN
+  143: 			{
+  144: 				if (ksEvtPool.ksPool[i] == key) {
+002E16 74CA              MOV      A,#LOW ksEvtPool+01H
+002E18 2E                ADD      A,R6
+002E19 F582              MOV      DPL,A
+002E1B E4                CLR      A
+002E1C 344E              ADDC     A,#HIGH ksEvtPool+01H
+002E1E F583              MOV      DPH,A
+002E20 E0                MOVX     A,@DPTR
+002E21 6F                XRL      A,R7
+002E22 6002              JZ       $ + 4H
+002E24 C1E1              AJMP     ?C0020?KEYSCAN
+  145: 					if (i == KS_BUFF_POLL_LEN-1) {
+002E26 EE                MOV      A,R6
+002E27 B4050B            CJNE     A,#05H,?C0024?KEYSCAN
+  146: 						ksEvtPool.ksPool[i] = 0;
+002E2A 24CA              ADD      A,#LOW ksEvtPool+01H
+002E2C F582              MOV      DPL,A
+002E2E E4                CLR      A
+002E2F 344E              ADDC     A,#HIGH ksEvtPool+01H
+002E31 F583              MOV      DPH,A
+002E33 E4                CLR      A
+002E34 F0                MOVX     @DPTR,A
+  147: 					}
+002E35         ?C0024?KEYSCAN:
+  148: 					found = 1;
+002E35 904F2A            MOV      DPTR,#found
+002E38 7401              MOV      A,#01H
+002E3A F0                MOVX     @DPTR,A
+  149: 				}
+  150: 			}
+002E3B C1E1              AJMP     ?C0020?KEYSCAN
+002E3D         ?C0022?KEYSCAN:
+  151: 			else 
+  152: 			{
+  153: 				ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+002E3D 74CA              MOV      A,#LOW ksEvtPool+01H
+002E3F 2E                ADD      A,R6
+002E40 F582              MOV      DPL,A
+002E42 E4                CLR      A
+002E43 344E              ADDC     A,#HIGH ksEvtPool+01H
+002E45 F583              MOV      DPH,A
+002E47 E0                MOVX     A,@DPTR
+002E48 FD                MOV      R5,A
+002E49 74C9              MOV      A,#LOW ksEvtPool
+002E4B 2E                ADD      A,R6
+002E4C F582              MOV      DPL,A
+002E4E E4                CLR      A
+002E4F 344E              ADDC     A,#HIGH ksEvtPool
+002E51 F583              MOV      DPH,A
+002E53 ED                MOV      A,R5
+002E54 F0                MOVX     @DPTR,A
+  154: 				if (ksEvtPool.ksPool[i] == 0)
+002E55 74CA              MOV      A,#LOW ksEvtPool+01H
+002E57 2E                ADD      A,R6
+002E58 F582              MOV      DPL,A
+002E5A E4                CLR      A
+002E5B 344E              ADDC     A,#HIGH ksEvtPool+01H
+002E5D F583              MOV      DPH,A
+002E5F E0                MOVX     A,@DPTR
+002E60 7002              JNZ      $ + 4H
+002E62 C1E9              AJMP     ?C0017?KEYSCAN
+  155: 					break;
+002E64         ?C0026?KEYSCAN:
+  156: 				if (i == KS_BUFF_POLL_LEN-1) {
+002E64 EE                MOV      A,R6
+002E65 6405              XRL      A,#05H
+002E67 7078              JNZ      ?C0020?KEYSCAN
+  157: 					ksEvtPool.ksPool[i] = 0;
+002E69 74CA              MOV      A,#LOW ksEvtPool+01H
+002E6B 2E                ADD      A,R6
+002E6C F582              MOV      DPL,A
+002E6E E4                CLR      A
+002E6F 344E              ADDC     A,#HIGH ksEvtPool+01H
+002E71 F583              MOV      DPH,A
+002E73 E4                CLR      A
+002E74 F0                MOVX     @DPTR,A
+  158: 				}
+  159: 			}
+  160: 		}
+002E75 806A              SJMP     ?C0020?KEYSCAN
+002E77         ?C0021?KEYSCAN:
+  161: 		else 
+  162: 		{
+  163: 			if(key < 0x38)
+002E77 EF                MOV      A,R7
+002E78 C3                CLR      C
+002E79 9438              SUBB     A,#038H
+002E7B 5033              JNC      ?C0029?KEYSCAN
+  164: 			{
+  165: 				g_variable.bit_key1[key/8] &= ~(0x01<<(key%8));
+002E7D EF                MOV      A,R7
+002E7E 13                RRC      A
+002E7F 13                RRC      A
+002E80 13                RRC      A
+002E81 541F              ANL      A,#01FH
+002E83 2402              ADD      A,#LOW g_variable+043H
+002E85 F582              MOV      DPL,A
+002E87 E4                CLR      A
+002E88 344D              ADDC     A,#HIGH g_variable+043H
+002E8A F583              MOV      DPH,A
+002E8C C083              PUSH     DPH
+002E8E C082              PUSH     DPL
+002E90 E0                MOVX     A,@DPTR
+002E91 FD                MOV      R5,A
+002E92 EF                MOV      A,R7
+002E93 5407              ANL      A,#07H
+002E95 FC                MOV      R4,A
+002E96 7401              MOV      A,#01H
+002E98 A804              MOV      R0,AR4
+002E9A 08                INC      R0
+002E9B 8002              SJMP     ?C0102?KEYSCAN
+002E9D         ?C0101?KEYSCAN:
+002E9D C3                CLR      C
+002E9E 33                RLC      A
+002E9F         ?C0102?KEYSCAN:
+002E9F D8FC              DJNZ     R0,?C0101?KEYSCAN
+002EA1 F4                CPL      A
+002EA2 5D                ANL      A,R5
+002EA3 D082              POP      DPL
+002EA5 D083              POP      DPH
+002EA7 F0                MOVX     @DPTR,A
+  166: 				g_variable.bit_key1_flag = 1;
+002EA8 904D09            MOV      DPTR,#g_variable+04AH
+002EAB 7401              MOV      A,#01H
+002EAD F0                MOVX     @DPTR,A
+  167: 			}
+002EAE 8031              SJMP     ?C0020?KEYSCAN
+002EB0         ?C0029?KEYSCAN:
+  168: 			else 
+  169: 			{
+  170: 				g_variable.bit_key2[(key/8)-7] &= ~(0x01<<(key%8));
+002EB0 EF                MOV      A,R7
+002EB1 13                RRC      A
+002EB2 13                RRC      A
+002EB3 13                RRC      A
+002EB4 541F              ANL      A,#01FH
+002EB6 2403              ADD      A,#LOW g_variable+044H
+002EB8 F582              MOV      DPL,A
+002EBA E4                CLR      A
+002EBB 344D              ADDC     A,#HIGH g_variable+044H
+002EBD F583              MOV      DPH,A
+002EBF C083              PUSH     DPH
+002EC1 C082              PUSH     DPL
+002EC3 E0                MOVX     A,@DPTR
+002EC4 FD                MOV      R5,A
+002EC5 EF                MOV      A,R7
+002EC6 5407              ANL      A,#07H
+002EC8 FC                MOV      R4,A
+002EC9 7401              MOV      A,#01H
+002ECB A804              MOV      R0,AR4
+002ECD 08                INC      R0
+002ECE 8002              SJMP     ?C0104?KEYSCAN
+002ED0         ?C0103?KEYSCAN:
+002ED0 C3                CLR      C
+002ED1 33                RLC      A
+002ED2         ?C0104?KEYSCAN:
+002ED2 D8FC              DJNZ     R0,?C0103?KEYSCAN
+002ED4 F4                CPL      A
+002ED5 5D                ANL      A,R5
+002ED6 D082              POP      DPL
+002ED8 D083              POP      DPH
+002EDA F0                MOVX     @DPTR,A
+  171: 				g_variable.bit_key2_flag = 1;
+002EDB 904D11            MOV      DPTR,#g_variable+052H
+002EDE 7401              MOV      A,#01H
+002EE0 F0                MOVX     @DPTR,A
+  172: 			}
+  173: 		}
+  174: 	}
+002EE1         ?C0020?KEYSCAN:
+002EE1 0E                INC      R6
+002EE2 EE                MOV      A,R6
+002EE3 6418              XRL      A,#018H
+002EE5 6002              JZ       $ + 4H
+002EE7 C10A              AJMP     ?C0018?KEYSCAN
+  175: }
+002EE9         ?C0017?KEYSCAN:
+002EE9 22                RET      
+----- FUNCTION _keyOut (END) -------
+
+
+----- FUNCTION _kb_combination_key_press (BEGIN) -----
+ FILE: 'kb_process.c'
+ 1091: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
+ 1092: {
+;---- Variable 'press_state' assigned to Register 'R7' ----
+;---- Variable 'standrad_key' assigned to Register 'R3' ----
+;---- Variable 'special_key' assigned to Register 'R5' ----
+ 1093: 	g_variable.key_combination_ctrl = special_key;	
+ 1094: 	g_variable.key_combination_keyvalue = standrad_key;
+002EEA 904CF5            MOV      DPTR,#g_variable+036H
+002EED ED                MOV      A,R5
+002EEE F0                MOVX     @DPTR,A
+ 1095: 
+002EEF A3                INC      DPTR
+002EF0 EB                MOV      A,R3
+002EF1 F0                MOVX     @DPTR,A
+ 1096: 	if(press_state & 1)
+002EF2 EF                MOV      A,R7
+002EF3 30E012            JNB      ACC.0,?C0192?KB_PROCESS
+ 1097: 	{
+ 1098: 		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
+002EF6 904CF4            MOV      DPTR,#g_variable+035H
+002EF9 E0                MOVX     A,@DPTR
+002EFA B40304            CJNE     A,#03H,?C0193?KB_PROCESS
+ 1099: 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+002EFD 7402              MOV      A,#02H
+002EFF F0                MOVX     @DPTR,A
+002F00 22                RET      
+002F01         ?C0193?KB_PROCESS:
+ 1100: 		else	
+ 1101: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+002F01 904CF4            MOV      DPTR,#g_variable+035H
+002F04 7401              MOV      A,#01H
+002F06 F0                MOVX     @DPTR,A
+ 1102: 	}
+002F07 22                RET      
+002F08         ?C0192?KB_PROCESS:
+ 1103: 	else
+ 1104: 	{
+ 1105: 		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+002F08 904CF4            MOV      DPTR,#g_variable+035H
+002F0B 7404              MOV      A,#04H
+002F0D F0                MOVX     @DPTR,A
+ 1106: 	}
+ 1107: }
+002F0E 22                RET      
+----- FUNCTION _kb_combination_key_press (END) -------
+
+
+----- FUNCTION _key_fn_function (BEGIN) -----
+ FILE: 'kb_process.c'
+ 1110: byte key_fn_function(byte state ,byte key_value)
+ 1111: {
+002F0F 904F0A            MOV      DPTR,#key_value
+002F12 ED                MOV      A,R5
+002F13 F0                MOVX     @DPTR,A
+002F14 904F09            MOV      DPTR,#state
+002F17 EF                MOV      A,R7
+002F18 F0                MOVX     @DPTR,A
+ 1112: 	byte temp = 0;
+ 1113: 
+002F19 E4                CLR      A
+002F1A 904F0B            MOV      DPTR,#temp
+002F1D F0                MOVX     @DPTR,A
+ 1114: 	if(state & 1)
+002F1E EF                MOV      A,R7
+002F1F 30E005            JNB      ACC.0,?C0197?KB_PROCESS
+ 1115: 		g_variable.one_key_press_wait_release_timer = 0;
+002F22 E4                CLR      A
+002F23 904CF8            MOV      DPTR,#g_variable+039H
+002F26 F0                MOVX     @DPTR,A
+002F27         ?C0197?KB_PROCESS:
+ 1116: 
+ 1117: 	temp = key_value;	
+002F27 904F0A            MOV      DPTR,#key_value
+002F2A E0                MOVX     A,@DPTR
+002F2B FF                MOV      R7,A
+002F2C A3                INC      DPTR
+002F2D F0                MOVX     @DPTR,A
+ 1118: 
+ 1119: 	// if(g_variable.system_mode == OSMODE_IOS)
+ 1120: 	// {
+ 1121: 	// 	if(key_value == HID_KEY_RIGHT_ALT)
+ 1122: 	// 		temp = HID_KEY_RIGHT_GUI;
+ 1123: 	// 	else if(key_value == HID_KEY_RIGHT_CTL)
+ 1124: 	// 		temp = HID_KEY_RIGHT_ALT;	
+ 1125: 	// 	else if(key_value == HID_KEY_LEFT_GUI)
+ 1126: 	// 		temp = HID_KEY_LEFT_ALT;
+ 1127: 	// 	else if(key_value == HID_KEY_LEFT_ALT)
+ 1128: 	// 		temp = HID_KEY_LEFT_GUI;	
+ 1129: 	// }	
+ 1130: 	
+ 1131: 	if(fn_flag == 1)			// Fn lock
+002F2E 904DF5            MOV      DPTR,#fn_flag
+002F31 E0                MOVX     A,@DPTR
+002F32 6401              XRL      A,#01H
+002F34 706C              JNZ      ?C0198?KB_PROCESS
+ 1132:          {
+ 1133: 
+ 1134: 		if((key_value == HID_KEY_A) || (key_value == HID_KEY_S) )
+002F36 EF                MOV      A,R7
+002F37 6404              XRL      A,#04H
+002F39 6008              JZ       ?C0200?KB_PROCESS
+002F3B 904F0A            MOV      DPTR,#key_value
+002F3E E0                MOVX     A,@DPTR
+002F3F 6416              XRL      A,#016H
+002F41 7036              JNZ      ?C0199?KB_PROCESS
+002F43         ?C0200?KB_PROCESS:
+ 1135: 		{
+ 1136: 			if(key_value == HID_KEY_A)
+002F43 904F0A            MOV      DPTR,#key_value
+002F46 E0                MOVX     A,@DPTR
+002F47 FF                MOV      R7,A
+002F48 B40408            CJNE     A,#04H,?C0201?KB_PROCESS
+ 1137: 			{
+ 1138: 				g_variable.system_mode = OSMODE_IOS;
+002F4B 904CC1            MOV      DPTR,#g_variable+02H
+002F4E 7402              MOV      A,#02H
+002F50 F0                MOVX     @DPTR,A
+ 1139: 			}
+002F51 8009              SJMP     ?C0202?KB_PROCESS
+002F53         ?C0201?KB_PROCESS:
+ 1140: 			else if(key_value == HID_KEY_S)
+002F53 EF                MOV      A,R7
+002F54 B41605            CJNE     A,#016H,?C0202?KB_PROCESS
+ 1141: 			{
+ 1142: 				g_variable.system_mode = OSMODE_WINDOWS;
+002F57 E4                CLR      A
+002F58 904CC1            MOV      DPTR,#g_variable+02H
+002F5B F0                MOVX     @DPTR,A
+ 1143: 
+ 1144: 			}
+002F5C         ?C0202?KB_PROCESS:
+ 1145: 	                  g_variable.systemflag = 1;
+002F5C 904D1F            MOV      DPTR,#g_variable+060H
+002F5F 7401              MOV      A,#01H
+002F61 F0                MOVX     @DPTR,A
+ 1146: 			temp = HID_KEY_NULL;
+002F62 E4                CLR      A
+002F63 904F0B            MOV      DPTR,#temp
+002F66 F0                MOVX     @DPTR,A
+ 1147: 			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+002F67 7B01              MOV      R3,#01H
+002F69 7A4C              MOV      R2,#HIGH g_variable+02H
+002F6B 79C1              MOV      R1,#LOW g_variable+02H
+002F6D 7D01              MOV      R5,#01H
+002F6F FC                MOV      R4,A
+002F70 7FC1              MOV      R7,#0C1H
+002F72 7E7F              MOV      R6,#07FH
+002F74 120E12            LCALL    _IIC_WriteBlock
+ 1148: 		}
+002F77 8029              SJMP     ?C0198?KB_PROCESS
+002F79         ?C0199?KB_PROCESS:
+ 1149: 		else if(key_value == HID_KEY_ESC)
+002F79 904F0A            MOV      DPTR,#key_value
+002F7C E0                MOVX     A,@DPTR
+002F7D B42922            CJNE     A,#029H,?C0198?KB_PROCESS
+ 1150: 		{
+ 1151: 			if(state & 1)
+002F80 904F09            MOV      DPTR,#state
+002F83 E0                MOVX     A,@DPTR
+002F84 30E016            JNB      ACC.0,?C0206?KB_PROCESS
+ 1152: 			{						
+ 1153: 				if(fn_lock_flag)
+002F87 904DFA            MOV      DPTR,#fn_lock_flag
+002F8A E0                MOVX     A,@DPTR
+002F8B 6004              JZ       ?C0207?KB_PROCESS
+ 1154: 				{
+ 1155: 					fn_lock_flag = 0;
+002F8D E4                CLR      A
+002F8E F0                MOVX     @DPTR,A
+ 1156: 				}
+002F8F 8006              SJMP     ?C0208?KB_PROCESS
+002F91         ?C0207?KB_PROCESS:
+ 1157: 				else
+ 1158: 					fn_lock_flag = 1;
+002F91 904DFA            MOV      DPTR,#fn_lock_flag
+002F94 7401              MOV      A,#01H
+002F96 F0                MOVX     @DPTR,A
+002F97         ?C0208?KB_PROCESS:
+ 1159: 					
+ 1160: 					g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+002F97 904CBF            MOV      DPTR,#g_variable
+002F9A 7402              MOV      A,#02H
+002F9C F0                MOVX     @DPTR,A
+ 1161: 				
+ 1162: 				
+ 1163: 			}
+002F9D         ?C0206?KB_PROCESS:
+ 1164: 			temp = HID_KEY_NULL;
+002F9D E4                CLR      A
+002F9E 904F0B            MOV      DPTR,#temp
+002FA1 F0                MOVX     @DPTR,A
+ 1165: 		}
+ 1166:                 /*
+ 1167:                   if(key_value == HID_KEY_UP_ARROW)
+ 1168: 		{
+ 1169: 		       if(g_variable.system_mode == OSMODE_IOS)
+ 1170: 		       {
+ 1171: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_UP_ARROW);	
+ 1172: 		       }
+ 1173: 		       else
+ 1174: 		       {
+ 1175: 		             kb_combination_key_press(state,KEY_NONE,HID_KEY_PAGE_UP);
+ 1176: 		       }
+ 1177: 		}
+ 1178: 		if(key_value == HID_KEY_DOWN_ARROW)
+ 1179: 		{
+ 1180: 		       if(g_variable.system_mode == OSMODE_IOS)
+ 1181: 		       {
+ 1182: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_DOWN_ARROW);	
+ 1183: 		       }
+ 1184: 		       else
+ 1185: 		       {
+ 1186: 		             kb_combination_key_press(state,KEY_NONE,HID_KEY_PAGE_DOWN);
+ 1187: 		       }
+ 1188: 		}	
+ 1189: 		if(key_value == HID_KEY_LEFT_ARROW)
+ 1190: 		{
+ 1191: 		       if(g_variable.system_mode == OSMODE_IOS)
+ 1192: 		       {
+ 1193: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_LEFT_ARROW);	
+ 1194: 		       }
+ 1195: 		       else
+ 1196: 		       {
+ 1197: 		             kb_combination_key_press(state,KEY_NONE,HID_KEY_HOME);
+ 1198: 		       }
+ 1199: 		}
+ 1200: 		if(key_value == HID_KEY_RIGHT_ARROW)
+ 1201: 		{
+ 1202: 		       if(g_variable.system_mode == OSMODE_IOS)
+ 1203: 		       {
+ 1204: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_RIGHT_ARROW);	
+ 1205: 		       }
+ 1206: 		       else
+ 1207: 		       {
+ 1208: 		             kb_combination_key_press(state,KEY_NONE,HID_KEY_END);
+ 1209: 		       }
+ 1210: 		}
+ 1211:                    */
+ 1212: 			
+ 1213: 		
+ 1214: 	}
+002FA2         ?C0198?KB_PROCESS:
+ 1215:      
+ 1216: 
+ 1217: 	
+ 1218:     if((fn_flag == 1)&&(fast_connect_flag == 0))
+002FA2 904DF5            MOV      DPTR,#fn_flag
+002FA5 E0                MOVX     A,@DPTR
+002FA6 6401              XRL      A,#01H
+002FA8 6003              JZ       $ + 5H
+002FAA 023066            LJMP     ?C0209?KB_PROCESS
+002FAD 904E69            MOV      DPTR,#fast_connect_flag
+002FB0 E0                MOVX     A,@DPTR
+002FB1 6003              JZ       $ + 5H
+002FB3 023066            LJMP     ?C0209?KB_PROCESS
+ 1219: 	{	
+ 1220: 		
+ 1221: 		switch (key_value)
+002FB6 904F0A            MOV      DPTR,#key_value
+002FB9 E0                MOVX     A,@DPTR
+002FBA 24D7              ADD      A,#0D7H
+002FBC 603C              JZ       ?C0211?KB_PROCESS
+002FBE 24EF              ADD      A,#0EFH
+002FC0 B40C00            CJNE     A,#0CH,?C0295?KB_PROCESS
+002FC3         ?C0295?KB_PROCESS:
+002FC3 4003              JC       $ + 5H
+002FC5 0230B4            LJMP     ?C0225?KB_PROCESS
+002FC8 902FD6            MOV      DPTR,#02FD6H
+002FCB 75F003            MOV      B,#03H
+002FCE A4                MUL      AB
+002FCF C583              XCH      A,DPH
+002FD1 25F0              ADD      A,B
+002FD3 C583              XCH      A,DPH
+002FD5 73                JMP      @A+DPTR
+002FD6         ?C0296?KB_PROCESS:
+002FD6 023003            LJMP     ?C0212?KB_PROCESS
+002FD9 02300C            LJMP     ?C0213?KB_PROCESS
+002FDC 023014            LJMP     ?C0214?KB_PROCESS
+002FDF 02301C            LJMP     ?C0215?KB_PROCESS
+002FE2 023024            LJMP     ?C0216?KB_PROCESS
+002FE5 02302C            LJMP     ?C0217?KB_PROCESS
+002FE8 023034            LJMP     ?C0218?KB_PROCESS
+002FEB 02303C            LJMP     ?C0219?KB_PROCESS
+002FEE 023044            LJMP     ?C0220?KB_PROCESS
+002FF1 02304C            LJMP     ?C0221?KB_PROCESS
+002FF4 023054            LJMP     ?C0222?KB_PROCESS
+002FF7 02305C            LJMP     ?C0223?KB_PROCESS
+ 1222: 		{ 
+ 1223: 			case HID_KEY_ESC:
+002FFA         ?C0211?KB_PROCESS:
+ 1224: 				temp = HID_KEY_TILDE;
+002FFA 904F0B            MOV      DPTR,#temp
+002FFD 7435              MOV      A,#035H
+002FFF F0                MOVX     @DPTR,A
+ 1225: 				break;		
+003000 0230B4            LJMP     ?C0225?KB_PROCESS
+ 1226: 			case HID_KEY_F1:
+003003         ?C0212?KB_PROCESS:
+ 1227: 				temp = HID_MULTIKEY_LIGHT_DOWN;
+003003 904F0B            MOV      DPTR,#temp
+003006 74D7              MOV      A,#0D7H
+003008 F0                MOVX     @DPTR,A
+ 1228: 				break;
+003009 0230B4            LJMP     ?C0225?KB_PROCESS
+ 1229: 			case HID_KEY_F2:
+00300C         ?C0213?KB_PROCESS:
+ 1230: 				temp = HID_MULTIKEY_LIGHT_UP;
+00300C 904F0B            MOV      DPTR,#temp
+00300F 74D8              MOV      A,#0D8H
+003011 F0                MOVX     @DPTR,A
+ 1231: 				break;
+003012 01B4              AJMP     ?C0225?KB_PROCESS
+ 1232: 			case HID_KEY_F3:
+003014         ?C0214?KB_PROCESS:
+ 1233: 				temp = HID_KEY_F3;
+003014 904F0B            MOV      DPTR,#temp
+003017 743C              MOV      A,#03CH
+003019 F0                MOVX     @DPTR,A
+ 1234: 				break;
+00301A 01B4              AJMP     ?C0225?KB_PROCESS
+ 1235: 			case HID_KEY_F4:
+00301C         ?C0215?KB_PROCESS:
+ 1236: 				temp = HID_KEY_F4;
+00301C 904F0B            MOV      DPTR,#temp
+00301F 743D              MOV      A,#03DH
+003021 F0                MOVX     @DPTR,A
+ 1237: 				break;
+003022 01B4              AJMP     ?C0225?KB_PROCESS
+ 1238: 			case HID_KEY_F5:
+003024         ?C0216?KB_PROCESS:
+ 1239: 				temp = HID_KEY_F5;
+003024 904F0B            MOV      DPTR,#temp
+003027 743E              MOV      A,#03EH
+003029 F0                MOVX     @DPTR,A
+ 1240: 				break;
+00302A 01B4              AJMP     ?C0225?KB_PROCESS
+ 1241: 			case HID_KEY_F6:
+00302C         ?C0217?KB_PROCESS:
+ 1242: 				temp = HID_KEY_F6;
+00302C 904F0B            MOV      DPTR,#temp
+00302F 743F              MOV      A,#03FH
+003031 F0                MOVX     @DPTR,A
+ 1243: 				break;
+003032 01B4              AJMP     ?C0225?KB_PROCESS
+ 1244: 			case HID_KEY_F7:
+003034         ?C0218?KB_PROCESS:
+ 1245: 				temp = HID_MULTIKEY_PRE_TRACK;
+003034 904F0B            MOV      DPTR,#temp
+003037 74F4              MOV      A,#0F4H
+003039 F0                MOVX     @DPTR,A
+ 1246: 				break;
+00303A 8078              SJMP     ?C0225?KB_PROCESS
+ 1247: 			case HID_KEY_F8:
+00303C         ?C0219?KB_PROCESS:
+ 1248: 				temp = HID_MULTIKEY_PALY;
+00303C 904F0B            MOV      DPTR,#temp
+00303F 74F2              MOV      A,#0F2H
+003041 F0                MOVX     @DPTR,A
+ 1249: 				break;
+003042 8070              SJMP     ?C0225?KB_PROCESS
+ 1250: 			case HID_KEY_F9:
+003044         ?C0220?KB_PROCESS:
+ 1251: 				temp = HID_MULTIKEY_NEXT_TRACK;
+003044 904F0B            MOV      DPTR,#temp
+003047 74F5              MOV      A,#0F5H
+003049 F0                MOVX     @DPTR,A
+ 1252: 				break;
+00304A 8068              SJMP     ?C0225?KB_PROCESS
+ 1253: 			case HID_KEY_F10:
+00304C         ?C0221?KB_PROCESS:
+ 1254: 				temp = HID_MULTIKEY_MUTE;
+00304C 904F0B            MOV      DPTR,#temp
+00304F 74F8              MOV      A,#0F8H
+003051 F0                MOVX     @DPTR,A
+ 1255: 				break;
+003052 8060              SJMP     ?C0225?KB_PROCESS
+ 1256: 			case HID_KEY_F11:
+003054         ?C0222?KB_PROCESS:
+ 1257: 				temp = HID_MULTIKEY_VOL_DOWN;
+003054 904F0B            MOV      DPTR,#temp
+003057 74F6              MOV      A,#0F6H
+003059 F0                MOVX     @DPTR,A
+ 1258: 				break;
+00305A 8058              SJMP     ?C0225?KB_PROCESS
+ 1259: 			case HID_KEY_F12:
+00305C         ?C0223?KB_PROCESS:
+ 1260: 				temp = HID_MULTIKEY_VOL_UP;
+00305C 904F0B            MOV      DPTR,#temp
+00305F 74F7              MOV      A,#0F7H
+003061 F0                MOVX     @DPTR,A
+ 1261: 				break;
+003062 8050              SJMP     ?C0225?KB_PROCESS
+ 1262: 			default :
+ 1263: 				break;
+ 1264: 		}
+ 1265: 	}
+003064 804E              SJMP     ?C0225?KB_PROCESS
+003066         ?C0209?KB_PROCESS:
+ 1266: 	else
+ 1267: 	{
+ 1268:                   if(key_value == HID_KEY_HOME)
+003066 904F0A            MOV      DPTR,#key_value
+003069 E0                MOVX     A,@DPTR
+00306A B44A13            CJNE     A,#04AH,?C0226?KB_PROCESS
+ 1269: 		{
+ 1270: 		       if(g_variable.system_mode == OSMODE_IOS)
+00306D 904CC1            MOV      DPTR,#g_variable+02H
+003070 E0                MOVX     A,@DPTR
+003071 B4020C            CJNE     A,#02H,?C0226?KB_PROCESS
+ 1271: 		       {
+ 1272: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_LEFT_ARROW);	
+003074 904F09            MOV      DPTR,#state
+003077 E0                MOVX     A,@DPTR
+003078 FF                MOV      R7,A
+003079 7B50              MOV      R3,#050H
+00307B 7D08              MOV      R5,#08H
+00307D 122EEA            LCALL    _kb_combination_key_press
+ 1273: 		       }
+ 1274: 		}
+003080         ?C0226?KB_PROCESS:
+ 1275: 		if(key_value == HID_KEY_PAGE_UP)
+003080 904F0A            MOV      DPTR,#key_value
+003083 E0                MOVX     A,@DPTR
+003084 B44B13            CJNE     A,#04BH,?C0228?KB_PROCESS
+ 1276: 		{
+ 1277: 		       if(g_variable.system_mode == OSMODE_IOS)
+003087 904CC1            MOV      DPTR,#g_variable+02H
+00308A E0                MOVX     A,@DPTR
+00308B B4020C            CJNE     A,#02H,?C0228?KB_PROCESS
+ 1278: 		       {
+ 1279: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_UP_ARROW);	
+00308E 904F09            MOV      DPTR,#state
+003091 E0                MOVX     A,@DPTR
+003092 FF                MOV      R7,A
+003093 7B52              MOV      R3,#052H
+003095 7D08              MOV      R5,#08H
+003097 122EEA            LCALL    _kb_combination_key_press
+ 1280: 		       }
+ 1281: 		}	
+00309A         ?C0228?KB_PROCESS:
+ 1282: 		if(key_value == HID_KEY_PAGE_DOWN)
+00309A 904F0A            MOV      DPTR,#key_value
+00309D E0                MOVX     A,@DPTR
+00309E B44E13            CJNE     A,#04EH,?C0225?KB_PROCESS
+ 1283: 		{
+ 1284: 		       if(g_variable.system_mode == OSMODE_IOS)
+0030A1 904CC1            MOV      DPTR,#g_variable+02H
+0030A4 E0                MOVX     A,@DPTR
+0030A5 B4020C            CJNE     A,#02H,?C0225?KB_PROCESS
+ 1285: 		       {
+ 1286: 		             kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_DOWN_ARROW);	
+0030A8 904F09            MOV      DPTR,#state
+0030AB E0                MOVX     A,@DPTR
+0030AC FF                MOV      R7,A
+0030AD 7B51              MOV      R3,#051H
+0030AF 7D08              MOV      R5,#08H
+0030B1 122EEA            LCALL    _kb_combination_key_press
+ 1287: 		       }
+ 1288: 		}	       
+ 1289: 	}
+0030B4         ?C0225?KB_PROCESS:
+ 1290: 	return temp;
+0030B4 904F0B            MOV      DPTR,#temp
+0030B7 E0                MOVX     A,@DPTR
+0030B8 FF                MOV      R7,A
+ 1291: }
+0030B9 22                RET      
+----- FUNCTION _key_fn_function (END) -------
+
+
+----- FUNCTION KS_Unistall (BEGIN) -----
+ FILE: 'keyscan.c'
+  284: void KS_Unistall()
+  285: {
+  286: 	byte i = 0;
+  287: 	byte temp = 0;
+;---- Variable 'i' assigned to Register 'R7' ----
+0030BA E4                CLR      A
+0030BB FF                MOV      R7,A
+  288: 	byte tgroup = 0;
+0030BC 904F2D            MOV      DPTR,#temp
+0030BF F0                MOVX     @DPTR,A
+  289: 	byte tgpionum = 0;
+;---- Variable 'tgroup' assigned to Register 'R6' ----
+0030C0 FE                MOV      R6,A
+  290: 	for (i=0; col[i]!=0; i++) {
+;---- Variable 'tgpionum' assigned to Register 'R5' ----
+0030C1 FD                MOV      R5,A
+  291: 		tgroup = col[i]  >> 3;
+0030C2         ?C0040?KEYSCAN:
+0030C2 EF                MOV      A,R7
+0030C3 900681            MOV      DPTR,#col
+0030C6 93                MOVC     A,@A+DPTR
+0030C7 6049              JZ       ?C0041?KEYSCAN
+  292: 		tgpionum = 1 << (col[i] & 7);
+0030C9 EF                MOV      A,R7
+0030CA 93                MOVC     A,@A+DPTR
+0030CB FD                MOV      R5,A
+0030CC 13                RRC      A
+0030CD 13                RRC      A
+0030CE 13                RRC      A
+0030CF 541F              ANL      A,#01FH
+0030D1 FE                MOV      R6,A
+  293: 		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+0030D2 ED                MOV      A,R5
+0030D3 5407              ANL      A,#07H
+0030D5 FD                MOV      R5,A
+0030D6 7401              MOV      A,#01H
+0030D8 A805              MOV      R0,AR5
+0030DA 08                INC      R0
+0030DB 8002              SJMP     ?C0106?KEYSCAN
+0030DD         ?C0105?KEYSCAN:
+0030DD C3                CLR      C
+0030DE 33                RLC      A
+0030DF         ?C0106?KEYSCAN:
+0030DF D8FC              DJNZ     R0,?C0105?KEYSCAN
+0030E1 FD                MOV      R5,A
+  294: 		REG_GPIO_OE(tgroup) |= tgpionum;
+0030E2 EE                MOV      A,R6
+0030E3 2478              ADD      A,#078H
+0030E5 FB                MOV      R3,A
+0030E6 E4                CLR      A
+0030E7 3480              ADDC     A,#080H
+0030E9 8B82              MOV      DPL,R3
+0030EB F583              MOV      DPH,A
+0030ED E0                MOVX     A,@DPTR
+0030EE FC                MOV      R4,A
+0030EF ED                MOV      A,R5
+0030F0 F4                CPL      A
+0030F1 FB                MOV      R3,A
+0030F2 EC                MOV      A,R4
+0030F3 5B                ANL      A,R3
+0030F4 F0                MOVX     @DPTR,A
+  295: 		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+0030F5 EE                MOV      A,R6
+0030F6 2470              ADD      A,#070H
+0030F8 F582              MOV      DPL,A
+0030FA E4                CLR      A
+0030FB 3480              ADDC     A,#080H
+0030FD F583              MOV      DPH,A
+0030FF E0                MOVX     A,@DPTR
+003100 4D                ORL      A,R5
+003101 F0                MOVX     @DPTR,A
+  296: 	}
+003102 EE                MOV      A,R6
+003103 2474              ADD      A,#074H
+003105 F582              MOV      DPL,A
+003107 E4                CLR      A
+003108 3480              ADDC     A,#080H
+00310A F583              MOV      DPH,A
+00310C E0                MOVX     A,@DPTR
+00310D 5B                ANL      A,R3
+00310E F0                MOVX     @DPTR,A
+  297: 	
+00310F 0F                INC      R7
+003110 80B0              SJMP     ?C0040?KEYSCAN
+003112         ?C0041?KEYSCAN:
+  298: 	GPIO_fillpd();
+003112 51A3              ACALL    GPIO_fillpd
+  299: 	
+  300: 	temp = REG_GPIO_IN(0);
+003114 90811C            MOV      DPTR,#0811CH
+003117 E0                MOVX     A,@DPTR
+003118 904F2D            MOV      DPTR,#temp
+00311B F0                MOVX     @DPTR,A
+  301: 
+  302: 	if(long_press_flag)
+00311C 904DEF            MOV      DPTR,#long_press_flag
+00311F E0                MOVX     A,@DPTR
+003120 6020              JZ       ?C0043?KEYSCAN
+  303: 	{
+  304: 		GPIO_SetWakeupByCurrentState(0);
+003122 E4                CLR      A
+003123 FF                MOV      R7,A
+003124 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  305: 		GPIO_SetWakeupByCurrentState(1);
+003126 7F01              MOV      R7,#01H
+003128 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  306: 		GPIO_SetWakeupByCurrentState(2);
+00312A 7F02              MOV      R7,#02H
+00312C 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  307: 		GPIO_SetWakeupByCurrentState(3);
+00312E 7F03              MOV      R7,#03H
+003130 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  308: 		GPIO_SetWakeupByCurrentState(4);
+003132 7F04              MOV      R7,#04H
+003134 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  309: 		GPIO_SetWakeupByCurrentState(5);
+003136 7F05              MOV      R7,#05H
+003138 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  310: 		GPIO_SetWakeupByCurrentState(6);
+00313A 7F06              MOV      R7,#06H
+00313C 3152              ACALL    _GPIO_SetWakeupByCurrentState
+  311: 		GPIO_SetWakeupByCurrentState(7);
+00313E 7F07              MOV      R7,#07H
+003140 8010              SJMP     _GPIO_SetWakeupByCurrentState
+  312: 	}
+003142         ?C0043?KEYSCAN:
+  313: 	else
+  314: 	{
+  315: 		YC_GPIOWakeupL[0] = temp;
+003142 904F2D            MOV      DPTR,#temp
+003145 E0                MOVX     A,@DPTR
+003146 FF                MOV      R7,A
+003147 9000A3            MOV      DPTR,#YC_GPIOWakeupL
+00314A F0                MOVX     @DPTR,A
+  316: 		YC_GPIOWakeupH[0] = ~temp;
+00314B EF                MOV      A,R7
+00314C F4                CPL      A
+00314D 9000A7            MOV      DPTR,#YC_GPIOWakeupH
+003150 F0                MOVX     @DPTR,A
+  317: 	}
+  318: 
+  319: }
+003151 22                RET      
+----- FUNCTION KS_Unistall (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
+003152 904F31            MOV      DPTR,#gpio_num
+003155 EF                MOV      A,R7
+003156 F0                MOVX     @DPTR,A
+003157 31F1              ACALL    _GPIO_GetInputStatus
+003159 9208              MOV      st,C
+00315B 904F31            MOV      DPTR,#gpio_num
+00315E E0                MOVX     A,@DPTR
+00315F FF                MOV      R7,A
+003160 A208              MOV      C,st
+003162 B3                CPL      C
+003163 9207              MOV      ?_GPIO_SetWakeup?BIT,C
+;----                  JMP      _GPIO_SetWakeup
+----- FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeup (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003165 EF                MOV      A,R7
+003166 F4                CPL      A
+003167 7002              JNZ      $ + 4H
+003169 21F0              AJMP     ?C0019?GPIO
+00316B         ?C0018?GPIO:
+00316B EF                MOV      A,R7
+00316C 5407              ANL      A,#07H
+00316E FE                MOV      R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+00316F EF                MOV      A,R7
+003170 13                RRC      A
+003171 13                RRC      A
+003172 13                RRC      A
+003173 5403              ANL      A,#03H
+003175 FF                MOV      R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+003176 300743            JNB      st,?C0020?GPIO
+003179 24A3              ADD      A,#LOW YC_GPIOWakeupL
+00317B F582              MOV      DPL,A
+00317D E4                CLR      A
+00317E 3400              ADDC     A,#HIGH YC_GPIOWakeupL
+003180 F583              MOV      DPH,A
+003182 C083              PUSH     DPH
+003184 C082              PUSH     DPL
+003186 E0                MOVX     A,@DPTR
+003187 FD                MOV      R5,A
+003188 7401              MOV      A,#01H
+00318A A806              MOV      R0,AR6
+00318C 08                INC      R0
+00318D 8002              SJMP     ?C0037?GPIO
+00318F         ?C0036?GPIO:
+00318F C3                CLR      C
+003190 33                RLC      A
+003191         ?C0037?GPIO:
+003191 D8FC              DJNZ     R0,?C0036?GPIO
+003193 F4                CPL      A
+003194 5D                ANL      A,R5
+003195 D082              POP      DPL
+003197 D083              POP      DPH
+003199 F0                MOVX     @DPTR,A
+00319A 74A7              MOV      A,#LOW YC_GPIOWakeupH
+00319C 2F                ADD      A,R7
+00319D F582              MOV      DPL,A
+00319F E4                CLR      A
+0031A0 3400              ADDC     A,#HIGH YC_GPIOWakeupH
+0031A2 F583              MOV      DPH,A
+0031A4 C083              PUSH     DPH
+0031A6 C082              PUSH     DPL
+0031A8 E0                MOVX     A,@DPTR
+0031A9 FF                MOV      R7,A
+0031AA 7401              MOV      A,#01H
+0031AC A806              MOV      R0,AR6
+0031AE 08                INC      R0
+0031AF 8002              SJMP     ?C0039?GPIO
+0031B1         ?C0038?GPIO:
+0031B1 C3                CLR      C
+0031B2 33                RLC      A
+0031B3         ?C0039?GPIO:
+0031B3 D8FC              DJNZ     R0,?C0038?GPIO
+0031B5 4F                ORL      A,R7
+0031B6 D082              POP      DPL
+0031B8 D083              POP      DPH
+0031BA F0                MOVX     @DPTR,A
+0031BB 22                RET      
+0031BC         ?C0020?GPIO:
+0031BC 74A3              MOV      A,#LOW YC_GPIOWakeupL
+0031BE 2F                ADD      A,R7
+0031BF F582              MOV      DPL,A
+0031C1 E4                CLR      A
+0031C2 3400              ADDC     A,#HIGH YC_GPIOWakeupL
+0031C4 F583              MOV      DPH,A
+0031C6 C083              PUSH     DPH
+0031C8 C082              PUSH     DPL
+0031CA E0                MOVX     A,@DPTR
+0031CB FD                MOV      R5,A
+0031CC 7401              MOV      A,#01H
+0031CE A806              MOV      R0,AR6
+0031D0 08                INC      R0
+0031D1 8002              SJMP     ?C0041?GPIO
+0031D3         ?C0040?GPIO:
+0031D3 C3                CLR      C
+0031D4 33                RLC      A
+0031D5         ?C0041?GPIO:
+0031D5 D8FC              DJNZ     R0,?C0040?GPIO
+0031D7 FC                MOV      R4,A
+0031D8 4D                ORL      A,R5
+0031D9 D082              POP      DPL
+0031DB D083              POP      DPH
+0031DD F0                MOVX     @DPTR,A
+0031DE 74A7              MOV      A,#LOW YC_GPIOWakeupH
+0031E0 2F                ADD      A,R7
+0031E1 F582              MOV      DPL,A
+0031E3 E4                CLR      A
+0031E4 3400              ADDC     A,#HIGH YC_GPIOWakeupH
+0031E6 F583              MOV      DPH,A
+0031E8 E0                MOVX     A,@DPTR
+0031E9 FF                MOV      R7,A
+0031EA EC                MOV      A,R4
+0031EB F4                CPL      A
+0031EC FE                MOV      R6,A
+0031ED EF                MOV      A,R7
+0031EE 5E                ANL      A,R6
+0031EF F0                MOVX     @DPTR,A
+0031F0         ?C0019?GPIO:
+0031F0 22                RET      
+----- FUNCTION _GPIO_SetWakeup (END) -------
+
+
+----- FUNCTION _GPIO_GetInputStatus (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+0031F1 7B01              MOV      R3,#01H
+0031F3 7A81              MOV      R2,#081H
+0031F5 791C              MOV      R1,#01CH
+;----                  JMP      _gpioGetBit
+----- FUNCTION _GPIO_GetInputStatus (END) -------
+
+
+----- FUNCTION _gpioGetBit (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R5' ----
+0031F7 AD07              MOV      R5,AR7
+;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
+0031F9 E4                CLR      A
+0031FA 904F30            MOV      DPTR,#queue
+0031FD F0                MOVX     @DPTR,A
+;---- Variable 'group' assigned to Register 'R6' ----
+0031FE FE                MOV      R6,A
+0031FF EF                MOV      A,R7
+003200 5407              ANL      A,#07H
+003202 F0                MOVX     @DPTR,A
+003203 EF                MOV      A,R7
+003204 13                RRC      A
+003205 13                RRC      A
+003206 13                RRC      A
+003207 5403              ANL      A,#03H
+003209 FE                MOV      R6,A
+00320A F582              MOV      DPL,A
+00320C 758300            MOV      DPH,#00H
+00320F 1203CF            LCALL    ?C?CLDOPTR
+003212 FD                MOV      R5,A
+003213 33                RLC      A
+003214 95E0              SUBB     A,ACC
+003216 FC                MOV      R4,A
+003217 904F30            MOV      DPTR,#queue
+00321A E0                MOVX     A,@DPTR
+00321B FF                MOV      R7,A
+00321C 7401              MOV      A,#01H
+00321E 7E00              MOV      R6,#00H
+003220 A807              MOV      R0,AR7
+003222 08                INC      R0
+003223 8005              SJMP     ?C0035?GPIO
+003225         ?C0034?GPIO:
+003225 C3                CLR      C
+003226 33                RLC      A
+003227 CE                XCH      A,R6
+003228 33                RLC      A
+003229 CE                XCH      A,R6
+00322A         ?C0035?GPIO:
+00322A D8F9              DJNZ     R0,?C0034?GPIO
+00322C FF                MOV      R7,A
+00322D EE                MOV      A,R6
+00322E 5C                ANL      A,R4
+00322F FE                MOV      R6,A
+003230 EF                MOV      A,R7
+003231 5D                ANL      A,R5
+003232 4E                ORL      A,R6
+003233 24FF              ADD      A,#0FFH
+003235 22                RET      
+----- FUNCTION _gpioGetBit (END) -------
+
+
+----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
+003236 904F32            MOV      DPTR,#gpio_num
+003239 EF                MOV      A,R7
+00323A F0                MOVX     @DPTR,A
+00323B 7B01              MOV      R3,#01H
+00323D 7A80              MOV      R2,#080H
+00323F 7974              MOV      R1,#074H
+003241 31F7              ACALL    _gpioGetBit
+003243 9209              MOV      st,C
+003245 904F32            MOV      DPTR,#gpio_num
+003248 E0                MOVX     A,@DPTR
+003249 FF                MOV      R7,A
+00324A A209              MOV      C,st
+00324C B3                CPL      C
+00324D 9201              MOV      ?_GPIO_Setout?BIT,C
+00324F 020AEC            LJMP     _GPIO_Setout
+----- FUNCTION _GPIO_FlipOutBit (END) -------
+
+
+----- FUNCTION LED_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  477: void LED_timer500ms()
+  478: {
+  479: 	if (power_on_flag != 2)
+  480: 		return;
+003252 904DFE            MOV      DPTR,#power_on_flag
+003255 E0                MOVX     A,@DPTR
+003256 6402              XRL      A,#02H
+003258 7048              JNZ      ?C0075?SYS
+00325A         ?C0074?SYS:
+  481: 	if (g_variable.pairing_timeout != 0) //bt  pairing
+00325A 904CE9            MOV      DPTR,#g_variable+02AH
+00325D E0                MOVX     A,@DPTR
+00325E 6038              JZ       ?C0076?SYS
+  482: 	{
+  483: 		if (g_variable.button_reconnect_flag != 1)
+003260 904CCC            MOV      DPTR,#g_variable+0DH
+003263 E0                MOVX     A,@DPTR
+003264 6401              XRL      A,#01H
+003266 6022              JZ       ?C0077?SYS
+  484: 		{
+  485: 			if(g_variable.current_device_num == 1)
+003268 904CC3            MOV      DPTR,#g_variable+04H
+00326B E0                MOVX     A,@DPTR
+00326C B40104            CJNE     A,#01H,?C0078?SYS
+  486: 				GPIO_FlipOutBit(BT_LED_GPIO);
+00326F 7FFF              MOV      R7,#0FFH
+003271 80C3              SJMP     _GPIO_FlipOutBit
+003273         ?C0078?SYS:
+  487: 			else if(g_variable.current_device_num == 2)
+003273 904CC3            MOV      DPTR,#g_variable+04H
+003276 E0                MOVX     A,@DPTR
+003277 B40204            CJNE     A,#02H,?C0080?SYS
+  488: 				GPIO_FlipOutBit(BT_LED_GPIO);
+00327A 7FFF              MOV      R7,#0FFH
+00327C 80B8              SJMP     _GPIO_FlipOutBit
+00327E         ?C0080?SYS:
+  489: 			else if(g_variable.current_device_num == 3)
+00327E 904CC3            MOV      DPTR,#g_variable+04H
+003281 E0                MOVX     A,@DPTR
+003282 6403              XRL      A,#03H
+003284 701C              JNZ      ?C0075?SYS
+  490: 			{
+  491: 				GPIO_FlipOutBit(BT_LED_GPIO);
+003286 7FFF              MOV      R7,#0FFH
+003288 80AC              SJMP     _GPIO_FlipOutBit
+  492: 				//GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
+  493: 			}
+  494: 		}
+00328A         ?C0077?SYS:
+  495: 		else
+  496: 		{
+  497: 			GPIO_Setout(BT_LED_GPIO,LED_OFF);
+00328A C201              CLR      ?_GPIO_Setout?BIT
+00328C 7FFF              MOV      R7,#0FFH
+00328E 120AEC            LCALL    _GPIO_Setout
+  498: 			GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+003291 C201              CLR      ?_GPIO_Setout?BIT
+003293 7FFF              MOV      R7,#0FFH
+003295 020AEC            LJMP     _GPIO_Setout
+  499: 			//GPIO_Setout(LOWPOWER_LED_GPIO,LED_OFF);
+  500: 		}
+  501: 	}
+003298         ?C0076?SYS:
+  502: 	else if (g_variable.pairing_g24_timeout != 0)
+003298 904CEE            MOV      DPTR,#g_variable+02FH
+00329B E0                MOVX     A,@DPTR
+00329C 6004              JZ       ?C0075?SYS
+  503: 	{
+  504: 		GPIO_FlipOutBit(G24_LED_GPIO);
+00329E 7F0F              MOV      R7,#0FH
+0032A0 5136              ACALL    _GPIO_FlipOutBit
+  505: 		//GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
+  506: 	}
+  507: 	
+  508: }
+0032A2         ?C0075?SYS:
+0032A2 22                RET      
+----- FUNCTION LED_timer500ms (END) -------
+
+
+----- FUNCTION GPIO_fillpd (BEGIN) -----
+;---- Variable 'i' assigned to Register 'R7' ----
+0032A3 E4                CLR      A
+0032A4 FF                MOV      R7,A
+0032A5         ?C0026?GPIO:
+0032A5 EF                MOV      A,R7
+0032A6 FD                MOV      R5,A
+0032A7 7C00              MOV      R4,#00H
+0032A9 2478              ADD      A,#078H
+0032AB FB                MOV      R3,A
+0032AC EC                MOV      A,R4
+0032AD 3480              ADDC     A,#080H
+0032AF 8B82              MOV      DPL,R3
+0032B1 F583              MOV      DPH,A
+0032B3 E0                MOVX     A,@DPTR
+0032B4 FE                MOV      R6,A
+0032B5 ED                MOV      A,R5
+0032B6 2470              ADD      A,#070H
+0032B8 FD                MOV      R5,A
+0032B9 EC                MOV      A,R4
+0032BA 3480              ADDC     A,#080H
+0032BC 8D82              MOV      DPL,R5
+0032BE F583              MOV      DPH,A
+0032C0 E0                MOVX     A,@DPTR
+0032C1 4E                ORL      A,R6
+0032C2 F4                CPL      A
+0032C3 FE                MOV      R6,A
+0032C4 EF                MOV      A,R7
+0032C5 247C              ADD      A,#07CH
+0032C7 FD                MOV      R5,A
+0032C8 EC                MOV      A,R4
+0032C9 3480              ADDC     A,#080H
+0032CB 8D82              MOV      DPL,R5
+0032CD F583              MOV      DPH,A
+0032CF EE                MOV      A,R6
+0032D0 F0                MOVX     @DPTR,A
+0032D1 0F                INC      R7
+0032D2 EF                MOV      A,R7
+0032D3 B404CF            CJNE     A,#04H,?C0026?GPIO
+0032D6 22                RET      
+----- FUNCTION GPIO_fillpd (END) -------
+
+
+----- FUNCTION KS_ScanMatrix (BEGIN) -----
+ FILE: 'keyscan.c'
+  322: void KS_ScanMatrix()
+  323: {
+  324: 	byte i = 0;
+  325: 	byte j = 0;
+;---- Variable 'i' assigned to Register 'R7' ----
+0032D7 E4                CLR      A
+0032D8 FF                MOV      R7,A
+  326: 	byte tgroup = 0;
+0032D9 904F0C            MOV      DPTR,#j
+0032DC F0                MOVX     @DPTR,A
+  327: 	byte tgpionum = 0;
+;---- Variable 'tgroup' assigned to Register 'R6' ----
+0032DD FE                MOV      R6,A
+  328: 	byte temp = 0;
+;---- Variable 'tgpionum' assigned to Register 'R5' ----
+0032DE FD                MOV      R5,A
+  329: 	byte check = 0;
+0032DF A3                INC      DPTR
+0032E0 F0                MOVX     @DPTR,A
+  330: 	for (i=0; col[i]!=0; i++) {
+0032E1 A3                INC      DPTR
+0032E2 F0                MOVX     @DPTR,A
+  331: 		tgroup = col[i]  >> 3;
+0032E3         ?C0046?KEYSCAN:
+0032E3 EF                MOV      A,R7
+0032E4 900681            MOV      DPTR,#col
+0032E7 93                MOVC     A,@A+DPTR
+0032E8 607C              JZ       ?C0047?KEYSCAN
+  332: 		tgpionum = 1 << (col[i] & 7);
+0032EA EF                MOV      A,R7
+0032EB 93                MOVC     A,@A+DPTR
+0032EC FD                MOV      R5,A
+0032ED 13                RRC      A
+0032EE 13                RRC      A
+0032EF 13                RRC      A
+0032F0 541F              ANL      A,#01FH
+0032F2 FE                MOV      R6,A
+  333: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
+0032F3 ED                MOV      A,R5
+0032F4 5407              ANL      A,#07H
+0032F6 FD                MOV      R5,A
+0032F7 7401              MOV      A,#01H
+0032F9 A805              MOV      R0,AR5
+0032FB 08                INC      R0
+0032FC 8002              SJMP     ?C0108?KEYSCAN
+0032FE         ?C0107?KEYSCAN:
+0032FE C3                CLR      C
+0032FF 33                RLC      A
+003300         ?C0108?KEYSCAN:
+003300 D8FC              DJNZ     R0,?C0107?KEYSCAN
+003302 FD                MOV      R5,A
+  334: 	}
+003303 EE                MOV      A,R6
+003304 2478              ADD      A,#078H
+003306 FB                MOV      R3,A
+003307 E4                CLR      A
+003308 3480              ADDC     A,#080H
+00330A 8B82              MOV      DPL,R3
+00330C F583              MOV      DPH,A
+00330E E0                MOVX     A,@DPTR
+00330F FC                MOV      R4,A
+003310 ED                MOV      A,R5
+003311 F4                CPL      A
+003312 FB                MOV      R3,A
+003313 EC                MOV      A,R4
+003314 5B                ANL      A,R3
+003315 F0                MOVX     @DPTR,A
+003316 EE                MOV      A,R6
+003317 2470              ADD      A,#070H
+003319 F582              MOV      DPL,A
+00331B E4                CLR      A
+00331C 3480              ADDC     A,#080H
+00331E F583              MOV      DPH,A
+003320 E0                MOVX     A,@DPTR
+003321 4D                ORL      A,R5
+003322 F0                MOVX     @DPTR,A
+003323 EE                MOV      A,R6
+003324 2474              ADD      A,#074H
+003326 F582              MOV      DPL,A
+003328 E4                CLR      A
+003329 3480              ADDC     A,#080H
+00332B F583              MOV      DPH,A
+00332D E0                MOVX     A,@DPTR
+00332E 5B                ANL      A,R3
+00332F F0                MOVX     @DPTR,A
+003330 90811C            MOV      DPTR,#0811CH
+003333 E0                MOVX     A,@DPTR
+003334 F4                CPL      A
+003335 FC                MOV      R4,A
+003336 74BC              MOV      A,#LOW ksSelMapCurr
+003338 2F                ADD      A,R7
+003339 F582              MOV      DPL,A
+00333B E4                CLR      A
+00333C 344D              ADDC     A,#HIGH ksSelMapCurr
+00333E F583              MOV      DPH,A
+003340 EC                MOV      A,R4
+003341 F0                MOVX     @DPTR,A
+003342 EE                MOV      A,R6
+003343 2478              ADD      A,#078H
+003345 FB                MOV      R3,A
+003346 E4                CLR      A
+003347 3480              ADDC     A,#080H
+003349 8B82              MOV      DPL,R3
+00334B F583              MOV      DPH,A
+00334D E0                MOVX     A,@DPTR
+00334E 4D                ORL      A,R5
+00334F F0                MOVX     @DPTR,A
+003350 EE                MOV      A,R6
+003351 2470              ADD      A,#070H
+003353 FB                MOV      R3,A
+003354 E4                CLR      A
+003355 3480              ADDC     A,#080H
+003357 8B82              MOV      DPL,R3
+003359 F583              MOV      DPH,A
+00335B E0                MOVX     A,@DPTR
+00335C FC                MOV      R4,A
+00335D ED                MOV      A,R5
+00335E F4                CPL      A
+00335F FB                MOV      R3,A
+003360 EC                MOV      A,R4
+003361 5B                ANL      A,R3
+003362 F0                MOVX     @DPTR,A
+  335: 
+003363 0F                INC      R7
+003364 41E3              AJMP     ?C0046?KEYSCAN
+003366         ?C0047?KEYSCAN:
+  336: 	for (i=0; col[i]!=0; i++) {
+003366 E4                CLR      A
+003367 FF                MOV      R7,A
+003368         ?C0049?KEYSCAN:
+003368 EF                MOV      A,R7
+003369 900681            MOV      DPTR,#col
+00336C 93                MOVC     A,@A+DPTR
+00336D 607C              JZ       ?C0050?KEYSCAN
+  337: 		tgroup = col[i]  >> 3;
+00336F EF                MOV      A,R7
+003370 93                MOVC     A,@A+DPTR
+003371 FD                MOV      R5,A
+003372 13                RRC      A
+003373 13                RRC      A
+003374 13                RRC      A
+003375 541F              ANL      A,#01FH
+003377 FE                MOV      R6,A
+  338: 		tgpionum = 1 << (col[i] & 7);
+003378 ED                MOV      A,R5
+003379 5407              ANL      A,#07H
+00337B FD                MOV      R5,A
+00337C 7401              MOV      A,#01H
+00337E A805              MOV      R0,AR5
+003380 08                INC      R0
+003381 8002              SJMP     ?C0110?KEYSCAN
+003383         ?C0109?KEYSCAN:
+003383 C3                CLR      C
+003384 33                RLC      A
+003385         ?C0110?KEYSCAN:
+003385 D8FC              DJNZ     R0,?C0109?KEYSCAN
+003387 FD                MOV      R5,A
+  339: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+003388 EE                MOV      A,R6
+003389 2478              ADD      A,#078H
+00338B FB                MOV      R3,A
+00338C E4                CLR      A
+00338D 3480              ADDC     A,#080H
+00338F 8B82              MOV      DPL,R3
+003391 F583              MOV      DPH,A
+003393 E0                MOVX     A,@DPTR
+003394 FC                MOV      R4,A
+003395 ED                MOV      A,R5
+003396 F4                CPL      A
+003397 FB                MOV      R3,A
+003398 EC                MOV      A,R4
+003399 5B                ANL      A,R3
+00339A F0                MOVX     @DPTR,A
+00339B EE                MOV      A,R6
+00339C 2470              ADD      A,#070H
+00339E F582              MOV      DPL,A
+0033A0 E4                CLR      A
+0033A1 3480              ADDC     A,#080H
+0033A3 F583              MOV      DPH,A
+0033A5 E0                MOVX     A,@DPTR
+0033A6 4D                ORL      A,R5
+0033A7 F0                MOVX     @DPTR,A
+0033A8 EE                MOV      A,R6
+0033A9 2474              ADD      A,#074H
+0033AB F582              MOV      DPL,A
+0033AD E4                CLR      A
+0033AE 3480              ADDC     A,#080H
+0033B0 F583              MOV      DPH,A
+0033B2 E0                MOVX     A,@DPTR
+0033B3 5B                ANL      A,R3
+0033B4 F0                MOVX     @DPTR,A
+0033B5 90811C            MOV      DPTR,#0811CH
+0033B8 E0                MOVX     A,@DPTR
+0033B9 F4                CPL      A
+0033BA FC                MOV      R4,A
+0033BB 74A8              MOV      A,#LOW ksSelMapCheck
+0033BD 2F                ADD      A,R7
+0033BE F582              MOV      DPL,A
+0033C0 E4                CLR      A
+0033C1 344D              ADDC     A,#HIGH ksSelMapCheck
+0033C3 F583              MOV      DPH,A
+0033C5 EC                MOV      A,R4
+0033C6 F0                MOVX     @DPTR,A
+0033C7 EE                MOV      A,R6
+0033C8 2478              ADD      A,#078H
+0033CA FB                MOV      R3,A
+0033CB E4                CLR      A
+0033CC 3480              ADDC     A,#080H
+0033CE 8B82              MOV      DPL,R3
+0033D0 F583              MOV      DPH,A
+0033D2 E0                MOVX     A,@DPTR
+0033D3 4D                ORL      A,R5
+0033D4 F0                MOVX     @DPTR,A
+0033D5 EE                MOV      A,R6
+0033D6 2470              ADD      A,#070H
+0033D8 FB                MOV      R3,A
+0033D9 E4                CLR      A
+0033DA 3480              ADDC     A,#080H
+0033DC 8B82              MOV      DPL,R3
+0033DE F583              MOV      DPH,A
+0033E0 E0                MOVX     A,@DPTR
+0033E1 FC                MOV      R4,A
+0033E2 ED                MOV      A,R5
+0033E3 F4                CPL      A
+0033E4 FB                MOV      R3,A
+0033E5 EC                MOV      A,R4
+0033E6 5B                ANL      A,R3
+0033E7 F0                MOVX     @DPTR,A
+  340: 	}
+0033E8 0F                INC      R7
+0033E9 6168              AJMP     ?C0049?KEYSCAN
+0033EB         ?C0050?KEYSCAN:
+  341: 
+  342: 	for (i=0; col[i]!=0; i++) {
+0033EB E4                CLR      A
+0033EC FF                MOV      R7,A
+0033ED         ?C0052?KEYSCAN:
+0033ED EF                MOV      A,R7
+0033EE 900681            MOV      DPTR,#col
+0033F1 93                MOVC     A,@A+DPTR
+0033F2 6040              JZ       ?C0056?KEYSCAN
+  343: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+0033F4 74BC              MOV      A,#LOW ksSelMapCurr
+0033F6 2F                ADD      A,R7
+0033F7 F582              MOV      DPL,A
+0033F9 E4                CLR      A
+0033FA 344D              ADDC     A,#HIGH ksSelMapCurr
+0033FC F583              MOV      DPH,A
+0033FE E0                MOVX     A,@DPTR
+0033FF FE                MOV      R6,A
+003400 74A8              MOV      A,#LOW ksSelMapCheck
+003402 2F                ADD      A,R7
+003403 F582              MOV      DPL,A
+003405 E4                CLR      A
+003406 344D              ADDC     A,#HIGH ksSelMapCheck
+003408 F583              MOV      DPH,A
+00340A E0                MOVX     A,@DPTR
+00340B 6E                XRL      A,R6
+00340C 6023              JZ       ?C0054?KEYSCAN
+  344: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
+00340E 74BC              MOV      A,#LOW ksSelMapCurr
+003410 2F                ADD      A,R7
+003411 F582              MOV      DPL,A
+003413 E4                CLR      A
+003414 344D              ADDC     A,#HIGH ksSelMapCurr
+003416 F583              MOV      DPH,A
+003418 C083              PUSH     DPH
+00341A C082              PUSH     DPL
+00341C E0                MOVX     A,@DPTR
+00341D FE                MOV      R6,A
+00341E 74A8              MOV      A,#LOW ksSelMapCheck
+003420 2F                ADD      A,R7
+003421 F582              MOV      DPL,A
+003423 E4                CLR      A
+003424 344D              ADDC     A,#HIGH ksSelMapCheck
+003426 F583              MOV      DPH,A
+003428 E0                MOVX     A,@DPTR
+003429 FD                MOV      R5,A
+00342A EE                MOV      A,R6
+00342B 5D                ANL      A,R5
+00342C D082              POP      DPL
+00342E D083              POP      DPH
+003430 F0                MOVX     @DPTR,A
+  345: 		}
+  346: 	}
+003431         ?C0054?KEYSCAN:
+003431 0F                INC      R7
+003432 80B9              SJMP     ?C0052?KEYSCAN
+  347: }
+003434         ?C0056?KEYSCAN:
+003434 22                RET      
+----- FUNCTION KS_ScanMatrix (END) -------
+
+
+----- FUNCTION LED_device_poweroff (BEGIN) -----
+ FILE: 'led.c'
+   34: void LED_device_poweroff()
+   35: {
+   36: 	if(g_variable.current_device_num == 1)
+   37: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+003435 904CC3            MOV      DPTR,#g_variable+04H
+003438 E0                MOVX     A,@DPTR
+003439 B40107            CJNE     A,#01H,?C0009?LED
+   38: 	else if(g_variable.current_device_num == 2)
+00343C C201              CLR      ?_GPIO_Setout?BIT
+00343E 7FFF              MOV      R7,#0FFH
+003440 020AEC            LJMP     _GPIO_Setout
+003443         ?C0009?LED:
+   39: 		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+003443 904CC3            MOV      DPTR,#g_variable+04H
+003446 E0                MOVX     A,@DPTR
+003447 B40207            CJNE     A,#02H,?C0011?LED
+   40: 	else if(g_variable.current_device_num == 3)
+00344A C201              CLR      ?_GPIO_Setout?BIT
+00344C 7FFF              MOV      R7,#0FFH
+00344E 020AEC            LJMP     _GPIO_Setout
+003451         ?C0011?LED:
+   41: 	{	
+003451 904CC3            MOV      DPTR,#g_variable+04H
+003454 E0                MOVX     A,@DPTR
+003455 B40307            CJNE     A,#03H,?C0013?LED
+   42: 		GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
+   43: 	}
+003458 C206              CLR      ?_GPIO_SetOutput?BIT
+00345A 7FFF              MOV      R7,#0FFH
+00345C 020EF4            LJMP     _GPIO_SetOutput
+   44: 	else
+00345F         ?C0013?LED:
+   45: 	{
+   46: 		GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
+00345F C206              CLR      ?_GPIO_SetOutput?BIT
+003461 7F0F              MOV      R7,#0FH
+003463 020EF4            LJMP     _GPIO_SetOutput
+   47: 	}
+----- FUNCTION LED_device_poweroff (END) -------
+
+
+----- FUNCTION systey_ledflash_1s (BEGIN) -----
+ FILE: 'sys.c'
+  813: static void systey_ledflash_1s()
+  814: {
+  815:         	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+  816: 		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+>> 
+003466 904CC9            MOV      DPTR,#g_variable+0AH
+003469 E0                MOVX     A,@DPTR
+00346A 6404              XRL      A,#04H
+00346C 600F              JZ       ?C0136?SYS
+00346E 904CC7            MOV      DPTR,#g_variable+08H
+003471 E0                MOVX     A,@DPTR
+003472 6404              XRL      A,#04H
+003474 6007              JZ       ?C0136?SYS
+003476 904CC5            MOV      DPTR,#g_variable+06H
+003479 E0                MOVX     A,@DPTR
+00347A B4031C            CJNE     A,#03H,?C0139?SYS
+00347D         ?C0136?SYS:
+  817: 	{
+  818: 	            g_variable.systemlednum++;
+00347D 904D20            MOV      DPTR,#g_variable+061H
+003480 E0                MOVX     A,@DPTR
+003481 04                INC      A
+003482 F0                MOVX     @DPTR,A
+  819: 	            if(g_variable.systemlednum == 1)
+003483 E0                MOVX     A,@DPTR
+003484 B40103            CJNE     A,#01H,?C0137?SYS
+  820: 	            {
+  821: 	                      // GPIO_Setout(BT_LED_GPIO, LED_ON);
+  822: 	                      LED_device_poweron();
+003487 120FA2            LCALL    LED_device_poweron
+  823: 	            }
+00348A         ?C0137?SYS:
+  824: 	            if(g_variable.systemlednum == 2)
+00348A 904D20            MOV      DPTR,#g_variable+061H
+00348D E0                MOVX     A,@DPTR
+00348E B40208            CJNE     A,#02H,?C0139?SYS
+  825: 	            {
+  826: 	                       g_variable.systemlednum = 0;
+003491 E4                CLR      A
+003492 F0                MOVX     @DPTR,A
+  827: 	                       g_variable.systemflag = 0;
+003493 904D1F            MOV      DPTR,#g_variable+060H
+003496 F0                MOVX     @DPTR,A
+  828: 	                       LED_device_poweroff();
+003497 9135              ACALL    LED_device_poweroff
+  829: 	                   //    if(g_variable.caplockledflag == 0)
+  830: 	                        //   GPIO_Setout(BT_LED_GPIO, LED_OFF);
+  831: 	            }	            
+  832: 	}
+  833: }
+003499         ?C0139?SYS:
+003499 22                RET      
+----- FUNCTION systey_ledflash_1s (END) -------
+
+
+----- FUNCTION kb_cb_Timer100ms (BEGIN) -----
+ FILE: 'sys.c'
+  862: static void kb_cb_Timer100ms()
+  863: {
+  864: 
+  865: 	if (g_variable.delay_enter_lpm_timer) 
+00349A 904CEA            MOV      DPTR,#g_variable+02BH
+00349D E0                MOVX     A,@DPTR
+00349E 6002              JZ       ?C0143?SYS
+  866: 	{
+  867: 		g_variable.delay_enter_lpm_timer --;
+0034A0 14                DEC      A
+0034A1 F0                MOVX     @DPTR,A
+  868: 	}
+0034A2         ?C0143?SYS:
+  869: 
+  870: 	if(g_variable.recon_delay)
+0034A2 904CEF            MOV      DPTR,#g_variable+030H
+0034A5 E0                MOVX     A,@DPTR
+0034A6 6002              JZ       ?C0144?SYS
+  871: 		g_variable.recon_delay--;
+0034A8 14                DEC      A
+0034A9 F0                MOVX     @DPTR,A
+0034AA         ?C0144?SYS:
+  872: 
+  873: 	if(g_variable.one_key_press_wait_release_timer)
+0034AA 904CF8            MOV      DPTR,#g_variable+039H
+0034AD E0                MOVX     A,@DPTR
+0034AE 600B              JZ       ?C0145?SYS
+  874: 	{
+  875: 		g_variable.one_key_press_wait_release_timer--;
+0034B0 14                DEC      A
+0034B1 F0                MOVX     @DPTR,A
+  876: 		if(!g_variable.one_key_press_wait_release_timer)
+0034B2 E0                MOVX     A,@DPTR
+0034B3 7006              JNZ      ?C0145?SYS
+  877: 			g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+0034B5 904CF4            MOV      DPTR,#g_variable+035H
+0034B8 7406              MOV      A,#06H
+0034BA F0                MOVX     @DPTR,A
+  878: 	}
+0034BB         ?C0145?SYS:
+  879: 	
+  880: 	if (g_variable.powerOn_timer != 0)
+0034BB 904CE5            MOV      DPTR,#g_variable+026H
+0034BE E0                MOVX     A,@DPTR
+0034BF 602C              JZ       ?C0147?SYS
+  881: 	{	
+  882: 		if(g_variable.pairing_g24_timeout ||g_variable.pairing_timeout)
+0034C1 904CEE            MOV      DPTR,#g_variable+02FH
+0034C4 E0                MOVX     A,@DPTR
+0034C5 7006              JNZ      ?C0149?SYS
+0034C7 904CE9            MOV      DPTR,#g_variable+02AH
+0034CA E0                MOVX     A,@DPTR
+0034CB 6006              JZ       ?C0148?SYS
+0034CD         ?C0149?SYS:
+  883: 		{
+  884: 			g_variable.powerOn_timer = 0;
+0034CD E4                CLR      A
+0034CE 904CE5            MOV      DPTR,#g_variable+026H
+0034D1 F0                MOVX     @DPTR,A
+0034D2 22                RET      
+  885: 			return;
+  886: 		}
+0034D3         ?C0148?SYS:
+  887: 			
+  888: 		g_variable.powerOn_timer--;
+0034D3 904CE5            MOV      DPTR,#g_variable+026H
+0034D6 E0                MOVX     A,@DPTR
+0034D7 14                DEC      A
+0034D8 F0                MOVX     @DPTR,A
+  889: 		LED_device_poweron();
+0034D9 120FA2            LCALL    LED_device_poweron
+  890: 		if (!g_variable.powerOn_timer)
+0034DC 904CE5            MOV      DPTR,#g_variable+026H
+0034DF E0                MOVX     A,@DPTR
+0034E0 7057              JNZ      ?C0152?SYS
+  891: 		{
+  892: 			LED_device_poweroff();
+0034E2 9135              ACALL    LED_device_poweroff
+  893: 			GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
+0034E4 C206              CLR      ?_GPIO_SetOutput?BIT
+0034E6 7FFF              MOV      R7,#0FFH
+0034E8 120EF4            LCALL    _GPIO_SetOutput
+  894: 		}
+  895: 	}
+0034EB 804C              SJMP     ?C0152?SYS
+0034ED         ?C0147?SYS:
+  896: 	else	if ((g_variable.pairing_timeout == 0) && (g_variable.pairing_g24_timeout == 0))  //  pairing
+0034ED 904CE9            MOV      DPTR,#g_variable+02AH
+0034F0 E0                MOVX     A,@DPTR
+0034F1 7046              JNZ      ?C0152?SYS
+0034F3 904CEE            MOV      DPTR,#g_variable+02FH
+0034F6 E0                MOVX     A,@DPTR
+0034F7 7040              JNZ      ?C0152?SYS
+  897: 	{
+  898: 		if(g_variable.battery_low_led_flash_interval)
+0034F9 904CE2            MOV      DPTR,#g_variable+023H
+0034FC E0                MOVX     A,@DPTR
+0034FD 603A              JZ       ?C0152?SYS
+  899: 		{
+  900: 			g_variable.battery_low_led_flash_interval--;
+0034FF 14                DEC      A
+003500 F0                MOVX     @DPTR,A
+  901: 			if(g_variable.battery_low_led_flash_interval < 8)
+003501 E0                MOVX     A,@DPTR
+003502 FF                MOV      R7,A
+003503 C3                CLR      C
+003504 9408              SUBB     A,#08H
+003506 501B              JNC      ?C0155?SYS
+  902: 			{
+  903: 				m_lpm_mode = 0;
+003508 E4                CLR      A
+003509 904131            MOV      DPTR,#m_lpm_mode
+00350C F0                MOVX     @DPTR,A
+  904: 				if(g_variable.battery_low_led_flash_interval & 0x02)
+00350D EF                MOV      A,R7
+00350E 30E109            JNB      ACC.1,?C0156?SYS
+  905: 				{
+  906: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+003511 D201              SETB     ?_GPIO_Setout?BIT
+003513 7F0F              MOV      R7,#0FH
+003515 120AEC            LCALL    _GPIO_Setout
+  907: 				}
+003518 8016              SJMP     ?C0158?SYS
+00351A         ?C0156?SYS:
+  908: 				else
+  909: 				{
+  910: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
+00351A C201              CLR      ?_GPIO_Setout?BIT
+00351C 7F0F              MOV      R7,#0FH
+00351E 120AEC            LCALL    _GPIO_Setout
+  911: 				}	
+  912: 			}
+003521 800D              SJMP     ?C0158?SYS
+003523         ?C0155?SYS:
+  913: 			else
+  914: 			{
+  915: 				m_lpm_mode = 1;
+003523 904131            MOV      DPTR,#m_lpm_mode
+003526 7401              MOV      A,#01H
+003528 F0                MOVX     @DPTR,A
+  916: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+003529 C201              CLR      ?_GPIO_Setout?BIT
+00352B 7F0F              MOV      R7,#0FH
+00352D 120AEC            LCALL    _GPIO_Setout
+  917: 			}	
+003530         ?C0158?SYS:
+  918: 			if(!g_variable.battery_low_led_flash_interval)
+003530 904CE2            MOV      DPTR,#g_variable+023H
+003533 E0                MOVX     A,@DPTR
+003534 7003              JNZ      ?C0152?SYS
+  919: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+003536 740C              MOV      A,#0CH
+003538 F0                MOVX     @DPTR,A
+  920: 		}
+  921: 	}
+003539         ?C0152?SYS:
+  922: 	
+  923: // The dongle must receive data within 200ms, otherwise it will be forced to lift
+  924: 	if(!long_press_flag)
+003539 904DEF            MOV      DPTR,#long_press_flag
+00353C E0                MOVX     A,@DPTR
+00353D 7036              JNZ      ?C0160?SYS
+  925: 	{
+  926: 		if (repeat_send_24g == 1)
+00353F 904DF0            MOV      DPTR,#repeat_send_24g
+003542 E0                MOVX     A,@DPTR
+003543 6401              XRL      A,#01H
+003545 702E              JNZ      ?C0160?SYS
+  927: 		{
+  928: 			g_variable.sleepTimer = 0;	
+003547 904CE3            MOV      DPTR,#g_variable+024H
+00354A F0                MOVX     @DPTR,A
+00354B A3                INC      DPTR
+00354C F0                MOVX     @DPTR,A
+  929: 			repeat_send_24g = 0;
+00354D 904DF0            MOV      DPTR,#repeat_send_24g
+003550 F0                MOVX     @DPTR,A
+  930: 
+  931: 			 if (multikey[0] != 0)
+003551 904E60            MOV      DPTR,#multikey
+003554 E0                MOVX     A,@DPTR
+003555 600D              JZ       ?C0162?SYS
+  932: 			{
+  933: 				IPC_TxHidData(multikey, 3);
+003557 7B01              MOV      R3,#01H
+003559 7A4E              MOV      R2,#HIGH multikey
+00355B 7960              MOV      R1,#LOW multikey
+00355D 7D03              MOV      R5,#03H
+00355F 1218C4            LCALL    _IPC_TxHidData
+  934: 			}
+003562 8011              SJMP     ?C0160?SYS
+003564         ?C0162?SYS:
+  935: 			else if (hidBuff[0] != 0)
+003564 904800            MOV      DPTR,#hidBuff
+003567 E0                MOVX     A,@DPTR
+003568 600B              JZ       ?C0160?SYS
+  936: 			{
+  937: 
+  938: 				IPC_TxHidData(hidBuff,9);
+00356A 7B01              MOV      R3,#01H
+00356C 7A48              MOV      R2,#HIGH hidBuff
+00356E 7900              MOV      R1,#LOW hidBuff
+003570 7D09              MOV      R5,#09H
+003572 1218C4            LCALL    _IPC_TxHidData
+  939: 			}
+  940: 		}
+  941: 	}
+003575         ?C0160?SYS:
+  942: 
+  943: //role switch time out
+  944: 	if (switch_role_timer != 0)
+003575 904DEA            MOV      DPTR,#switch_role_timer
+003578 E0                MOVX     A,@DPTR
+003579 6009              JZ       ?C0165?SYS
+  945: 	{
+  946: 		switch_role_timer--; 
+00357B E0                MOVX     A,@DPTR
+00357C 14                DEC      A
+00357D F0                MOVX     @DPTR,A
+  947: 		if (switch_role_timer == 0)
+00357E E0                MOVX     A,@DPTR
+00357F 7003              JNZ      ?C0165?SYS
+  948: 		{
+  949: 			System_Reset_Connect();
+003581 120FD8            LCALL    System_Reset_Connect
+  950: 		}
+  951: 	}
+003584         ?C0165?SYS:
+  952: 
+  953: // ble delay send secutiry request
+  954: 	if(ble_send_secutiry_request_timer)
+003584 904DD4            MOV      DPTR,#ble_send_secutiry_request_timer
+003587 E0                MOVX     A,@DPTR
+003588 6011              JZ       ?C0167?SYS
+  955: 	{
+  956: 		ble_send_secutiry_request_timer--;
+00358A E0                MOVX     A,@DPTR
+00358B 14                DEC      A
+00358C F0                MOVX     @DPTR,A
+  957: 		if(!ble_send_secutiry_request_timer)
+00358D E0                MOVX     A,@DPTR
+00358E 700B              JNZ      ?C0167?SYS
+  958: 		{
+  959: 			if(!m_le_send_security_request_flag)
+003590 904D3D            MOV      DPTR,#m_le_send_security_request_flag
+003593 E0                MOVX     A,@DPTR
+003594 7005              JNZ      ?C0167?SYS
+  960: 			{
+  961: 				IPC_TxControlCmd(IPC_CMD_LE_SMP_SECURITY_REQUEST);
+003596 7F1B              MOV      R7,#01BH
+003598 12085F            LCALL    _IPC_TxControlCmd
+  962: 			}
+  963: 		}
+  964: 	}
+00359B         ?C0167?SYS:
+  965: 
+  966: 	if (delayChgInvTimer != 0)
+00359B 904DF9            MOV      DPTR,#delayChgInvTimer
+00359E E0                MOVX     A,@DPTR
+00359F 6029              JZ       ?C0150?SYS
+  967: 	{
+  968: 		delayChgInvTimer--;
+0035A1 E0                MOVX     A,@DPTR
+0035A2 14                DEC      A
+0035A3 F0                MOVX     @DPTR,A
+  969: 		if (delayChgInvTimer == 0)
+0035A4 E0                MOVX     A,@DPTR
+0035A5 7023              JNZ      ?C0150?SYS
+  970: 		{
+  971: 			if( m_24g_led_flag)
+0035A7 904D46            MOV      DPTR,#m_24g_led_flag
+0035AA E0                MOVX     A,@DPTR
+0035AB 6002              JZ       ?C0172?SYS
+  972: 			{
+  973: 				m_24g_led_flag = 0;
+0035AD E4                CLR      A
+0035AE F0                MOVX     @DPTR,A
+  974: 			}	
+0035AF         ?C0172?SYS:
+  975: 	
+  976: 			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+0035AF 904CC7            MOV      DPTR,#g_variable+08H
+0035B2 E0                MOVX     A,@DPTR
+0035B3 B40407            CJNE     A,#04H,?C0173?SYS
+  977: 			{
+  978: 				kscurrmult = 0x0c;
+0035B6 904213            MOV      DPTR,#kscurrmult
+0035B9 740C              MOV      A,#0CH
+0035BB F0                MOVX     @DPTR,A
+  979: 			}
+0035BC 22                RET      
+0035BD         ?C0173?SYS:
+  980: 			else if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+0035BD 904CC9            MOV      DPTR,#g_variable+0AH
+0035C0 E0                MOVX     A,@DPTR
+0035C1 B40406            CJNE     A,#04H,?C0150?SYS
+  981: 			{
+  982: 				kscurrmult = 0x3a;
+0035C4 904213            MOV      DPTR,#kscurrmult
+0035C7 743A              MOV      A,#03AH
+0035C9 F0                MOVX     @DPTR,A
+  983: 			}
+  984: 		}
+  985: 	}
+  986: }
+0035CA         ?C0150?SYS:
+0035CA 22                RET      
+----- FUNCTION kb_cb_Timer100ms (END) -------
+
+
+----- FUNCTION _kb_cb_Hid (BEGIN) -----
+ FILE: 'sys.c'
+  112: static void kb_cb_Hid(byte *p,byte len) {
+  113: 	//p[0] is hid type,always is 1(kb) now
+0035CB 904F22            MOV      DPTR,#len
+0035CE ED                MOV      A,R5
+0035CF F0                MOVX     @DPTR,A
+;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
+  114: 	byte temp = p[1];
+0035D0 900001            MOV      DPTR,#01H
+0035D3 1203CF            LCALL    ?C?CLDOPTR
+0035D6 904F23            MOV      DPTR,#temp
+0035D9 F0                MOVX     @DPTR,A
+  115: 
+  116: 	if (len<2) {
+  117: 		return;
+  118: 	}
+  119: }
+0035DA 22                RET      
+----- FUNCTION _kb_cb_Hid (END) -------
+
+
+----- FUNCTION YC_wait_disconnect_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  582: void YC_wait_disconnect_timer500ms()
+  583: {
+  584: //before discovery/adv,if current state is connected,wait disconnect done
+  585: 	if (action_timeout!=0)
+0035DB 904DFF            MOV      DPTR,#action_timeout
+0035DE E0                MOVX     A,@DPTR
+0035DF 604C              JZ       ?C0108?SYS
+  586: 	{
+  587: 		action_timeout--;
+0035E1 E0                MOVX     A,@DPTR
+0035E2 14                DEC      A
+0035E3 F0                MOVX     @DPTR,A
+  588: 		if(action_timeout == 0)
+0035E4 E0                MOVX     A,@DPTR
+0035E5 7046              JNZ      ?C0108?SYS
+  589: 		{
+  590: 			if(g_variable.key_action == KEY_DISCOVERY
+0035E7 904CED            MOV      DPTR,#g_variable+02EH
+0035EA E0                MOVX     A,@DPTR
+0035EB 6405              XRL      A,#05H
+0035ED 703E              JNZ      ?C0108?SYS
+0035EF 9047F4            MOV      DPTR,#m_ui_state_map
+0035F2 E0                MOVX     A,@DPTR
+0035F3 5440              ANL      A,#040H
+0035F5 FE                MOV      R6,A
+0035F6 A3                INC      DPTR
+0035F7 E0                MOVX     A,@DPTR
+0035F8 5408              ANL      A,#08H
+0035FA 6408              XRL      A,#08H
+0035FC 7003              JNZ      ?C0191?SYS
+0035FE EE                MOV      A,R6
+0035FF 6440              XRL      A,#040H
+003601         ?C0191?SYS:
+003601 602A              JZ       ?C0108?SYS
+  591: 		#if DEVICE_MODE_BT_ONLY
+  592: 			&& (m_ui_state_map & 0x4000) != 0x4000)
+  593: 		#elif DEVICE_MODE_BLE_ONLY	
+  594: 			&& (m_ui_state_map & 0x0008) != 0x0008)
+  595: 		#else	
+  596: 			&& (m_ui_state_map & 0x4008) != 0x4008)
+  597: 		#endif
+  598: 			{
+  599: 				IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);		
+003603 7F1E              MOV      R7,#01EH
+003605 12085F            LCALL    _IPC_TxControlCmd
+  600: //				m_lpm_mode = 0;
+  601: 				ble_send_secutiry_request_timer = 0;
+003608 E4                CLR      A
+003609 904DD4            MOV      DPTR,#ble_send_secutiry_request_timer
+00360C F0                MOVX     @DPTR,A
+  602: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+00360D 904CE9            MOV      DPTR,#g_variable+02AH
+003610 74F0              MOV      A,#0F0H
+003612 F0                MOVX     @DPTR,A
+  603: 				g_variable.pairing_g24_timeout = 0;
+003613 E4                CLR      A
+003614 904CEE            MOV      DPTR,#g_variable+02FH
+003617 F0                MOVX     @DPTR,A
+  604: 				fast_connect_flag = 0;
+003618 904E69            MOV      DPTR,#fast_connect_flag
+00361B F0                MOVX     @DPTR,A
+  605: 				ble_fast_connect_flag = 0;
+00361C 904DD3            MOV      DPTR,#ble_fast_connect_flag
+00361F F0                MOVX     @DPTR,A
+  606: 			#if DEVICE_MODE_BT_ONLY
+  607: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+  608: 			#elif DEVICE_MODE_BLE_ONLY	
+  609: 				YC_get_ble_ramdon_lap();
+  610: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
+  611: 			#else	
+  612: 				YC_get_ble_ramdon_lap();
+003620 1227E3            LCALL    YC_get_ble_ramdon_lap
+  613: 				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+003623 7F2C              MOV      R7,#02CH
+003625 12085F            LCALL    _IPC_TxControlCmd
+  614: 			#endif
+  615: 				g_variable.key_action = KEY_NONE;
+003628 E4                CLR      A
+003629 904CED            MOV      DPTR,#g_variable+02EH
+00362C F0                MOVX     @DPTR,A
+  616: 			}
+  617: 		}
+  618: 	}
+  619: 
+  620: }
+00362D         ?C0108?SYS:
+00362D 22                RET      
+----- FUNCTION YC_wait_disconnect_timer500ms (END) -------
+
+
+----- FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  623: void YC_pairing_timerout_500ms()
+  624: {
+  625: //pairing timer
+  626: 	if (g_variable.pairing_timeout != 0)
+00362E 904CE9            MOV      DPTR,#g_variable+02AH
+003631 E0                MOVX     A,@DPTR
+003632 6028              JZ       ?C0109?SYS
+  627: 	{
+  628: 		g_variable.sleepTimer = 0;
+003634 E4                CLR      A
+003635 904CE3            MOV      DPTR,#g_variable+024H
+003638 F0                MOVX     @DPTR,A
+003639 A3                INC      DPTR
+00363A F0                MOVX     @DPTR,A
+  629: 		g_variable.fast_connect_send_name = 0;
+00363B 904CFC            MOV      DPTR,#g_variable+03DH
+00363E F0                MOVX     @DPTR,A
+  630: 		g_variable.pairing_timeout--;
+00363F 904CE9            MOV      DPTR,#g_variable+02AH
+003642 E0                MOVX     A,@DPTR
+003643 14                DEC      A
+003644 F0                MOVX     @DPTR,A
+  631: 		if (g_variable.pairing_timeout == 0)
+003645 E0                MOVX     A,@DPTR
+003646 7014              JNZ      ?C0109?SYS
+  632: 		{
+  633: 			g_variable.current_device_num = g_variable.temp_device_num;
+003648 904CC4            MOV      DPTR,#g_variable+05H
+00364B E0                MOVX     A,@DPTR
+00364C 904CC3            MOV      DPTR,#g_variable+04H
+00364F F0                MOVX     @DPTR,A
+  634: 			g_variable.last_device_num = g_variable.current_device_num;
+003650 904CC0            MOV      DPTR,#g_variable+01H
+003653 F0                MOVX     @DPTR,A
+  635: 		
+  636: 			YC_key_action_handle(KEY_STOP_DISCOVERY);
+003654 7F0D              MOV      R7,#0DH
+003656 12091C            LCALL    _YC_key_action_handle
+  637: 			System_long_sleep();
+003659 120FCF            LCALL    System_long_sleep
+  638: 		}
+  639: 	}
+00365C         ?C0109?SYS:
+  640: 
+  641: 	if (g_variable.pairing_g24_timeout != 0)
+00365C 904CEE            MOV      DPTR,#g_variable+02FH
+00365F E0                MOVX     A,@DPTR
+003660 6018              JZ       ?C0113?SYS
+  642: 	{
+  643: 		g_variable.sleepTimer = 0;
+003662 E4                CLR      A
+003663 904CE3            MOV      DPTR,#g_variable+024H
+003666 F0                MOVX     @DPTR,A
+003667 A3                INC      DPTR
+003668 F0                MOVX     @DPTR,A
+  644: 		g_variable.pairing_g24_timeout--;
+003669 904CEE            MOV      DPTR,#g_variable+02FH
+00366C E0                MOVX     A,@DPTR
+00366D 14                DEC      A
+00366E F0                MOVX     @DPTR,A
+  645: 		if (g_variable.pairing_g24_timeout == 0)
+00366F E0                MOVX     A,@DPTR
+003670 7008              JNZ      ?C0113?SYS
+  646: 		{
+  647: //			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+  648: 			Delay1ms(10);
+003672 7F0A              MOV      R7,#0AH
+003674 120EC0            LCALL    _Delay1ms
+  649: 			System_long_sleep();
+003677 120FCF            LCALL    System_long_sleep
+  650: 		}
+  651: 	}
+  652: }
+00367A         ?C0113?SYS:
+00367A 22                RET      
+----- FUNCTION YC_pairing_timerout_500ms (END) -------
+
+
+----- FUNCTION kb_cb_init (BEGIN) -----
+ FILE: 'sys.c'
+ 1000: static void kb_cb_init()
+ 1001: {
+ 1002: 	IPC_Initialize(&cb);
+ 1003: }
+00367B 7B01              MOV      R3,#01H
+00367D 7A4E              MOV      R2,#HIGH cb
+00367F 796A              MOV      R1,#LOW cb
+;----                  JMP      _IPC_Initialize
+----- FUNCTION kb_cb_init (END) -------
+
+
+----- FUNCTION _IPC_Initialize (BEGIN) -----
+;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
+003681 787C              MOV      R0,#LOW ipcCb
+003683 7C4E              MOV      R4,#HIGH ipcCb
+003685 7D01              MOV      R5,#01H
+003687 7E00              MOV      R6,#00H
+003689 7F12              MOV      R7,#012H
+00368B 020390            LJMP     ?C?COPY
+----- FUNCTION _IPC_Initialize (END) -------
+
+
+----- FUNCTION YC_adc_init (BEGIN) -----
+ FILE: 'adc.c'
+    3: void YC_adc_init()
+    4: {
+    5: #ifdef  ADC_ENABLE
+    6: 	byte i;
+    7: 	
+    8: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+00368E 904CD3            MOV      DPTR,#g_variable+014H
+003691 7405              MOV      A,#05H
+003693 F0                MOVX     @DPTR,A
+    9: 	g_variable.battery_value_index = 0;
+003694 E4                CLR      A
+003695 A3                INC      DPTR
+003696 F0                MOVX     @DPTR,A
+   10: 
+   11: #ifdef ADC_TYPE_HVIN 	
+   12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+   13: 	{
+   14: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+   15: 	}
+   16: 	g_variable.battery_level_full = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V7+m_adc0vBase;
+   17: 	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V4+m_adc0vBase;
+   18: 	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+   19: #endif
+   20: #ifdef ADC_TYPE_VINLPM
+   21: 		for (i = 0; i < BAT_ARRAY_LEN; i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+003697 FF                MOV      R7,A
+003698         ?C0001?ADC:
+   22: 		{
+   23: 			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
+003698 EF                MOV      A,R7
+003699 25E0              ADD      A,ACC
+00369B 24D6              ADD      A,#LOW g_variable+017H
+00369D F582              MOV      DPL,A
+00369F E4                CLR      A
+0036A0 344C              ADDC     A,#HIGH g_variable+017H
+0036A2 F583              MOV      DPH,A
+0036A4 7451              MOV      A,#051H
+0036A6 F0                MOVX     @DPTR,A
+0036A7 A3                INC      DPTR
+0036A8 F0                MOVX     @DPTR,A
+   24: 		}
+0036A9 0F                INC      R7
+0036AA EF                MOV      A,R7
+0036AB B404EA            CJNE     A,#04H,?C0001?ADC
+0036AE         ?C0002?ADC:
+   25: 		g_variable.battery_level_full = m_adc3vValue;
+0036AE 904C93            MOV      DPTR,#m_adc3vValue
+0036B1 E0                MOVX     A,@DPTR
+0036B2 FF                MOV      R7,A
+0036B3 A3                INC      DPTR
+0036B4 E0                MOVX     A,@DPTR
+0036B5 904CFA            MOV      DPTR,#g_variable+03BH
+0036B8 CF                XCH      A,R7
+0036B9 F0                MOVX     @DPTR,A
+0036BA A3                INC      DPTR
+0036BB EF                MOV      A,R7
+0036BC F0                MOVX     @DPTR,A
+   26: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V4+m_adc0vBase;
+0036BD 904C91            MOV      DPTR,#m_adc0vBase
+0036C0 E0                MOVX     A,@DPTR
+0036C1 FE                MOV      R6,A
+0036C2 A3                INC      DPTR
+0036C3 E0                MOVX     A,@DPTR
+0036C4 FF                MOV      R7,A
+0036C5 C3                CLR      C
+0036C6 904C94            MOV      DPTR,#m_adc3vValue+01H
+0036C9 E0                MOVX     A,@DPTR
+0036CA 9F                SUBB     A,R7
+0036CB FD                MOV      R5,A
+0036CC 904C93            MOV      DPTR,#m_adc3vValue
+0036CF E0                MOVX     A,@DPTR
+0036D0 9E                SUBB     A,R6
+0036D1 FC                MOV      R4,A
+0036D2 E4                CLR      A
+0036D3 120206            LCALL    ?C?FCASTI
+0036D6 7B7B              MOV      R3,#07BH
+0036D8 7A14              MOV      R2,#014H
+0036DA 798E              MOV      R1,#08EH
+0036DC 783F              MOV      R0,#03FH
+0036DE 1200FB            LCALL    ?C?FPMUL
+0036E1 C004              PUSH     AR4
+0036E3 C005              PUSH     AR5
+0036E5 C006              PUSH     AR6
+0036E7 C007              PUSH     AR7
+0036E9 904C91            MOV      DPTR,#m_adc0vBase
+0036EC E0                MOVX     A,@DPTR
+0036ED FC                MOV      R4,A
+0036EE A3                INC      DPTR
+0036EF E0                MOVX     A,@DPTR
+0036F0 FD                MOV      R5,A
+0036F1 E4                CLR      A
+0036F2 120206            LCALL    ?C?FCASTI
+0036F5 D003              POP      AR3
+0036F7 D002              POP      AR2
+0036F9 D001              POP      AR1
+0036FB D000              POP      AR0
+0036FD 12000A            LCALL    ?C?FPADD
+003700 12023F            LCALL    ?C?CASTF
+003703 904CDE            MOV      DPTR,#g_variable+01FH
+003706 EE                MOV      A,R6
+003707 F0                MOVX     @DPTR,A
+003708 A3                INC      DPTR
+003709 EF                MOV      A,R7
+00370A F0                MOVX     @DPTR,A
+   27: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V1+m_adc0vBase;
+00370B 904C91            MOV      DPTR,#m_adc0vBase
+00370E E0                MOVX     A,@DPTR
+00370F FE                MOV      R6,A
+003710 A3                INC      DPTR
+003711 E0                MOVX     A,@DPTR
+003712 FF                MOV      R7,A
+003713 C3                CLR      C
+003714 904C94            MOV      DPTR,#m_adc3vValue+01H
+003717 E0                MOVX     A,@DPTR
+003718 9F                SUBB     A,R7
+003719 FD                MOV      R5,A
+00371A 904C93            MOV      DPTR,#m_adc3vValue
+00371D E0                MOVX     A,@DPTR
+00371E 9E                SUBB     A,R6
+00371F FC                MOV      R4,A
+003720 E4                CLR      A
+003721 120206            LCALL    ?C?FCASTI
+003724 7BB8              MOV      R3,#0B8H
+003726 7A1E              MOV      R2,#01EH
+003728 7985              MOV      R1,#085H
+00372A 783F              MOV      R0,#03FH
+00372C 1200FB            LCALL    ?C?FPMUL
+00372F C004              PUSH     AR4
+003731 C005              PUSH     AR5
+003733 C006              PUSH     AR6
+003735 C007              PUSH     AR7
+003737 904C91            MOV      DPTR,#m_adc0vBase
+00373A E0                MOVX     A,@DPTR
+00373B FC                MOV      R4,A
+00373C A3                INC      DPTR
+00373D E0                MOVX     A,@DPTR
+00373E FD                MOV      R5,A
+00373F E4                CLR      A
+003740 120206            LCALL    ?C?FCASTI
+003743 D003              POP      AR3
+003745 D002              POP      AR2
+003747 D001              POP      AR1
+003749 D000              POP      AR0
+00374B 12000A            LCALL    ?C?FPADD
+00374E 12023F            LCALL    ?C?CASTF
+003751 904CE0            MOV      DPTR,#g_variable+021H
+003754 EE                MOV      A,R6
+003755 F0                MOVX     @DPTR,A
+003756 A3                INC      DPTR
+003757 EF                MOV      A,R7
+003758 F0                MOVX     @DPTR,A
+   28: #endif
+   29: #ifdef ADC_TYPE_GPIO
+   30: 	m_adc_channel = ADC_CHANNEL;
+   31: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+   32: 	{
+   33: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE_GPIO;
+   34: 	}
+   35: 	g_variable.battery_level_full = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V5+m_adc0vBase;
+   36: 	g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
+   37: 	g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+   38: #endif
+   39: #else
+   40: 	m_le_battery_level_display_enable = 0;
+   41: #endif
+   42: }
+003759 22                RET      
+----- FUNCTION YC_adc_init (END) -------
+
+
+----- FUNCTION YC_adc_check (BEGIN) -----
+ FILE: 'adc.c'
+   44: void YC_adc_check() 
+   45: {
+   46: #ifdef  ADC_ENABLE
+   47: 	byte i;
+   48: 	ulong batValue = 0;
+00375A 904EF1            MOV      DPTR,#batValue
+00375D 120582            LCALL    ?C?LSTKXDATA
+003760 00                DB       00H
+003761 00                DB       00H
+003762 00                DB       00H
+003763 00                DB       00H
+   49: 
+   50: 	if(m_adcCurrentValue < m_adc0vBase)
+003764 904C91            MOV      DPTR,#m_adc0vBase
+003767 E0                MOVX     A,@DPTR
+003768 FE                MOV      R6,A
+003769 A3                INC      DPTR
+00376A E0                MOVX     A,@DPTR
+00376B FF                MOV      R7,A
+00376C C3                CLR      C
+00376D 904C96            MOV      DPTR,#m_adcCurrentValue+01H
+003770 E0                MOVX     A,@DPTR
+003771 9F                SUBB     A,R7
+003772 904C95            MOV      DPTR,#m_adcCurrentValue
+003775 E0                MOVX     A,@DPTR
+003776 9E                SUBB     A,R6
+003777 5003              JNC      $ + 5H
+003779 02397A            LJMP     ?C0006?ADC
+00377C         ?C0005?ADC:
+   51: 		return;
+   52: 
+   53: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
+00377C 904C95            MOV      DPTR,#m_adcCurrentValue
+00377F E0                MOVX     A,@DPTR
+003780 FE                MOV      R6,A
+003781 A3                INC      DPTR
+003782 E0                MOVX     A,@DPTR
+003783 FF                MOV      R7,A
+003784 904CD4            MOV      DPTR,#g_variable+015H
+003787 E0                MOVX     A,@DPTR
+003788 FD                MOV      R5,A
+003789 04                INC      A
+00378A F0                MOVX     @DPTR,A
+00378B ED                MOV      A,R5
+00378C 25E0              ADD      A,ACC
+00378E 24D6              ADD      A,#LOW g_variable+017H
+003790 F582              MOV      DPL,A
+003792 E4                CLR      A
+003793 344C              ADDC     A,#HIGH g_variable+017H
+003795 F583              MOV      DPH,A
+003797 EE                MOV      A,R6
+003798 F0                MOVX     @DPTR,A
+003799 A3                INC      DPTR
+00379A EF                MOV      A,R7
+00379B F0                MOVX     @DPTR,A
+   54: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+00379C 904CD4            MOV      DPTR,#g_variable+015H
+00379F E0                MOVX     A,@DPTR
+0037A0 C3                CLR      C
+0037A1 9404              SUBB     A,#04H
+0037A3 4002              JC       ?C0007?ADC
+   55: 		g_variable.battery_value_index = 0;
+0037A5 E4                CLR      A
+0037A6 F0                MOVX     @DPTR,A
+0037A7         ?C0007?ADC:
+   56: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+0037A7 E4                CLR      A
+0037A8 904EF0            MOV      DPTR,#i
+0037AB F0                MOVX     @DPTR,A
+0037AC         ?C0008?ADC:
+   57: 	{
+   58: 		batValue += g_variable.battery_value[i];
+0037AC 904EF1            MOV      DPTR,#batValue
+0037AF E0                MOVX     A,@DPTR
+0037B0 F8                MOV      R0,A
+0037B1 A3                INC      DPTR
+0037B2 E0                MOVX     A,@DPTR
+0037B3 F9                MOV      R1,A
+0037B4 A3                INC      DPTR
+0037B5 E0                MOVX     A,@DPTR
+0037B6 FA                MOV      R2,A
+0037B7 A3                INC      DPTR
+0037B8 E0                MOVX     A,@DPTR
+0037B9 FB                MOV      R3,A
+0037BA 904EF0            MOV      DPTR,#i
+0037BD E0                MOVX     A,@DPTR
+0037BE 25E0              ADD      A,ACC
+0037C0 24D6              ADD      A,#LOW g_variable+017H
+0037C2 F582              MOV      DPL,A
+0037C4 E4                CLR      A
+0037C5 344C              ADDC     A,#HIGH g_variable+017H
+0037C7 F583              MOV      DPH,A
+0037C9 E0                MOVX     A,@DPTR
+0037CA FE                MOV      R6,A
+0037CB A3                INC      DPTR
+0037CC E0                MOVX     A,@DPTR
+0037CD FF                MOV      R7,A
+0037CE E4                CLR      A
+0037CF FC                MOV      R4,A
+0037D0 FD                MOV      R5,A
+0037D1 EB                MOV      A,R3
+0037D2 2F                ADD      A,R7
+0037D3 FF                MOV      R7,A
+0037D4 EA                MOV      A,R2
+0037D5 3E                ADDC     A,R6
+0037D6 FE                MOV      R6,A
+0037D7 ED                MOV      A,R5
+0037D8 39                ADDC     A,R1
+0037D9 FD                MOV      R5,A
+0037DA EC                MOV      A,R4
+0037DB 38                ADDC     A,R0
+0037DC FC                MOV      R4,A
+0037DD 904EF1            MOV      DPTR,#batValue
+0037E0 120576            LCALL    ?C?LSTXDATA
+   59: 	}
+0037E3 904EF0            MOV      DPTR,#i
+0037E6 E0                MOVX     A,@DPTR
+0037E7 04                INC      A
+0037E8 F0                MOVX     @DPTR,A
+0037E9 E0                MOVX     A,@DPTR
+0037EA B404BF            CJNE     A,#04H,?C0008?ADC
+0037ED         ?C0009?ADC:
+   60: 	batValue = batValue/BAT_ARRAY_LEN;
+0037ED 904EF1            MOV      DPTR,#batValue
+0037F0 E0                MOVX     A,@DPTR
+0037F1 FC                MOV      R4,A
+0037F2 A3                INC      DPTR
+0037F3 E0                MOVX     A,@DPTR
+0037F4 FD                MOV      R5,A
+0037F5 A3                INC      DPTR
+0037F6 E0                MOVX     A,@DPTR
+0037F7 FE                MOV      R6,A
+0037F8 A3                INC      DPTR
+0037F9 E0                MOVX     A,@DPTR
+0037FA FF                MOV      R7,A
+0037FB E4                CLR      A
+0037FC 7B04              MOV      R3,#04H
+0037FE FA                MOV      R2,A
+0037FF F9                MOV      R1,A
+003800 F8                MOV      R0,A
+003801 1204C5            LCALL    ?C?ULDIV
+003804 904EF1            MOV      DPTR,#batValue
+003807 120576            LCALL    ?C?LSTXDATA
+   61: 
+   62: 	if(batValue <= g_variable.battery_level_shutdown)
+00380A 904CE0            MOV      DPTR,#g_variable+021H
+00380D E0                MOVX     A,@DPTR
+00380E FE                MOV      R6,A
+00380F A3                INC      DPTR
+003810 E0                MOVX     A,@DPTR
+003811 FF                MOV      R7,A
+003812 E4                CLR      A
+003813 FC                MOV      R4,A
+003814 FD                MOV      R5,A
+003815 904EF1            MOV      DPTR,#batValue
+003818 E0                MOVX     A,@DPTR
+003819 F8                MOV      R0,A
+00381A A3                INC      DPTR
+00381B E0                MOVX     A,@DPTR
+00381C F9                MOV      R1,A
+00381D A3                INC      DPTR
+00381E E0                MOVX     A,@DPTR
+00381F FA                MOV      R2,A
+003820 A3                INC      DPTR
+003821 E0                MOVX     A,@DPTR
+003822 FB                MOV      R3,A
+003823 D3                SETB     C
+003824 120565            LCALL    ?C?ULCMP
+003827 5007              JNC      ?C0011?ADC
+   63: 		g_variable.battery_level_percentage = 0;
+003829 E4                CLR      A
+00382A 904CF9            MOV      DPTR,#g_variable+03AH
+00382D F0                MOVX     @DPTR,A
+00382E 01B2              AJMP     ?C0012?ADC
+003830         ?C0011?ADC:
+   64: 	else	if(batValue >= g_variable.battery_level_full)
+003830 904CFA            MOV      DPTR,#g_variable+03BH
+003833 E0                MOVX     A,@DPTR
+003834 FE                MOV      R6,A
+003835 A3                INC      DPTR
+003836 E0                MOVX     A,@DPTR
+003837 FF                MOV      R7,A
+003838 E4                CLR      A
+003839 FC                MOV      R4,A
+00383A FD                MOV      R5,A
+00383B 904EF1            MOV      DPTR,#batValue
+00383E E0                MOVX     A,@DPTR
+00383F F8                MOV      R0,A
+003840 A3                INC      DPTR
+003841 E0                MOVX     A,@DPTR
+003842 F9                MOV      R1,A
+003843 A3                INC      DPTR
+003844 E0                MOVX     A,@DPTR
+003845 FA                MOV      R2,A
+003846 A3                INC      DPTR
+003847 E0                MOVX     A,@DPTR
+003848 FB                MOV      R3,A
+003849 C3                CLR      C
+00384A 120565            LCALL    ?C?ULCMP
+00384D 4008              JC       ?C0013?ADC
+   65: 		g_variable.battery_level_percentage = 100;
+00384F 904CF9            MOV      DPTR,#g_variable+03AH
+003852 7464              MOV      A,#064H
+003854 F0                MOVX     @DPTR,A
+003855 805B              SJMP     ?C0012?ADC
+003857         ?C0013?ADC:
+   66: 	else	
+   67: 		g_variable.battery_level_percentage = (byte)(((batValue - g_variable.battery_level_shutdown)*100)/(g_variable.b
+>> attery_level_full -g_variable.battery_level_shutdown) );
+003857 904CE0            MOV      DPTR,#g_variable+021H
+00385A E0                MOVX     A,@DPTR
+00385B FE                MOV      R6,A
+00385C A3                INC      DPTR
+00385D E0                MOVX     A,@DPTR
+00385E FF                MOV      R7,A
+00385F FB                MOV      R3,A
+003860 AA06              MOV      R2,AR6
+003862 E4                CLR      A
+003863 904EF1            MOV      DPTR,#batValue
+003866 E0                MOVX     A,@DPTR
+003867 FC                MOV      R4,A
+003868 A3                INC      DPTR
+003869 E0                MOVX     A,@DPTR
+00386A FD                MOV      R5,A
+00386B A3                INC      DPTR
+00386C E0                MOVX     A,@DPTR
+00386D FE                MOV      R6,A
+00386E A3                INC      DPTR
+00386F E0                MOVX     A,@DPTR
+003870 C3                CLR      C
+003871 9B                SUBB     A,R3
+003872 FF                MOV      R7,A
+003873 EE                MOV      A,R6
+003874 9A                SUBB     A,R2
+003875 FE                MOV      R6,A
+003876 ED                MOV      A,R5
+003877 9400              SUBB     A,#00H
+003879 FD                MOV      R5,A
+00387A EC                MOV      A,R4
+00387B 9400              SUBB     A,#00H
+00387D FC                MOV      R4,A
+00387E E4                CLR      A
+00387F 7B64              MOV      R3,#064H
+003881 FA                MOV      R2,A
+003882 F9                MOV      R1,A
+003883 F8                MOV      R0,A
+003884 12043A            LCALL    ?C?LMUL
+003887 C006              PUSH     AR6
+003889 C007              PUSH     AR7
+00388B 904CE0            MOV      DPTR,#g_variable+021H
+00388E E0                MOVX     A,@DPTR
+00388F FE                MOV      R6,A
+003890 A3                INC      DPTR
+003891 E0                MOVX     A,@DPTR
+003892 FF                MOV      R7,A
+003893 C3                CLR      C
+003894 904CFB            MOV      DPTR,#g_variable+03CH
+003897 E0                MOVX     A,@DPTR
+003898 9F                SUBB     A,R7
+003899 FF                MOV      R7,A
+00389A 904CFA            MOV      DPTR,#g_variable+03BH
+00389D E0                MOVX     A,@DPTR
+00389E 9E                SUBB     A,R6
+00389F FE                MOV      R6,A
+0038A0 AB07              MOV      R3,AR7
+0038A2 FA                MOV      R2,A
+0038A3 E4                CLR      A
+0038A4 F9                MOV      R1,A
+0038A5 F8                MOV      R0,A
+0038A6 D007              POP      AR7
+0038A8 D006              POP      AR6
+0038AA 1204C5            LCALL    ?C?ULDIV
+0038AD 904CF9            MOV      DPTR,#g_variable+03AH
+0038B0 EF                MOV      A,R7
+0038B1 F0                MOVX     @DPTR,A
+0038B2         ?C0012?ADC:
+   68: 	
+   69: 	if(batValue < g_variable.battery_level_shutdown)
+0038B2 904CE0            MOV      DPTR,#g_variable+021H
+0038B5 E0                MOVX     A,@DPTR
+0038B6 FE                MOV      R6,A
+0038B7 A3                INC      DPTR
+0038B8 E0                MOVX     A,@DPTR
+0038B9 FF                MOV      R7,A
+0038BA E4                CLR      A
+0038BB FC                MOV      R4,A
+0038BC FD                MOV      R5,A
+0038BD 904EF1            MOV      DPTR,#batValue
+0038C0 E0                MOVX     A,@DPTR
+0038C1 F8                MOV      R0,A
+0038C2 A3                INC      DPTR
+0038C3 E0                MOVX     A,@DPTR
+0038C4 F9                MOV      R1,A
+0038C5 A3                INC      DPTR
+0038C6 E0                MOVX     A,@DPTR
+0038C7 FA                MOV      R2,A
+0038C8 A3                INC      DPTR
+0038C9 E0                MOVX     A,@DPTR
+0038CA FB                MOV      R3,A
+0038CB C3                CLR      C
+0038CC 120565            LCALL    ?C?ULCMP
+0038CF 5027              JNC      ?C0015?ADC
+   70: 	{
+   71: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+0038D1 904CD5            MOV      DPTR,#g_variable+016H
+0038D4 7402              MOV      A,#02H
+0038D6 F0                MOVX     @DPTR,A
+   72: 		if(g_variable.last_battery_status != BAT_STATUS_SHUT_DOWN)
+0038D7 904D00            MOV      DPTR,#g_variable+041H
+0038DA E0                MOVX     A,@DPTR
+0038DB 6402              XRL      A,#02H
+0038DD 7002              JNZ      $ + 4H
+0038DF 2172              AJMP     ?C0017?ADC
+   73: 		{
+   74: 			g_variable.battery_shutdown_flag = 1;
+0038E1 904CFF            MOV      DPTR,#g_variable+040H
+0038E4 7401              MOV      A,#01H
+0038E6 F0                MOVX     @DPTR,A
+   75: 			IIC_WriteBlock(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+0038E7 FB                MOV      R3,A
+0038E8 7A4C              MOV      R2,#HIGH g_variable+040H
+0038EA 79FF              MOV      R1,#LOW g_variable+040H
+0038EC FD                MOV      R5,A
+0038ED 7C00              MOV      R4,#00H
+0038EF 7FC0              MOV      R7,#0C0H
+0038F1 7E7F              MOV      R6,#07FH
+0038F3 120E12            LCALL    _IIC_WriteBlock
+   76: 		}
+   77: 	}
+0038F6 807A              SJMP     ?C0017?ADC
+0038F8         ?C0015?ADC:
+   78: 	else
+   79: 	{
+   80: 		if((g_variable.last_battery_status == BAT_STATUS_SHUT_DOWN) ||(g_variable.battery_shutdown_flag == 1))
+0038F8 904D00            MOV      DPTR,#g_variable+041H
+0038FB E0                MOVX     A,@DPTR
+0038FC 6402              XRL      A,#02H
+0038FE 6007              JZ       ?C0019?ADC
+003900 904CFF            MOV      DPTR,#g_variable+040H
+003903 E0                MOVX     A,@DPTR
+003904 B40115            CJNE     A,#01H,?C0018?ADC
+003907         ?C0019?ADC:
+   81: 		{
+   82: 			g_variable.battery_shutdown_flag = 0;
+003907 E4                CLR      A
+003908 904CFF            MOV      DPTR,#g_variable+040H
+00390B F0                MOVX     @DPTR,A
+   83: 			IIC_WriteBlock(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+00390C 7B01              MOV      R3,#01H
+00390E 7A4C              MOV      R2,#HIGH g_variable+040H
+003910 79FF              MOV      R1,#LOW g_variable+040H
+003912 7D01              MOV      R5,#01H
+003914 FC                MOV      R4,A
+003915 7FC0              MOV      R7,#0C0H
+003917 7E7F              MOV      R6,#07FH
+003919 120E12            LCALL    _IIC_WriteBlock
+   84: 		}
+00391C         ?C0018?ADC:
+   85: 		
+   86: 		if (batValue < g_variable.battery_level_low)
+00391C 904CDE            MOV      DPTR,#g_variable+01FH
+00391F E0                MOVX     A,@DPTR
+003920 FE                MOV      R6,A
+003921 A3                INC      DPTR
+003922 E0                MOVX     A,@DPTR
+003923 FF                MOV      R7,A
+003924 E4                CLR      A
+003925 FC                MOV      R4,A
+003926 FD                MOV      R5,A
+003927 904EF1            MOV      DPTR,#batValue
+00392A E0                MOVX     A,@DPTR
+00392B F8                MOV      R0,A
+00392C A3                INC      DPTR
+00392D E0                MOVX     A,@DPTR
+00392E F9                MOV      R1,A
+00392F A3                INC      DPTR
+003930 E0                MOVX     A,@DPTR
+003931 FA                MOV      R2,A
+003932 A3                INC      DPTR
+003933 E0                MOVX     A,@DPTR
+003934 FB                MOV      R3,A
+003935 C3                CLR      C
+003936 120565            LCALL    ?C?ULCMP
+003939 501D              JNC      ?C0020?ADC
+   87: 		{
+   88: 			g_variable.battery_status = BAT_STATUS_LOW;
+00393B 904CD5            MOV      DPTR,#g_variable+016H
+00393E 7401              MOV      A,#01H
+003940 F0                MOVX     @DPTR,A
+   89: 			if(!g_variable.g24_long_sleep_flag)
+003941 904D01            MOV      DPTR,#g_variable+042H
+003944 E0                MOVX     A,@DPTR
+003945 702B              JNZ      ?C0017?ADC
+   90: 			{
+   91: 			m_24g_enter_hibernate[0]	= 0x00;
+003947 904D40            MOV      DPTR,#m_24g_enter_hibernate
+00394A F0                MOVX     @DPTR,A
+   92: 			m_24g_enter_hibernate[1]	= 0x48;
+00394B A3                INC      DPTR
+00394C 7448              MOV      A,#048H
+00394E F0                MOVX     @DPTR,A
+   93: 			m_24g_enter_hibernate[2]	= 0x12;		// 100ms
+00394F A3                INC      DPTR
+003950 7412              MOV      A,#012H
+003952 F0                MOVX     @DPTR,A
+   94: 			m_24g_enter_hibernate[3]	= 0x00;
+003953 E4                CLR      A
+003954 A3                INC      DPTR
+003955 F0                MOVX     @DPTR,A
+   95: 			}
+   96: 		}
+003956 801A              SJMP     ?C0017?ADC
+003958         ?C0020?ADC:
+   97: 		else
+   98: 		{
+   99: 			g_variable.battery_status = BAT_STATUS_NONE;
+003958 E4                CLR      A
+003959 904CD5            MOV      DPTR,#g_variable+016H
+00395C F0                MOVX     @DPTR,A
+  100: 			if(!g_variable.g24_long_sleep_flag)
+00395D 904D01            MOV      DPTR,#g_variable+042H
+003960 E0                MOVX     A,@DPTR
+003961 700F              JNZ      ?C0017?ADC
+  101: 			{
+  102: 			m_24g_enter_hibernate[0]	= 0x00;
+003963 904D40            MOV      DPTR,#m_24g_enter_hibernate
+003966 F0                MOVX     @DPTR,A
+  103: 			m_24g_enter_hibernate[1]	= 0x48;
+003967 A3                INC      DPTR
+003968 7448              MOV      A,#048H
+00396A F0                MOVX     @DPTR,A
+  104: 			m_24g_enter_hibernate[2]   = 0x5d;		// 510ms
+00396B A3                INC      DPTR
+00396C 745D              MOV      A,#05DH
+00396E F0                MOVX     @DPTR,A
+  105: 			m_24g_enter_hibernate[3]	= 0x00;
+00396F E4                CLR      A
+003970 A3                INC      DPTR
+003971 F0                MOVX     @DPTR,A
+  106: 			}
+  107: 		}
+  108: 	}
+003972         ?C0017?ADC:
+  109: 
+  110: 	g_variable.last_battery_status = g_variable.battery_status;
+003972 904CD5            MOV      DPTR,#g_variable+016H
+003975 E0                MOVX     A,@DPTR
+003976 904D00            MOV      DPTR,#g_variable+041H
+003979 F0                MOVX     @DPTR,A
+  111: #endif	
+  112: }
+00397A         ?C0006?ADC:
+00397A 22                RET      
+----- FUNCTION YC_adc_check (END) -------
+
+
+----- FUNCTION main (BEGIN) -----
+ FILE: 'ram.c'
+    5: void main()
+    6: {
+    7: 	YC_System_Main();
+    8: }
+00397B 020F30            LJMP     YC_System_Main
+----- FUNCTION main (END) -------
+
+
+----- FUNCTION _bufsize (BEGIN) -----
+00397E 904EFE            MOV      DPTR,#rptr
+003981 EE                MOV      A,R6
+003982 F0                MOVX     @DPTR,A
+003983 A3                INC      DPTR
+003984 EF                MOV      A,R7
+003985 F0                MOVX     @DPTR,A
+003986 904F00            MOV      DPTR,#wptr
+003989 EC                MOV      A,R4
+00398A F0                MOVX     @DPTR,A
+00398B A3                INC      DPTR
+00398C ED                MOV      A,R5
+00398D F0                MOVX     @DPTR,A
+;---- Variable 'buflen' assigned to Register 'R3' ----
+00398E 904F00            MOV      DPTR,#wptr
+003991 E0                MOVX     A,@DPTR
+003992 FE                MOV      R6,A
+003993 A3                INC      DPTR
+003994 E0                MOVX     A,@DPTR
+003995 FF                MOV      R7,A
+003996 D3                SETB     C
+003997 904EFF            MOV      DPTR,#rptr+01H
+00399A E0                MOVX     A,@DPTR
+00399B 9F                SUBB     A,R7
+00399C 904EFE            MOV      DPTR,#rptr
+00399F E0                MOVX     A,@DPTR
+0039A0 9E                SUBB     A,R6
+0039A1 4016              JC       ?C0001?IPC
+0039A3 904F00            MOV      DPTR,#wptr
+0039A6 E0                MOVX     A,@DPTR
+0039A7 FE                MOV      R6,A
+0039A8 A3                INC      DPTR
+0039A9 E0                MOVX     A,@DPTR
+0039AA FF                MOV      R7,A
+0039AB 904EFF            MOV      DPTR,#rptr+01H
+0039AE E0                MOVX     A,@DPTR
+0039AF 9F                SUBB     A,R7
+0039B0 FF                MOV      R7,A
+0039B1 904EFE            MOV      DPTR,#rptr
+0039B4 E0                MOVX     A,@DPTR
+0039B5 9E                SUBB     A,R6
+0039B6 FE                MOV      R6,A
+0039B7 801E              SJMP     ?C0002?IPC
+0039B9         ?C0001?IPC:
+0039B9 904EFE            MOV      DPTR,#rptr
+0039BC E0                MOVX     A,@DPTR
+0039BD FE                MOV      R6,A
+0039BE A3                INC      DPTR
+0039BF E0                MOVX     A,@DPTR
+0039C0 FF                MOV      R7,A
+0039C1 C3                CLR      C
+0039C2 904F01            MOV      DPTR,#wptr+01H
+0039C5 E0                MOVX     A,@DPTR
+0039C6 9F                SUBB     A,R7
+0039C7 FF                MOV      R7,A
+0039C8 904F00            MOV      DPTR,#wptr
+0039CB E0                MOVX     A,@DPTR
+0039CC 9E                SUBB     A,R6
+0039CD FE                MOV      R6,A
+0039CE AD03              MOV      R5,AR3
+0039D0 C3                CLR      C
+0039D1 EB                MOV      A,R3
+0039D2 9F                SUBB     A,R7
+0039D3 FF                MOV      R7,A
+0039D4 E4                CLR      A
+0039D5 9E                SUBB     A,R6
+0039D6 FE                MOV      R6,A
+0039D7         ?C0002?IPC:
+0039D7 22                RET      
+----- FUNCTION _bufsize (END) -------
+
+
+----- FUNCTION _ipcRx (BEGIN) -----
+0039D8 904F24            MOV      DPTR,#dest
+0039DB EE                MOV      A,R6
+0039DC F0                MOVX     @DPTR,A
+0039DD A3                INC      DPTR
+0039DE EF                MOV      A,R7
+0039DF F0                MOVX     @DPTR,A
+;---- Variable 'len' assigned to Register 'R1' ----
+0039E0 A905              MOV      R1,AR5
+0039E2 904B9E            MOV      DPTR,#ipcRxReadPtr
+0039E5 E0                MOVX     A,@DPTR
+0039E6 FE                MOV      R6,A
+0039E7 A3                INC      DPTR
+0039E8 E0                MOVX     A,@DPTR
+0039E9 FF                MOV      R7,A
+;---- Variable 'src' assigned to Register 'R6/R7' ----
+0039EA         ?C0004?IPC:
+0039EA AD01              MOV      R5,AR1
+0039EC 19                DEC      R1
+0039ED ED                MOV      A,R5
+0039EE 602F              JZ       ?C0005?IPC
+0039F0 0F                INC      R7
+0039F1 EF                MOV      A,R7
+0039F2 AC06              MOV      R4,AR6
+0039F4 7001              JNZ      ?C0046?IPC
+0039F6 0E                INC      R6
+0039F7         ?C0046?IPC:
+0039F7 14                DEC      A
+0039F8 F582              MOV      DPL,A
+0039FA 8C83              MOV      DPH,R4
+0039FC E0                MOVX     A,@DPTR
+0039FD FD                MOV      R5,A
+0039FE 904F24            MOV      DPTR,#dest
+003A01 E4                CLR      A
+003A02 75F001            MOV      B,#01H
+003A05 120424            LCALL    ?C?ILDIX
+003A08 85F082            MOV      DPL,B
+003A0B F583              MOV      DPH,A
+003A0D ED                MOV      A,R5
+003A0E F0                MOVX     @DPTR,A
+003A0F AD07              MOV      R5,AR7
+003A11 AC06              MOV      R4,AR6
+003A13 BC4BD4            CJNE     R4,#04BH,?C0004?IPC
+003A16 BD9AD1            CJNE     R5,#09AH,?C0004?IPC
+003A19 7E4B              MOV      R6,#04BH
+003A1B 7F36              MOV      R7,#036H
+003A1D 80CB              SJMP     ?C0004?IPC
+003A1F         ?C0005?IPC:
+003A1F 904B9E            MOV      DPTR,#ipcRxReadPtr
+003A22 EE                MOV      A,R6
+003A23 F0                MOVX     @DPTR,A
+003A24 A3                INC      DPTR
+003A25 EF                MOV      A,R7
+003A26 F0                MOVX     @DPTR,A
+003A27 22                RET      
+----- FUNCTION _ipcRx (END) -------
+
+
+----- FUNCTION IPC_DealSingleStep (BEGIN) -----
+003A28 7A0C              MOV      R2,#HIGH ipcReadBuff
+003A2A 794B              MOV      R1,#LOW ipcReadBuff
+003A2C 904F12            MOV      DPTR,#pbuff
+003A2F 7401              MOV      A,#01H
+003A31 F0                MOVX     @DPTR,A
+003A32 A3                INC      DPTR
+003A33 740C              MOV      A,#HIGH ipcReadBuff
+003A35 F0                MOVX     @DPTR,A
+003A36 A3                INC      DPTR
+003A37 744B              MOV      A,#LOW ipcReadBuff
+003A39 F0                MOVX     @DPTR,A
+003A3A 904BA0            MOV      DPTR,#ipcRxWritePtr
+003A3D E0                MOVX     A,@DPTR
+003A3E FE                MOV      R6,A
+003A3F A3                INC      DPTR
+003A40 E0                MOVX     A,@DPTR
+003A41 FF                MOV      R7,A
+003A42 904B9E            MOV      DPTR,#ipcRxReadPtr
+003A45 E0                MOVX     A,@DPTR
+003A46 6E                XRL      A,R6
+003A47 7003              JNZ      ?C0048?IPC
+003A49 A3                INC      DPTR
+003A4A E0                MOVX     A,@DPTR
+003A4B 6F                XRL      A,R7
+003A4C         ?C0048?IPC:
+003A4C 7002              JNZ      $ + 4H
+003A4E 61D7              AJMP     ?C0039?IPC
+003A50         ?C0027?IPC:
+003A50 7E0C              MOV      R6,#HIGH ipcReadBuff
+003A52 7F4B              MOV      R7,#LOW ipcReadBuff
+003A54 7D03              MOV      R5,#03H
+003A56 31D8              ACALL    _ipcRx
+003A58 904F12            MOV      DPTR,#pbuff
+003A5B E0                MOVX     A,@DPTR
+003A5C FB                MOV      R3,A
+003A5D A3                INC      DPTR
+003A5E E0                MOVX     A,@DPTR
+003A5F FA                MOV      R2,A
+003A60 A3                INC      DPTR
+003A61 E0                MOVX     A,@DPTR
+003A62 F9                MOV      R1,A
+003A63 1203B6            LCALL    ?C?CLDPTR
+003A66 B4022B            CJNE     A,#02H,?C0029?IPC
+003A69 904F13            MOV      DPTR,#pbuff+01H
+003A6C E4                CLR      A
+003A6D 75F002            MOV      B,#02H
+003A70 12040E            LCALL    ?C?IILDX
+003A73 904F12            MOV      DPTR,#pbuff
+003A76 E0                MOVX     A,@DPTR
+003A77 FB                MOV      R3,A
+003A78 A3                INC      DPTR
+003A79 E0                MOVX     A,@DPTR
+003A7A FA                MOV      R2,A
+003A7B A3                INC      DPTR
+003A7C E0                MOVX     A,@DPTR
+003A7D F9                MOV      R1,A
+003A7E 1203B6            LCALL    ?C?CLDPTR
+003A81 FF                MOV      R7,A
+003A82 904E7C            MOV      DPTR,#ipcCb
+003A85 E0                MOVX     A,@DPTR
+003A86 A3                INC      DPTR
+003A87 E0                MOVX     A,@DPTR
+003A88 FA                MOV      R2,A
+003A89 A3                INC      DPTR
+003A8A E0                MOVX     A,@DPTR
+003A8B F582              MOV      DPL,A
+003A8D 8A83              MOV      DPH,R2
+003A8F 1205DD            LCALL    ?C?ICALL2
+003A92 61D7              AJMP     ?C0039?IPC
+003A94         ?C0029?IPC:
+003A94 904F12            MOV      DPTR,#pbuff
+003A97 E0                MOVX     A,@DPTR
+003A98 FB                MOV      R3,A
+003A99 A3                INC      DPTR
+003A9A E0                MOVX     A,@DPTR
+003A9B FA                MOV      R2,A
+003A9C A3                INC      DPTR
+003A9D E0                MOVX     A,@DPTR
+003A9E F9                MOV      R1,A
+003A9F 1203B6            LCALL    ?C?CLDPTR
+003AA2 6404              XRL      A,#04H
+003AA4 7059              JNZ      ?C0031?IPC
+003AA6 904F13            MOV      DPTR,#pbuff+01H
+003AA9 75F001            MOV      B,#01H
+003AAC 12040E            LCALL    ?C?IILDX
+003AAF 7E0C              MOV      R6,#HIGH ipcReadBuff+03H
+003AB1 7F4E              MOV      R7,#LOW ipcReadBuff+03H
+003AB3 904F12            MOV      DPTR,#pbuff
+003AB6 E0                MOVX     A,@DPTR
+003AB7 FB                MOV      R3,A
+003AB8 A3                INC      DPTR
+003AB9 E0                MOVX     A,@DPTR
+003ABA FA                MOV      R2,A
+003ABB A3                INC      DPTR
+003ABC E0                MOVX     A,@DPTR
+003ABD F9                MOV      R1,A
+003ABE 1203B6            LCALL    ?C?CLDPTR
+003AC1 14                DEC      A
+003AC2 FD                MOV      R5,A
+003AC3 31D8              ACALL    _ipcRx
+003AC5 904F12            MOV      DPTR,#pbuff
+003AC8 E0                MOVX     A,@DPTR
+003AC9 FB                MOV      R3,A
+003ACA A3                INC      DPTR
+003ACB E0                MOVX     A,@DPTR
+003ACC FA                MOV      R2,A
+003ACD A3                INC      DPTR
+003ACE E0                MOVX     A,@DPTR
+003ACF 2401              ADD      A,#01H
+003AD1 F9                MOV      R1,A
+003AD2 E4                CLR      A
+003AD3 3A                ADDC     A,R2
+003AD4 FA                MOV      R2,A
+003AD5 C002              PUSH     AR2
+003AD7 C001              PUSH     AR1
+003AD9 904F12            MOV      DPTR,#pbuff
+003ADC E0                MOVX     A,@DPTR
+003ADD A3                INC      DPTR
+003ADE E0                MOVX     A,@DPTR
+003ADF FA                MOV      R2,A
+003AE0 A3                INC      DPTR
+003AE1 E0                MOVX     A,@DPTR
+003AE2 F9                MOV      R1,A
+003AE3 1203B6            LCALL    ?C?CLDPTR
+003AE6 FD                MOV      R5,A
+003AE7 7C00              MOV      R4,#00H
+003AE9 904E7F            MOV      DPTR,#ipcCb+03H
+003AEC E0                MOVX     A,@DPTR
+003AED A3                INC      DPTR
+003AEE E0                MOVX     A,@DPTR
+003AEF FA                MOV      R2,A
+003AF0 A3                INC      DPTR
+003AF1 E0                MOVX     A,@DPTR
+003AF2 F582              MOV      DPL,A
+003AF4 8A83              MOV      DPH,R2
+003AF6 D001              POP      AR1
+003AF8 D002              POP      AR2
+003AFA 1205DD            LCALL    ?C?ICALL2
+003AFD 61D7              AJMP     ?C0039?IPC
+003AFF         ?C0031?IPC:
+003AFF 904F12            MOV      DPTR,#pbuff
+003B02 E0                MOVX     A,@DPTR
+003B03 FB                MOV      R3,A
+003B04 A3                INC      DPTR
+003B05 E0                MOVX     A,@DPTR
+003B06 FA                MOV      R2,A
+003B07 A3                INC      DPTR
+003B08 E0                MOVX     A,@DPTR
+003B09 F9                MOV      R1,A
+003B0A 1203B6            LCALL    ?C?CLDPTR
+003B0D 6405              XRL      A,#05H
+003B0F 7059              JNZ      ?C0033?IPC
+003B11 904F13            MOV      DPTR,#pbuff+01H
+003B14 75F001            MOV      B,#01H
+003B17 12040E            LCALL    ?C?IILDX
+003B1A 7E0C              MOV      R6,#HIGH ipcReadBuff+03H
+003B1C 7F4E              MOV      R7,#LOW ipcReadBuff+03H
+003B1E 904F12            MOV      DPTR,#pbuff
+003B21 E0                MOVX     A,@DPTR
+003B22 FB                MOV      R3,A
+003B23 A3                INC      DPTR
+003B24 E0                MOVX     A,@DPTR
+003B25 FA                MOV      R2,A
+003B26 A3                INC      DPTR
+003B27 E0                MOVX     A,@DPTR
+003B28 F9                MOV      R1,A
+003B29 1203B6            LCALL    ?C?CLDPTR
+003B2C 14                DEC      A
+003B2D FD                MOV      R5,A
+003B2E 31D8              ACALL    _ipcRx
+003B30 904F12            MOV      DPTR,#pbuff
+003B33 E0                MOVX     A,@DPTR
+003B34 FB                MOV      R3,A
+003B35 A3                INC      DPTR
+003B36 E0                MOVX     A,@DPTR
+003B37 FA                MOV      R2,A
+003B38 A3                INC      DPTR
+003B39 E0                MOVX     A,@DPTR
+003B3A 2401              ADD      A,#01H
+003B3C F9                MOV      R1,A
+003B3D E4                CLR      A
+003B3E 3A                ADDC     A,R2
+003B3F FA                MOV      R2,A
+003B40 C002              PUSH     AR2
+003B42 C001              PUSH     AR1
+003B44 904F12            MOV      DPTR,#pbuff
+003B47 E0                MOVX     A,@DPTR
+003B48 A3                INC      DPTR
+003B49 E0                MOVX     A,@DPTR
+003B4A FA                MOV      R2,A
+003B4B A3                INC      DPTR
+003B4C E0                MOVX     A,@DPTR
+003B4D F9                MOV      R1,A
+003B4E 1203B6            LCALL    ?C?CLDPTR
+003B51 FD                MOV      R5,A
+003B52 7C00              MOV      R4,#00H
+003B54 904E88            MOV      DPTR,#ipcCb+0CH
+003B57 E0                MOVX     A,@DPTR
+003B58 A3                INC      DPTR
+003B59 E0                MOVX     A,@DPTR
+003B5A FA                MOV      R2,A
+003B5B A3                INC      DPTR
+003B5C E0                MOVX     A,@DPTR
+003B5D F582              MOV      DPL,A
+003B5F 8A83              MOV      DPH,R2
+003B61 D001              POP      AR1
+003B63 D002              POP      AR2
+003B65 1205DD            LCALL    ?C?ICALL2
+003B68 806D              SJMP     ?C0039?IPC
+003B6A         ?C0033?IPC:
+003B6A 904F12            MOV      DPTR,#pbuff
+003B6D E0                MOVX     A,@DPTR
+003B6E FB                MOV      R3,A
+003B6F A3                INC      DPTR
+003B70 E0                MOVX     A,@DPTR
+003B71 FA                MOV      R2,A
+003B72 A3                INC      DPTR
+003B73 E0                MOVX     A,@DPTR
+003B74 F9                MOV      R1,A
+003B75 1203B6            LCALL    ?C?CLDPTR
+003B78 6403              XRL      A,#03H
+003B7A 7059              JNZ      ?C0037?IPC
+003B7C 904F13            MOV      DPTR,#pbuff+01H
+003B7F 75F001            MOV      B,#01H
+003B82 12040E            LCALL    ?C?IILDX
+003B85 7E0C              MOV      R6,#HIGH ipcReadBuff+03H
+003B87 7F4E              MOV      R7,#LOW ipcReadBuff+03H
+003B89 904F12            MOV      DPTR,#pbuff
+003B8C E0                MOVX     A,@DPTR
+003B8D FB                MOV      R3,A
+003B8E A3                INC      DPTR
+003B8F E0                MOVX     A,@DPTR
+003B90 FA                MOV      R2,A
+003B91 A3                INC      DPTR
+003B92 E0                MOVX     A,@DPTR
+003B93 F9                MOV      R1,A
+003B94 1203B6            LCALL    ?C?CLDPTR
+003B97 14                DEC      A
+003B98 FD                MOV      R5,A
+003B99 31D8              ACALL    _ipcRx
+003B9B 904F12            MOV      DPTR,#pbuff
+003B9E E0                MOVX     A,@DPTR
+003B9F FB                MOV      R3,A
+003BA0 A3                INC      DPTR
+003BA1 E0                MOVX     A,@DPTR
+003BA2 FA                MOV      R2,A
+003BA3 A3                INC      DPTR
+003BA4 E0                MOVX     A,@DPTR
+003BA5 2401              ADD      A,#01H
+003BA7 F9                MOV      R1,A
+003BA8 E4                CLR      A
+003BA9 3A                ADDC     A,R2
+003BAA FA                MOV      R2,A
+003BAB C002              PUSH     AR2
+003BAD C001              PUSH     AR1
+003BAF 904F12            MOV      DPTR,#pbuff
+003BB2 E0                MOVX     A,@DPTR
+003BB3 A3                INC      DPTR
+003BB4 E0                MOVX     A,@DPTR
+003BB5 FA                MOV      R2,A
+003BB6 A3                INC      DPTR
+003BB7 E0                MOVX     A,@DPTR
+003BB8 F9                MOV      R1,A
+003BB9 1203B6            LCALL    ?C?CLDPTR
+003BBC FD                MOV      R5,A
+003BBD 7C00              MOV      R4,#00H
+003BBF 904E8B            MOV      DPTR,#ipcCb+0FH
+003BC2 E0                MOVX     A,@DPTR
+003BC3 A3                INC      DPTR
+003BC4 E0                MOVX     A,@DPTR
+003BC5 FA                MOV      R2,A
+003BC6 A3                INC      DPTR
+003BC7 E0                MOVX     A,@DPTR
+003BC8 F582              MOV      DPL,A
+003BCA 8A83              MOV      DPH,R2
+003BCC D001              POP      AR1
+003BCE D002              POP      AR2
+003BD0 1205DD            LCALL    ?C?ICALL2
+003BD3 8002              SJMP     ?C0039?IPC
+003BD5         ?C0037?IPC:
+003BD5 80FE              SJMP     ?C0037?IPC
+003BD7         IPC_TIMER:
+003BD7         ?C0039?IPC:
+003BD7 904BA5            MOV      DPTR,#bttimer
+003BDA E0                MOVX     A,@DPTR
+003BDB FE                MOV      R6,A
+003BDC A3                INC      DPTR
+003BDD E0                MOVX     A,@DPTR
+003BDE FF                MOV      R7,A
+003BDF 904C5E            MOV      DPTR,#c51timer
+003BE2 E0                MOVX     A,@DPTR
+003BE3 6E                XRL      A,R6
+003BE4 7003              JNZ      ?C0049?IPC
+003BE6 A3                INC      DPTR
+003BE7 E0                MOVX     A,@DPTR
+003BE8 6F                XRL      A,R7
+003BE9         ?C0049?IPC:
+003BE9 6022              JZ       ?C0043?IPC
+003BEB 904E82            MOV      DPTR,#ipcCb+06H
+003BEE E0                MOVX     A,@DPTR
+003BEF FB                MOV      R3,A
+003BF0 A3                INC      DPTR
+003BF1 E0                MOVX     A,@DPTR
+003BF2 FA                MOV      R2,A
+003BF3 A3                INC      DPTR
+003BF4 E0                MOVX     A,@DPTR
+003BF5 F9                MOV      R1,A
+003BF6 4A                ORL      A,R2
+003BF7 6037              JZ       ?C0042?IPC
+003BF9         ?C0041?IPC:
+003BF9 1205D9            LCALL    ?C?ICALL
+003BFC 904BA5            MOV      DPTR,#bttimer
+003BFF E0                MOVX     A,@DPTR
+003C00 FF                MOV      R7,A
+003C01 A3                INC      DPTR
+003C02 E0                MOVX     A,@DPTR
+003C03 904C5E            MOV      DPTR,#c51timer
+003C06 CF                XCH      A,R7
+003C07 F0                MOVX     @DPTR,A
+003C08 A3                INC      DPTR
+003C09 EF                MOV      A,R7
+003C0A F0                MOVX     @DPTR,A
+003C0B 80CA              SJMP     ?C0039?IPC
+003C0D         ?C0043?IPC:
+003C0D 904C8D            MOV      DPTR,#btstimer
+003C10 E0                MOVX     A,@DPTR
+003C11 FF                MOV      R7,A
+003C12 A3                INC      DPTR
+003C13 E0                MOVX     A,@DPTR
+003C14 6F                XRL      A,R7
+003C15 6019              JZ       ?C0042?IPC
+003C17 904E85            MOV      DPTR,#ipcCb+09H
+003C1A E0                MOVX     A,@DPTR
+003C1B FB                MOV      R3,A
+003C1C A3                INC      DPTR
+003C1D E0                MOVX     A,@DPTR
+003C1E FA                MOV      R2,A
+003C1F A3                INC      DPTR
+003C20 E0                MOVX     A,@DPTR
+003C21 F9                MOV      R1,A
+003C22 4A                ORL      A,R2
+003C23 600B              JZ       ?C0042?IPC
+003C25         ?C0045?IPC:
+003C25 1205D9            LCALL    ?C?ICALL
+003C28 904C8D            MOV      DPTR,#btstimer
+003C2B E0                MOVX     A,@DPTR
+003C2C A3                INC      DPTR
+003C2D F0                MOVX     @DPTR,A
+003C2E 80DD              SJMP     ?C0043?IPC
+003C30         ?C0042?IPC:
+003C30 22                RET      
+----- FUNCTION IPC_DealSingleStep (END) -------
+
+
+----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
+003C31 900446            MOV      DPTR,#bbDisReason
+003C34 E0                MOVX     A,@DPTR
+003C35 FF                MOV      R7,A
+003C36 22                RET      
+----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
+
+
+----- FUNCTION IPC_AbandonLpm (BEGIN) -----
+003C37 900B7F            MOV      DPTR,#lpm_flag
+003C3A 7401              MOV      A,#01H
+003C3C F0                MOVX     @DPTR,A
+003C3D E4                CLR      A
+003C3E 900B7E            MOV      DPTR,#current_task
+003C41 F0                MOVX     @DPTR,A
+003C42 22                RET      
+----- FUNCTION IPC_AbandonLpm (END) -------
+
+
+----- FUNCTION YC_Ice_break (BEGIN) -----
+003C43 908280            MOV      DPTR,#08280H
+003C46 7401              MOV      A,#01H
+003C48 F0                MOVX     @DPTR,A
+003C49 22                RET      
+----- FUNCTION YC_Ice_break (END) -------
+
+
+----- FUNCTION _dmemcpy (BEGIN) -----
+003C4A 904EC1            MOV      DPTR,#dest
+003C4D EB                MOV      A,R3
+003C4E F0                MOVX     @DPTR,A
+003C4F A3                INC      DPTR
+003C50 EA                MOV      A,R2
+003C51 F0                MOVX     @DPTR,A
+003C52 A3                INC      DPTR
+003C53 E9                MOV      A,R1
+003C54 F0                MOVX     @DPTR,A
+003C55         ?C0005?UTILITIES:
+003C55 904EC7            MOV      DPTR,#len
+003C58 74FF              MOV      A,#0FFH
+003C5A F5F0              MOV      B,A
+003C5C 120424            LCALL    ?C?ILDIX
+003C5F 45F0              ORL      A,B
+003C61 602A              JZ       ?C0007?UTILITIES
+003C63 904EC4            MOV      DPTR,#src
+003C66 E0                MOVX     A,@DPTR
+003C67 FB                MOV      R3,A
+003C68 A3                INC      DPTR
+003C69 E4                CLR      A
+003C6A 75F001            MOV      B,#01H
+003C6D 120424            LCALL    ?C?ILDIX
+003C70 A9F0              MOV      R1,B
+003C72 FA                MOV      R2,A
+003C73 1203B6            LCALL    ?C?CLDPTR
+003C76 FF                MOV      R7,A
+003C77 904EC1            MOV      DPTR,#dest
+003C7A E0                MOVX     A,@DPTR
+003C7B FB                MOV      R3,A
+003C7C A3                INC      DPTR
+003C7D E4                CLR      A
+003C7E 75F001            MOV      B,#01H
+003C81 120424            LCALL    ?C?ILDIX
+003C84 A9F0              MOV      R1,B
+003C86 FA                MOV      R2,A
+003C87 EF                MOV      A,R7
+003C88 1203FC            LCALL    ?C?CSTPTR
+003C8B 80C8              SJMP     ?C0005?UTILITIES
+003C8D         ?C0007?UTILITIES:
+003C8D 22                RET      
+----- FUNCTION _dmemcpy (END) -------
+
+
+----- FUNCTION _IIC_write (BEGIN) -----
+003C8E 904ED7            MOV      DPTR,#addr
+003C91 EE                MOV      A,R6
+003C92 F0                MOVX     @DPTR,A
+003C93 A3                INC      DPTR
+003C94 EF                MOV      A,R7
+003C95 F0                MOVX     @DPTR,A
+003C96 904EDB            MOV      DPTR,#pbuff
+003C99 EB                MOV      A,R3
+003C9A F0                MOVX     @DPTR,A
+003C9B A3                INC      DPTR
+003C9C EA                MOV      A,R2
+003C9D F0                MOVX     @DPTR,A
+003C9E A3                INC      DPTR
+003C9F E9                MOV      A,R1
+003CA0 F0                MOVX     @DPTR,A
+003CA1 904ED9            MOV      DPTR,#len
+003CA4 EC                MOV      A,R4
+003CA5 F0                MOVX     @DPTR,A
+003CA6 A3                INC      DPTR
+003CA7 ED                MOV      A,R5
+003CA8 F0                MOVX     @DPTR,A
+003CA9 A3                INC      DPTR
+003CAA E0                MOVX     A,@DPTR
+003CAB F9                MOV      R1,A
+003CAC A3                INC      DPTR
+003CAD E0                MOVX     A,@DPTR
+003CAE FA                MOV      R2,A
+003CAF A3                INC      DPTR
+003CB0 E0                MOVX     A,@DPTR
+003CB1 904EC4            MOV      DPTR,#?_dmemcpy?BYTE+03H
+003CB4 C9                XCH      A,R1
+003CB5 F0                MOVX     @DPTR,A
+003CB6 A3                INC      DPTR
+003CB7 EA                MOV      A,R2
+003CB8 F0                MOVX     @DPTR,A
+003CB9 A3                INC      DPTR
+003CBA E9                MOV      A,R1
+003CBB F0                MOVX     @DPTR,A
+003CBC A3                INC      DPTR
+003CBD EC                MOV      A,R4
+003CBE F0                MOVX     @DPTR,A
+003CBF A3                INC      DPTR
+003CC0 ED                MOV      A,R5
+003CC1 F0                MOVX     @DPTR,A
+003CC2 7B01              MOV      R3,#01H
+003CC4 7A0B              MOV      R2,#HIGH IIC_TempBuff+03H
+003CC6 7986              MOV      R1,#LOW IIC_TempBuff+03H
+003CC8 914A              ACALL    _dmemcpy
+003CCA 900B83            MOV      DPTR,#IIC_TempBuff
+003CCD 74A0              MOV      A,#0A0H
+003CCF F0                MOVX     @DPTR,A
+003CD0 904ED7            MOV      DPTR,#addr
+003CD3 E0                MOVX     A,@DPTR
+003CD4 FF                MOV      R7,A
+003CD5 A3                INC      DPTR
+003CD6 E0                MOVX     A,@DPTR
+003CD7 900B84            MOV      DPTR,#IIC_TempBuff+01H
+003CDA CF                XCH      A,R7
+003CDB F0                MOVX     @DPTR,A
+003CDC A3                INC      DPTR
+003CDD EF                MOV      A,R7
+003CDE F0                MOVX     @DPTR,A
+003CDF 904EDA            MOV      DPTR,#len+01H
+003CE2 E0                MOVX     A,@DPTR
+003CE3 2403              ADD      A,#03H
+003CE5 FD                MOV      R5,A
+003CE6 904ED9            MOV      DPTR,#len
+003CE9 E0                MOVX     A,@DPTR
+003CEA 3400              ADDC     A,#00H
+003CEC FC                MOV      R4,A
+003CED ED                MOV      A,R5
+003CEE FA                MOV      R2,A
+003CEF EC                MOV      A,R4
+003CF0 FF                MOV      R7,A
+003CF1 EA                MOV      A,R2
+003CF2 FE                MOV      R6,A
+003CF3 EF                MOV      A,R7
+003CF4 908098            MOV      DPTR,#08098H
+003CF7 EE                MOV      A,R6
+003CF8 F0                MOVX     @DPTR,A
+003CF9 A3                INC      DPTR
+003CFA EF                MOV      A,R7
+003CFB F0                MOVX     @DPTR,A
+003CFC 7A0B              MOV      R2,#HIGH IIC_TempBuff
+003CFE 7983              MOV      R1,#LOW IIC_TempBuff
+003D00 7E0B              MOV      R6,#HIGH IIC_TempBuff
+003D02 7F83              MOV      R7,#LOW IIC_TempBuff
+003D04 7483              MOV      A,#LOW IIC_TempBuff
+003D06 FC                MOV      R4,A
+003D07 740B              MOV      A,#HIGH IIC_TempBuff
+003D09 FF                MOV      R7,A
+003D0A EC                MOV      A,R4
+003D0B FE                MOV      R6,A
+003D0C EF                MOV      A,R7
+003D0D A3                INC      DPTR
+003D0E EE                MOV      A,R6
+003D0F F0                MOVX     @DPTR,A
+003D10 A3                INC      DPTR
+003D11 EF                MOV      A,R7
+003D12 F0                MOVX     @DPTR,A
+003D13 90809E            MOV      DPTR,#0809EH
+003D16 E4                CLR      A
+003D17 F0                MOVX     @DPTR,A
+003D18 A3                INC      DPTR
+003D19 F0                MOVX     @DPTR,A
+003D1A 908090            MOV      DPTR,#08090H
+003D1D 04                INC      A
+003D1E F0                MOVX     @DPTR,A
+003D1F 908006            MOV      DPTR,#08006H
+003D22 E0                MOVX     A,@DPTR
+003D23 4404              ORL      A,#04H
+003D25 F0                MOVX     @DPTR,A
+003D26 0227DB            LJMP     IIcWaitDone
+----- FUNCTION _IIC_write (END) -------
+
+
+----- FUNCTION _gpioSetBit (BEGIN) -----
+003D29 904F1B            MOV      DPTR,#reg_base
+003D2C EB                MOV      A,R3
+003D2D F0                MOVX     @DPTR,A
+003D2E A3                INC      DPTR
+003D2F EA                MOV      A,R2
+003D30 F0                MOVX     @DPTR,A
+003D31 A3                INC      DPTR
+003D32 E9                MOV      A,R1
+003D33 F0                MOVX     @DPTR,A
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+;---- Variable 'queue' assigned to Register 'R6' ----
+003D34 E4                CLR      A
+003D35 FE                MOV      R6,A
+;---- Variable 'group' assigned to Register 'R5' ----
+003D36 FD                MOV      R5,A
+003D37 EF                MOV      A,R7
+003D38 5407              ANL      A,#07H
+003D3A FE                MOV      R6,A
+003D3B EF                MOV      A,R7
+003D3C 13                RRC      A
+003D3D 13                RRC      A
+003D3E 13                RRC      A
+003D3F 5403              ANL      A,#03H
+003D41 FD                MOV      R5,A
+003D42 300022            JNB      bit_val,?C0001?GPIO
+003D45 904F1B            MOV      DPTR,#reg_base
+003D48 E0                MOVX     A,@DPTR
+003D49 FB                MOV      R3,A
+003D4A A3                INC      DPTR
+003D4B E0                MOVX     A,@DPTR
+003D4C FA                MOV      R2,A
+003D4D A3                INC      DPTR
+003D4E E0                MOVX     A,@DPTR
+003D4F 2D                ADD      A,R5
+003D50 F9                MOV      R1,A
+003D51 E4                CLR      A
+003D52 3A                ADDC     A,R2
+003D53 FA                MOV      R2,A
+003D54 1203B6            LCALL    ?C?CLDPTR
+003D57 FF                MOV      R7,A
+003D58 7401              MOV      A,#01H
+003D5A A806              MOV      R0,AR6
+003D5C 08                INC      R0
+003D5D 8002              SJMP     ?C0031?GPIO
+003D5F         ?C0030?GPIO:
+003D5F C3                CLR      C
+003D60 33                RLC      A
+003D61         ?C0031?GPIO:
+003D61 D8FC              DJNZ     R0,?C0030?GPIO
+003D63 4F                ORL      A,R7
+003D64 0203FC            LJMP     ?C?CSTPTR
+003D67         ?C0001?GPIO:
+003D67 904F1B            MOV      DPTR,#reg_base
+003D6A E0                MOVX     A,@DPTR
+003D6B FB                MOV      R3,A
+003D6C A3                INC      DPTR
+003D6D E0                MOVX     A,@DPTR
+003D6E FA                MOV      R2,A
+003D6F A3                INC      DPTR
+003D70 E0                MOVX     A,@DPTR
+003D71 2D                ADD      A,R5
+003D72 F9                MOV      R1,A
+003D73 E4                CLR      A
+003D74 3A                ADDC     A,R2
+003D75 FA                MOV      R2,A
+003D76 1203B6            LCALL    ?C?CLDPTR
+003D79 FF                MOV      R7,A
+003D7A 7401              MOV      A,#01H
+003D7C A806              MOV      R0,AR6
+003D7E 08                INC      R0
+003D7F 8002              SJMP     ?C0033?GPIO
+003D81         ?C0032?GPIO:
+003D81 C3                CLR      C
+003D82 33                RLC      A
+003D83         ?C0033?GPIO:
+003D83 D8FC              DJNZ     R0,?C0032?GPIO
+003D85 F4                CPL      A
+003D86 5F                ANL      A,R7
+003D87 0203FC            LJMP     ?C?CSTPTR
+----- FUNCTION _gpioSetBit (END) -------
+
+
+----- FUNCTION _GPIO_SetPu (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003D8A EF                MOV      A,R7
+003D8B F4                CPL      A
+003D8C 600C              JZ       ?C0009?GPIO
+003D8E         ?C0008?GPIO:
+003D8E 7B01              MOV      R3,#01H
+003D90 7A80              MOV      R2,#080H
+003D92 7978              MOV      R1,#078H
+003D94 A202              MOV      C,bit_val
+003D96 9200              MOV      ?_gpioSetBit?BIT,C
+003D98 B129              ACALL    _gpioSetBit
+003D9A         ?C0009?GPIO:
+003D9A 22                RET      
+----- FUNCTION _GPIO_SetPu (END) -------
+
+
+----- FUNCTION _GPIO_SetInput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+003D9B AC07              MOV      R4,AR7
+003D9D EC                MOV      A,R4
+003D9E F4                CPL      A
+003D9F 6017              JZ       ?C0015?GPIO
+003DA1         ?C0014?GPIO:
+003DA1 AF04              MOV      R7,AR4
+003DA3 A205              MOV      C,st
+003DA5 9203              MOV      ?_GPIO_SetPd?BIT,C
+003DA7 B1B9              ACALL    _GPIO_SetPd
+003DA9 AF04              MOV      R7,AR4
+003DAB A205              MOV      C,st
+003DAD B3                CPL      C
+003DAE 9202              MOV      ?_GPIO_SetPu?BIT,C
+003DB0 B18A              ACALL    _GPIO_SetPu
+003DB2 AF04              MOV      R7,AR4
+003DB4 C204              CLR      ?_GPIO_Setoe?BIT
+003DB6 B1CA              ACALL    _GPIO_Setoe
+003DB8         ?C0015?GPIO:
+003DB8 22                RET      
+----- FUNCTION _GPIO_SetInput (END) -------
+
+
+----- FUNCTION _GPIO_SetPd (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003DB9 EF                MOV      A,R7
+003DBA F4                CPL      A
+003DBB 600C              JZ       ?C0011?GPIO
+003DBD         ?C0010?GPIO:
+003DBD 7B01              MOV      R3,#01H
+003DBF 7A80              MOV      R2,#080H
+003DC1 797C              MOV      R1,#07CH
+003DC3 A203              MOV      C,bit_val
+003DC5 9200              MOV      ?_gpioSetBit?BIT,C
+003DC7 B129              ACALL    _gpioSetBit
+003DC9         ?C0011?GPIO:
+003DC9 22                RET      
+----- FUNCTION _GPIO_SetPd (END) -------
+
+
+----- FUNCTION _GPIO_Setoe (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003DCA EF                MOV      A,R7
+003DCB F4                CPL      A
+003DCC 600C              JZ       ?C0013?GPIO
+003DCE         ?C0012?GPIO:
+003DCE 7B01              MOV      R3,#01H
+003DD0 7A80              MOV      R2,#080H
+003DD2 7970              MOV      R1,#070H
+003DD4 A204              MOV      C,bit_val
+003DD6 9200              MOV      ?_gpioSetBit?BIT,C
+003DD8 B129              ACALL    _gpioSetBit
+003DDA         ?C0013?GPIO:
+003DDA 22                RET      
+----- FUNCTION _GPIO_Setoe (END) -------
+
+
+----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003DDB EF                MOV      A,R7
+003DDC F4                CPL      A
+003DDD 603A              JZ       ?C0023?GPIO
+003DDF         ?C0022?GPIO:
+003DDF EF                MOV      A,R7
+003DE0 5407              ANL      A,#07H
+003DE2 FE                MOV      R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+003DE3 EF                MOV      A,R7
+003DE4 13                RRC      A
+003DE5 13                RRC      A
+003DE6 13                RRC      A
+003DE7 5403              ANL      A,#03H
+003DE9 FF                MOV      R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+003DEA 24A3              ADD      A,#LOW YC_GPIOWakeupL
+003DEC F582              MOV      DPL,A
+003DEE E4                CLR      A
+003DEF 3400              ADDC     A,#HIGH YC_GPIOWakeupL
+003DF1 F583              MOV      DPH,A
+003DF3 C083              PUSH     DPH
+003DF5 C082              PUSH     DPL
+003DF7 E0                MOVX     A,@DPTR
+003DF8 FD                MOV      R5,A
+003DF9 7401              MOV      A,#01H
+003DFB A806              MOV      R0,AR6
+003DFD 08                INC      R0
+003DFE 8002              SJMP     ?C0043?GPIO
+003E00         ?C0042?GPIO:
+003E00 C3                CLR      C
+003E01 33                RLC      A
+003E02         ?C0043?GPIO:
+003E02 D8FC              DJNZ     R0,?C0042?GPIO
+003E04 F4                CPL      A
+003E05 FC                MOV      R4,A
+003E06 5D                ANL      A,R5
+003E07 D082              POP      DPL
+003E09 D083              POP      DPH
+003E0B F0                MOVX     @DPTR,A
+003E0C 74A7              MOV      A,#LOW YC_GPIOWakeupH
+003E0E 2F                ADD      A,R7
+003E0F F582              MOV      DPL,A
+003E11 E4                CLR      A
+003E12 3400              ADDC     A,#HIGH YC_GPIOWakeupH
+003E14 F583              MOV      DPH,A
+003E16 E0                MOVX     A,@DPTR
+003E17 5C                ANL      A,R4
+003E18 F0                MOVX     @DPTR,A
+003E19         ?C0023?GPIO:
+003E19 22                RET      
+----- FUNCTION _GPIO_ClearWakeup (END) -------
+
+
Index: output/FW.HTM
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/FW.HTM	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/FW.HTM	(working copy)
@@ -0,0 +1,1299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>LX51 Static Call Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<style type="text/css">
+<!--
+p            { font-family: Verdana; font-size: 8pt; margin-top: 2; margin-bottom: 2 }
+.LI2         { margin-top: 2; margin-bottom: 2 }
+.Release     { background-color: #CCCCCC; font-weight: bold; padding: 6 }
+.ToolT       { font-size: 8pt; color: #808080 }
+.TinyT       { font-size: 8pt; text-align: Center }
+ul           { font-family: Verdana; font-size: 8pt; list-style-type: square;  margin-top: 2; margin-bottom: 2 }
+ol           { font-family: Verdana; font-size: 8pt }
+h1           { font-family: Verdana; font-size: 14pt; color: #000080; font-weight: bold; text-align: Center; margin-right: 3 }
+h2           { font-family: Verdana; font-size: 8pt; color: #000080; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+h3           { font-family: Verdana; font-size: 8pt; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+pre          { font-family: Courier New; font-size: 8pt; background-color: #CCFFCC; margin-left: 24; margin-right: 24 }
+li           { margin-top: 3; margin-bottom: 0 }
+-->
+</style>
+</head>
+<body>
+<h1>Static Call Analysis for<br>OUTPUT\FW (BLUETOOTH)</h1>
+
+<p class="TinyT">
+Created from: <b>LX51 LINKER/LOCATER V4.66.41.0</b><br>
+Creation time: <b>03/11/2026  16:44:14</b><p>
+
+<hr>
+
+
+<h2><a name="S2"></a>?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH (C:000737H - C:00085EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S169">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S13"></a>?PR?YC_START_RECONNECT?BLUETOOTH (C:001FCEH - C:00204DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S63"></a>?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS (C:001C4DH - C:001C86H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<h2><a name="S65"></a>?PR?KB_BT_PINCODE_ENTER?KB_PROCESS (C:002841H - C:002AB2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S75"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:002F0FH - C:0030B9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S74">?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S77"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:001509H - C:00180DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S61">?PR?_KB_SET_MULTIKEY?KB_PROCESS</a></li>
+<li><a href="#S62">?PR?_KB_SET_SYSTEMKEY?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S85"></a>?PR?KSCOLINITIALIZE?KEYSCAN (C:002784H - C:0027A2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S109"></a>?PR?_KB_CB_HID?SYS (C:0035CBH - C:0035DAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S111"></a>?PR?_KB_CB_EVENT?SYS (C:0020FEH - C:00261BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S175">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S146">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S87">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+<li><a href="#S99">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S98">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S102">?PR?SYSTEM_IIC_CLK_SETUP?SYS</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S104">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+<li><a href="#S15">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+<li><a href="#S10">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
+<li><a href="#S13">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S118"></a>?PR?SYSTEY_LEDFLASH_1S?SYS (C:003466H - C:003499H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S98">?PR?LED_DEVICE_POWERON?LED</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S99">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S98">?PR?LED_DEVICE_POWERON?LED</a></li>
+</ul>
+
+<h2><a name="S119"></a>?PR?KB_CB_TIMER500MS?SYS (C:001F7DH - C:001FB1H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S113">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S128">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S116">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S115">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S120"></a>?PR?KB_CB_TIMER100MS?SYS (C:00349AH - C:0035CAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S99">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S98">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S108">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+</ul>
+
+<h2><a name="S122"></a>?PR?YC_SYSTEM_MAIN?SYS (C:000F30H - C:000F94H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=18 Bytes (<a href="#S71">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S147">?PR?IPC_ABANDONLPM?IPC</a></li>
+<li><a href="#S149">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S146">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S121">?PR?KB_CB_INIT?SYS</a></li>
+<li><a href="#S71">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S88">?PR?KS_UNISTALL?KEYSCAN</a></li>
+<li><a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S100">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S107">?PR?SYSTEM_G24_LONG_LPM?SYS</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S129">?PR?MAIN?RAM</a></li>
+</ul>
+
+<h2><a name="S129"></a>?PR?MAIN?RAM (C:00397BH - C:00397DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=18 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S142"></a>?PR?_IPC_TXSPPDATA?IPC (C:001F55H - C:001F5CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S138">?PR?_IPC_TXDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S138">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S143"></a>?PR?_IPC_TXBLEDATA?IPC (C:001F5DH - C:001F64H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S138">?PR?_IPC_TXDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S138">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S145"></a>?PR?_IPC_INITIALIZE?IPC (C:003681H - C:00368DH)</h2>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S4"></a>?PR?_YC_STORE_RECORD_LIST?BLUETOOTH (C:000FF7H - C:0010CDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S169">?PR?_XMEMCPY?UTILITIES</a>) Top=4 Bytes (<a href="#S15">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S15">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S6"></a>?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH (C:00180EH - C:00182AH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S100">?PR?LED_HANDLE?LED</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S100">?PR?LED_HANDLE?LED</a></li>
+</ul>
+
+<h2><a name="S7"></a>?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH (C:00182BH - C:0018C3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=8 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S9"></a>?PR?YC_CANCEL_RECONNECT?BLUETOOTH (C:000F11H - C:000F2FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S10"></a>?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH (C:001FC4H - C:001FCDH)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S11"></a>?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH (C:000C00H - C:000C3EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S12"></a>?PR?YC_G24_MODE_DISCOVERY?BLUETOOTH (C:000FE1H - C:000FF6H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S14"></a>?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH (C:0027E3H - C:002825H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S211">?PR?_IIC_READ?IIC</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S115">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S15"></a>?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH (C:002649H - C:00272EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a>) Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S178">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S175">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S17"></a>?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH (C:000D7BH - C:000E11H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=4 Bytes (<a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S57"></a>?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS (C:00091CH - C:000AEBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=10 Bytes (<a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S175">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S9">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S10">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S12">?PR?YC_G24_MODE_DISCOVERY?BLUETOOTH</a></li>
+<li><a href="#S14">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+<li><a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
+<li><a href="#S116">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S13">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S59"></a>?PR?_IPC_TXHIDDATA?KB_PROCESS (C:0018C4H - C:0019F6H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>) Top=6 Bytes (<a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S141">?PR?_IPC_TX24GDATA?IPC</a></li>
+<li><a href="#S140">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S63">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
+<li><a href="#S67">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S70">?PR?KB_KEYSCAN_SEND?KB_PROCESS</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S61"></a>?PR?_KB_SET_MULTIKEY?KB_PROCESS (C:0014F6H - C:001508H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S77">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S62"></a>?PR?_KB_SET_SYSTEMKEY?KB_PROCESS (C:002826H - C:002840H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S77">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S77">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S67"></a>?PR?KB_24G_GET_LED_STATUS?KB_PROCESS (C:001C87H - C:001CD7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=2 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S68"></a>?PR?KB_MOTION?KB_PROCESS (C:001D97H - C:001F52H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>) Top=2 Bytes (<a href="#S71">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S61">?PR?_KB_SET_MULTIKEY?KB_PROCESS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S148">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
+<li><a href="#S67">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S70">?PR?KB_KEYSCAN_SEND?KB_PROCESS</a></li>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S71">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S70"></a>?PR?KB_KEYSCAN_SEND?KB_PROCESS (C:001CD8H - C:001D96H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S71"></a>?PR?KB_NEED_KEYSCAN?KB_PROCESS (C:001F53H - C:001F54H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>) Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S72"></a>?PR?_KB_MOTION_KEYSCAN?KB_PROCESS (C:001111H - C:0014F5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S61">?PR?_KB_SET_MULTIKEY?KB_PROCESS</a></li>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S65">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S74"></a>?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS (C:002EEAH - C:002F0EH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S75">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S75">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S79"></a>?PR?_BIT_COUNT?KEYSCAN (C:002CDBH - C:002CE8H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S80"></a>?PR?_KEYIN?KEYSCAN (C:002D19H - C:002DDAH)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S81"></a>?PR?_KEYOUT?KEYSCAN (C:002DDBH - C:002EE9H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S83"></a>?PR?KSRAWINITIALIZE?KEYSCAN (C:0027BDH - C:0027DAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a>) Top=6 Bytes (<a href="#S87">?PR?KS_INITIALIZE?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S87">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S87"></a>?PR?KS_INITIALIZE?KEYSCAN (C:002779H - C:002783H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S83">?PR?KSRAWINITIALIZE?KEYSCAN</a>) Top=4 Bytes (<a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S83">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S88"></a>?PR?KS_UNISTALL?KEYSCAN (C:0030BAH - C:003151H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S201">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>) Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S201">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S207">?PR?GPIO_FILLPD?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S90"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:0032D7H - C:003434H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S92"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:002CE9H - C:002D18H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S94"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:002AB3H - C:002CDAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S90">?PR?KS_SCANMATRIX?KEYSCAN</a>) Top=4 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S92">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
+<li><a href="#S79">?PR?_BIT_COUNT?KEYSCAN</a></li>
+<li><a href="#S178">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S80">?PR?_KEYIN?KEYSCAN</a></li>
+<li><a href="#S81">?PR?_KEYOUT?KEYSCAN</a></li>
+<li><a href="#S90">?PR?KS_SCANMATRIX?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S65">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S97"></a>?PR?LED_ALL_SHUTDOWN?LED (C:000ED8H - C:000EF3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=4 Bytes (<a href="#S107">?PR?SYSTEM_G24_LONG_LPM?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S107">?PR?SYSTEM_G24_LONG_LPM?SYS</a></li>
+<li><a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S98"></a>?PR?LED_DEVICE_POWERON?LED (C:000FA2H - C:000FCEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S118">?PR?SYSTEY_LEDFLASH_1S?SYS</a></li>
+</ul>
+
+<h2><a name="S99"></a>?PR?LED_DEVICE_POWEROFF?LED (C:003435H - C:003465H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S118">?PR?SYSTEY_LEDFLASH_1S?SYS</a></li>
+</ul>
+
+<h2><a name="S100"></a>?PR?LED_HANDLE?LED (C:000AFEH - C:000BFFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S186">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S6">?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S101"></a>?PR?SYSTEM_CLEAR_MEM?SYS (C:001B1CH - C:001BB8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a>) Top=4 Bytes (<a href="#S104">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S104">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S102"></a>?PR?SYSTEM_IIC_CLK_SETUP?SYS (C:0027AAH - C:0027BCH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S103">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S103"></a>?PR?SYSTEM_HARDWARE_INIT?SYS (C:0027A3H - C:0027A9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S87">?PR?KS_INITIALIZE?KEYSCAN</a>) Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S87">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+<li><a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S102">?PR?SYSTEM_IIC_CLK_SETUP?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S104"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:001C18H - C:001C4CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S125">?PR?YC_ADC_INIT?ADC</a>) Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S101">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+<li><a href="#S125">?PR?YC_ADC_INIT?ADC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S106"></a>?PR?SYSTEM_LONG_SLEEP?SYS (C:000FCFH - C:000FD7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S100">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S116">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S107"></a>?PR?SYSTEM_G24_LONG_LPM?SYS (C:001BB9H - C:001BDEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a>) Top=2 Bytes (<a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S108"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:000FD8H - C:000FD7H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S113"></a>?PR?LED_TIMER500MS?SYS (C:003252H - C:0032A2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S186">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S204">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S114"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:0019F7H - C:001AEFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S107">?PR?SYSTEM_G24_LONG_LPM?SYS</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S115"></a>?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS (C:0035DBH - C:00362DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S14">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S14">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S116"></a>?PR?YC_PAIRING_TIMEROUT_500MS?SYS (C:00362EH - C:00367AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S117"></a>?PR?KB_BUTTON_PRESS_TIMER500MS?SYS (C:000C3FH - C:000D7AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S108">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S121"></a>?PR?KB_CB_INIT?SYS (C:00367BH - C:003680H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S125"></a>?PR?YC_ADC_INIT?ADC (C:00368EH - C:003759H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S104">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S104">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S126"></a>?PR?YC_ADC_CHECK?ADC (C:00375AH - C:00397AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=4 Bytes (<a href="#S128">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S128">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+</ul>
+
+<h2><a name="S128"></a>?PR?YC_ADC_CHECK_TIMER500MS?ADC (C:001FB2H - C:001FC3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S126">?PR?YC_ADC_CHECK?ADC</a>) Top=2 Bytes (<a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S126">?PR?YC_ADC_CHECK?ADC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S119">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S130"></a>?PR?_BUFSIZE?IPC (C:00397EH - C:0039D7H)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S134">?PR?_IPCTX?IPC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S134">?PR?_IPCTX?IPC</a></li>
+</ul>
+
+<h2><a name="S132"></a>?PR?_IPCRX?IPC (C:0039D8H - C:003A27H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S149">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S149">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+</ul>
+
+<h2><a name="S134"></a>?PR?_IPCTX?IPC (C:000887H - C:00091BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S130">?PR?_BUFSIZE?IPC</a>) Top=10 Bytes (<a href="#S138">?PR?_IPC_TXDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S130">?PR?_BUFSIZE?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S138">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S136"></a>?PR?_IPC_TXCONTROLCMD?IPC (C:00085FH - C:000886H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S65">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S106">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S9">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S12">?PR?YC_G24_MODE_DISCOVERY?BLUETOOTH</a></li>
+<li><a href="#S115">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S138"></a>?PR?_IPC_TXDATA?IPC (C:001BE5H - C:001C0BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S169">?PR?_XMEMCPY?UTILITIES</a>) Top=10 Bytes (<a href="#S140">?PR?_IPC_TXBREDRHIDDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S134">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S143">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S140">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S142">?PR?_IPC_TXSPPDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S140"></a>?PR?_IPC_TXBREDRHIDDATA?IPC (C:001C0CH - C:001C17H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S138">?PR?_IPC_TXDATA?IPC</a>) Top=8 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S138">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S141"></a>?PR?_IPC_TX24GDATA?IPC (C:001BDFH - C:001BE4H)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S146"></a>?PR?IPC_WAITLPM?IPC (C:000F95H - C:000FA1H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S111">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S147"></a>?PR?IPC_ABANDONLPM?IPC (C:003C37H - C:003C42H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S148"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:001F65H - C:001F7CH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S68">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S149"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:003A28H - C:003C30H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S132">?PR?_IPCRX?IPC</a>) Top=2 Bytes (<a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S132">?PR?_IPCRX?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S122">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S169"></a>?PR?_XMEMCPY?UTILITIES (C:0010CEH - C:001110H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S211">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S138">?PR?_IPC_TXDATA?IPC</a></li>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S171"></a>?PR?_DMEMCPY?UTILITIES (C:003C4AH - C:003C8DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=16 Bytes (<a href="#S213">?PR?_IIC_WRITE?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S213">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<h2><a name="S173"></a>?PR?_XMEMCLEAR?UTILITIES (C:001AF0H - C:001B1BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S101">?PR?SYSTEM_CLEAR_MEM?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S63">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
+<li><a href="#S67">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S101">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+<li><a href="#S114">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S175"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:00261CH - C:002648H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S15">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S177"></a>?PR?_DELAY1MS?UTILITIES (C:000EC0H - C:000ED7H)</h2>
+<p><br><b>Maximum Stack:</b> Top=14 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S146">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S117">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+<li><a href="#S116">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S13">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S178"></a>?PR?_COMPARE_STR?UTILITIES (C:00272FH - C:002778H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S94">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+<li><a href="#S15">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S180"></a>?PR?_GPIOSETBIT?GPIO (C:003D29H - C:003D89H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S186">?PR?_GPIO_SETOUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S192">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S190">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S188">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<h2><a name="S183"></a>?PR?_GPIOGETBIT?GPIO (C:0031F7H - C:003235H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S219">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S204">?PR?_GPIO_FLIPOUTBIT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S204">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+</ul>
+
+<h2><a name="S185"></a>?PR?_GPIO_GETINPUTSTATUS?GPIO (C:0031F1H - C:0031F6H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S201">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S201">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+</ul>
+
+<h2><a name="S186"></a>?PR?_GPIO_SETOUT?GPIO (C:000AECH - C:000AFDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S180">?PR?_GPIOSETBIT?GPIO</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S204">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S99">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S98">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S100">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S113">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S188"></a>?PR?_GPIO_SETPU?GPIO (C:003D8AH - C:003D9AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S180">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S190"></a>?PR?_GPIO_SETPD?GPIO (C:003DB9H - C:003DC9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S180">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S192"></a>?PR?_GPIO_SETOE?GPIO (C:003DCAH - C:003DDAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S180">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S194">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S196">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S194"></a>?PR?_GPIO_SETINPUT?GPIO (C:003D9BH - C:003DB8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S190">?PR?_GPIO_SETPD?GPIO</a>) Top=8 Bytes (<a href="#S83">?PR?KSRAWINITIALIZE?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S192">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S190">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S188">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S85">?PR?KSCOLINITIALIZE?KEYSCAN</a></li>
+<li><a href="#S83">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S196"></a>?PR?_GPIO_SETOUTPUT?GPIO (C:000EF4H - C:000F10H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S192">?PR?_GPIO_SETOE?GPIO</a>) Top=6 Bytes (<a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S192">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S188">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S120">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S97">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S99">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S98">?PR?LED_DEVICE_POWERON?LED</a></li>
+</ul>
+
+<h2><a name="S201"></a>?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO (C:003152H - C:003164H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S185">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=4 Bytes (<a href="#S88">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S185">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S88">?PR?KS_UNISTALL?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S204"></a>?PR?_GPIO_FLIPOUTBIT?GPIO (C:003236H - C:003251H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S183">?PR?_GPIOGETBIT?GPIO</a>) Top=4 Bytes (<a href="#S113">?PR?LED_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S186">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S183">?PR?_GPIOGETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S113">?PR?LED_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S207"></a>?PR?GPIO_FILLPD?GPIO (C:0032A3H - C:0032D6H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S88">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S88">?PR?KS_UNISTALL?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S210"></a>?PR?IICWAITDONE?IIC (C:0027DBH - C:0027E2H)</h2>
+<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S211">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S211">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S213">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<h2><a name="S211"></a>?PR?_IIC_READ?IIC (C:00204EH - C:0020FDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S210">?PR?IICWAITDONE?IIC</a>) Top=14 Bytes (<a href="#S14">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S210">?PR?IICWAITDONE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S14">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+<li><a href="#S13">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S213"></a>?PR?_IIC_WRITE?IIC (C:003C8EH - C:003D28H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S171">?PR?_DMEMCPY?UTILITIES</a>) Top=14 Bytes (<a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S171">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S210">?PR?IICWAITDONE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<h2><a name="S215"></a>?PR?_IIC_WRITEBLOCK?IIC (C:000E12H - C:000EBFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S213">?PR?_IIC_WRITE?IIC</a>) Top=12 Bytes (<a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S219">?C?LIB_CODE</a></li>
+<li><a href="#S177">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S213">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S75">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
+<li><a href="#S57">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S126">?PR?YC_ADC_CHECK?ADC</a></li>
+<li><a href="#S17">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S219"></a>?C?LIB_CODE (C:000003H - C:0005DEH)</h2>
+<p><br><b>Maximum Stack:</b> Top=18 Bytes (<a href="#S171">?PR?_DMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S92">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
+<li><a href="#S178">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S171">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S183">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S180">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S215">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S145">?PR?_IPC_INITIALIZE?IPC</a></li>
+<li><a href="#S136">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S59">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S132">?PR?_IPCRX?IPC</a></li>
+<li><a href="#S134">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S111">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S109">?PR?_KB_CB_HID?SYS</a></li>
+<li><a href="#S72">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S77">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+<li><a href="#S173">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S175">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S169">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S149">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S65">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S68">?PR?KB_MOTION?KB_PROCESS</a></li>
+<li><a href="#S126">?PR?YC_ADC_CHECK?ADC</a></li>
+<li><a href="#S125">?PR?YC_ADC_INIT?ADC</a></li>
+</ul>
+
+</body>
+</html>
Index: output/FW.MAP
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/FW.MAP	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/FW.MAP	(working copy)
@@ -0,0 +1,3894 @@
+LX51 LINKER/LOCATER V4.66.41.0                                                          03/11/2026  16:44:14  PAGE 1
+
+
+LX51 LINKER/LOCATER V4.66.41.0, INVOKED BY:
+C:\KEIL\C51\BIN\LX51.EXE OUTPUT/BLUETOOTH.OBJ, OUTPUT/GLOBAL_VARIABLE.OBJ, OUTPUT/KB_PROCESS.OBJ, OUTPUT/KEYSCAN.OBJ, OU
+>> TPUT/LED.OBJ, OUTPUT/SYS.OBJ, OUTPUT/ADC.OBJ, OUTPUT/RAM.OBJ, OUTPUT/..\PATCH\IPC.OBJ, OUTPUT/..\PATCH\UTILITIES.OBJ,
+>>  OUTPUT/..\PATCH\GPIO.OBJ, OUTPUT/..\PATCH\IIC.OBJ TO OUTPUT\FW CLASSES (XDATA (X:0X4DD0-X:0X4F40), CODE (C:0-C:0XFFF
+>> F), DATA (D:0X10-0X7F), IDATA (I:0X80-0XCF)) SEGMENTS (?STACK (D:0XD0)) NOOVERLAY PAGELENGTH (60000) CODE
+
+
+CPU MODE:     8051 MODE
+MEMORY MODEL: LARGE WITH FLOATING POINT ARITHMETIC
+
+
+INPUT MODULES INCLUDED:
+  OUTPUT/BLUETOOTH.OBJ (BLUETOOTH)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/GLOBAL_VARIABLE.OBJ (GLOBAL_VARIABLE)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/KB_PROCESS.OBJ (KB_PROCESS)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/KEYSCAN.OBJ (KEYSCAN)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/LED.OBJ (LED)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/SYS.OBJ (SYS)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/ADC.OBJ (ADC)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/RAM.OBJ (RAM)
+         COMMENT TYPE 0: C51 V9.54
+  OUTPUT/..\PATCH\IPC.OBJ (IPC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\UTILITIES.OBJ (UTILITIES)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\GPIO.OBJ (GPIO)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\IIC.OBJ (IIC)
+         COMMENT TYPE 0: C51 V9.00
+  C:\KEIL\C51\LIB\C51FPL.LIB (?C?FPADD)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51FPL.LIB (?C?FPMUL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51FPL.LIB (?C?FCAST)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51FPL.LIB (?C?CASTF)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51FPL.LIB (?C?FPGETOPN)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C_STARTUP)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?COPY)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CLDPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CLDOPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CSTPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?IILDX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ILDIX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?LMUL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ULDIV)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?LNEG)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ULCMP)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?LSTXDATA)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?LSTKXDATA)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CCASE)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ICALL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C_INIT)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+
+
+ACTIVE MEMORY CLASSES OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+BASE        START       END         USED      MEMORY CLASS
+==========================================================
+X:000000H   X:004DD0H   X:004F40H   0003CAH   XDATA
+C:000000H   C:000000H   C:00FFFFH   003D64H   CODE
+I:000000H   I:000010H   I:00007FH   000008H   DATA
+I:000000H   I:000080H   I:0000CFH   000001H   IDATA
+C:000000H   C:000000H   C:00FFFFH   0000B6H   CONST
+I:000020H.0 I:000020H.0 I:00002FH.7 000001H.2 BIT
+
+
+MEMORY MAP OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+START     STOP      LENGTH    ALIGN  RELOC    MEMORY CLASS   SEGMENT NAME
+=========================================================================
+
+* * * * * * * * * * *   D A T A   M E M O R Y   * * * * * * * * * * * * *
+000000H   000007H   000008H   ---    AT..     DATA           "REG BANK 0"
+000008H.0 00001FH.7 000018H.0 ---    ---      **GAP**
+000020H.0 000020H.0 000000H.1 BIT    UNIT     BIT            ?BI?_GPIOSETBIT?GPIO
+000020H.1 000020H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUT?GPIO
+000020H.2 000020H.2 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPU?GPIO
+000020H.3 000020H.3 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPD?GPIO
+000020H.4 000020H.4 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOE?GPIO
+000020H.5 000020H.5 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETINPUT?GPIO
+000020H.6 000020H.6 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUTPUT?GPIO
+000020H.7 000020H.7 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUP?GPIO
+000021H.0 000021H.0 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+000021H.1 000021H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_FLIPOUTBIT?GPIO
+000021H.2 0000CFH   0000AEH.6 ---    ---      **GAP**
+0000D0H   0000D0H   000001H   BYTE   UNIT     IDATA          ?STACK
+
+* * * * * * * * * * *   C O D E   M E M O R Y   * * * * * * * * * * * * *
+000000H   000002H   000003H   ---    OFFS..   CODE           ?CO??C_STARTUP?0
+000003H   0005DEH   0005DCH   BYTE   UNIT     CODE           ?C?LIB_CODE
+0005DFH   00066AH   00008CH   BYTE   UNIT     CODE           ?C_C51STARTUP
+00066BH   000680H   000016H   BYTE   UNIT     CODE           ?C_INITSEG
+000681H   000733H   0000B3H   BYTE   UNIT     CONST          ?CO?GLOBAL_VARIABLE
+000734H   000736H   000003H   BYTE   UNIT     CONST          ?CO?IPC
+000737H   00085EH   000128H   BYTE   UNIT     CODE           ?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH
+00085FH   000886H   000028H   BYTE   UNIT     CODE           ?PR?_IPC_TXCONTROLCMD?IPC
+000887H   00091BH   000095H   BYTE   UNIT     CODE           ?PR?_IPCTX?IPC
+00091CH   000AEBH   0001D0H   BYTE   UNIT     CODE           ?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+000AECH   000AFDH   000012H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUT?GPIO
+000AFEH   000BFFH   000102H   BYTE   UNIT     CODE           ?PR?LED_HANDLE?LED
+000C00H   000C3EH   00003FH   BYTE   UNIT     CODE           ?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH
+000C3FH   000D7AH   00013CH   BYTE   UNIT     CODE           ?PR?KB_BUTTON_PRESS_TIMER500MS?SYS
+000D7BH   000E11H   000097H   BYTE   UNIT     CODE           ?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH
+000E12H   000EBFH   0000AEH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
+000EC0H   000ED7H   000018H   BYTE   UNIT     CODE           ?PR?_DELAY1MS?UTILITIES
+000ED8H   000EF3H   00001CH   BYTE   UNIT     CODE           ?PR?LED_ALL_SHUTDOWN?LED
+000EF4H   000F10H   00001DH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUTPUT?GPIO
+000F11H   000F2FH   00001FH   BYTE   UNIT     CODE           ?PR?YC_CANCEL_RECONNECT?BLUETOOTH
+000F30H   000F94H   000065H   BYTE   UNIT     CODE           ?PR?YC_SYSTEM_MAIN?SYS
+000F95H   000FA1H   00000DH   BYTE   UNIT     CODE           ?PR?IPC_WAITLPM?IPC
+000FA2H   000FCEH   00002DH   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWERON?LED
+000FCFH   000FD7H   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_LONG_SLEEP?SYS
+000FD8H   ---       000000H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
+000FD8H   000FE0H   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
+000FE1H   000FF6H   000016H   BYTE   UNIT     CODE           ?PR?YC_G24_MODE_DISCOVERY?BLUETOOTH
+000FF7H   0010CDH   0000D7H   BYTE   UNIT     CODE           ?PR?_YC_STORE_RECORD_LIST?BLUETOOTH
+0010CEH   001110H   000043H   BYTE   UNIT     CODE           ?PR?_XMEMCPY?UTILITIES
+001111H   0014F5H   0003E5H   BYTE   UNIT     CODE           ?PR?_KB_MOTION_KEYSCAN?KB_PROCESS
+0014F6H   001508H   000013H   BYTE   UNIT     CODE           ?PR?_KB_SET_MULTIKEY?KB_PROCESS
+001509H   00180DH   000305H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
+00180EH   00182AH   00001DH   BYTE   UNIT     CODE           ?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH
+00182BH   0018C3H   000099H   BYTE   UNIT     CODE           ?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
+0018C4H   0019F6H   000133H   BYTE   UNIT     CODE           ?PR?_IPC_TXHIDDATA?KB_PROCESS
+0019F7H   001AEFH   0000F9H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
+001AF0H   001B1BH   00002CH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR?UTILITIES
+001B1CH   001BB8H   00009DH   BYTE   UNIT     CODE           ?PR?SYSTEM_CLEAR_MEM?SYS
+001BB9H   001BDEH   000026H   BYTE   UNIT     CODE           ?PR?SYSTEM_G24_LONG_LPM?SYS
+001BDFH   001BE4H   000006H   BYTE   UNIT     CODE           ?PR?_IPC_TX24GDATA?IPC
+001BE5H   001C0BH   000027H   BYTE   UNIT     CODE           ?PR?_IPC_TXDATA?IPC
+001C0CH   001C17H   00000CH   BYTE   UNIT     CODE           ?PR?_IPC_TXBREDRHIDDATA?IPC
+001C18H   001C4CH   000035H   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
+001C4DH   001C86H   00003AH   BYTE   UNIT     CODE           ?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+001C87H   001CD7H   000051H   BYTE   UNIT     CODE           ?PR?KB_24G_GET_LED_STATUS?KB_PROCESS
+001CD8H   001D96H   0000BFH   BYTE   UNIT     CODE           ?PR?KB_KEYSCAN_SEND?KB_PROCESS
+001D97H   001F52H   0001BCH   BYTE   UNIT     CODE           ?PR?KB_MOTION?KB_PROCESS
+001F53H   001F54H   000002H   BYTE   UNIT     CODE           ?PR?KB_NEED_KEYSCAN?KB_PROCESS
+001F55H   001F5CH   000008H   BYTE   UNIT     CODE           ?PR?_IPC_TXSPPDATA?IPC
+001F5DH   001F64H   000008H   BYTE   UNIT     CODE           ?PR?_IPC_TXBLEDATA?IPC
+001F65H   001F7CH   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
+001F7DH   001FB1H   000035H   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER500MS?SYS
+001FB2H   001FC3H   000012H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK_TIMER500MS?ADC
+001FC4H   001FCDH   00000AH   BYTE   UNIT     CODE           ?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH
+001FCEH   00204DH   000080H   BYTE   UNIT     CODE           ?PR?YC_START_RECONNECT?BLUETOOTH
+00204EH   0020FDH   0000B0H   BYTE   UNIT     CODE           ?PR?_IIC_READ?IIC
+0020FEH   00261BH   00051EH   BYTE   UNIT     CODE           ?PR?_KB_CB_EVENT?SYS
+00261CH   002648H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+002649H   00272EH   0000E6H   BYTE   UNIT     CODE           ?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH
+00272FH   002778H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
+002779H   002783H   00000BH   BYTE   UNIT     CODE           ?PR?KS_INITIALIZE?KEYSCAN
+002784H   0027A2H   00001FH   BYTE   UNIT     CODE           ?PR?KSCOLINITIALIZE?KEYSCAN
+0027A3H   0027A9H   000007H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_INIT?SYS
+0027AAH   0027BCH   000013H   BYTE   UNIT     CODE           ?PR?SYSTEM_IIC_CLK_SETUP?SYS
+0027BDH   0027DAH   00001EH   BYTE   UNIT     CODE           ?PR?KSRAWINITIALIZE?KEYSCAN
+0027DBH   0027E2H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
+0027E3H   002825H   000043H   BYTE   UNIT     CODE           ?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH
+002826H   002840H   00001BH   BYTE   UNIT     CODE           ?PR?_KB_SET_SYSTEMKEY?KB_PROCESS
+002841H   002AB2H   000272H   BYTE   UNIT     CODE           ?PR?KB_BT_PINCODE_ENTER?KB_PROCESS
+002AB3H   002CDAH   000228H   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
+002CDBH   002CE8H   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
+002CE9H   002D18H   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
+002D19H   002DDAH   0000C2H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
+002DDBH   002EE9H   00010FH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
+002EEAH   002F0EH   000025H   BYTE   UNIT     CODE           ?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS
+002F0FH   0030B9H   0001ABH   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
+0030BAH   003151H   000098H   BYTE   UNIT     CODE           ?PR?KS_UNISTALL?KEYSCAN
+003152H   003164H   000013H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+003165H   0031F0H   00008CH   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUP?GPIO
+0031F1H   0031F6H   000006H   BYTE   UNIT     CODE           ?PR?_GPIO_GETINPUTSTATUS?GPIO
+0031F7H   003235H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIOGETBIT?GPIO
+003236H   003251H   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_FLIPOUTBIT?GPIO
+003252H   0032A2H   000051H   BYTE   UNIT     CODE           ?PR?LED_TIMER500MS?SYS
+0032A3H   0032D6H   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
+0032D7H   003434H   00015EH   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
+003435H   003465H   000031H   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWEROFF?LED
+003466H   003499H   000034H   BYTE   UNIT     CODE           ?PR?SYSTEY_LEDFLASH_1S?SYS
+00349AH   0035CAH   000131H   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
+0035CBH   0035DAH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
+0035DBH   00362DH   000053H   BYTE   UNIT     CODE           ?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS
+00362EH   00367AH   00004DH   BYTE   UNIT     CODE           ?PR?YC_PAIRING_TIMEROUT_500MS?SYS
+00367BH   003680H   000006H   BYTE   UNIT     CODE           ?PR?KB_CB_INIT?SYS
+003681H   00368DH   00000DH   BYTE   UNIT     CODE           ?PR?_IPC_INITIALIZE?IPC
+00368EH   003759H   0000CCH   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
+00375AH   00397AH   000221H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
+00397BH   00397DH   000003H   BYTE   UNIT     CODE           ?PR?MAIN?RAM
+00397EH   0039D7H   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
+0039D8H   003A27H   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+003A28H   003C30H   000209H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
+003C31H   003C36H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+003C37H   003C42H   00000CH   BYTE   UNIT     CODE           ?PR?IPC_ABANDONLPM?IPC
+003C43H   003C49H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+003C4AH   003C8DH   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+003C8EH   003D28H   00009BH   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
+003D29H   003D89H   000061H   BYTE   UNIT     CODE           ?PR?_GPIOSETBIT?GPIO
+003D8AH   003D9AH   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPU?GPIO
+003D9BH   003DB8H   00001EH   BYTE   UNIT     CODE           ?PR?_GPIO_SETINPUT?GPIO
+003DB9H   003DC9H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPD?GPIO
+003DCAH   003DDAH   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOE?GPIO
+003DDBH   003E19H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+
+* * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
+000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?31
+000046H   0000A2H   00005DH   ---    ---      **GAP**
+0000A3H   0000A6H   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?1
+0000A7H   0000AAH   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?0
+0000ABH   0003CFH   000325H   ---    ---      **GAP**
+0003D0H   0003D5H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?2
+0003D6H   000445H   000070H   ---    ---      **GAP**
+000446H   000446H   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?9
+000447H   00054EH   000108H   ---    ---      **GAP**
+00054FH   00054FH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?1
+000550H   00055FH   000010H   BYTE   OFFS..   XDATA          ?XD?IPC?11
+000560H   000B7DH   00061EH   ---    ---      **GAP**
+000B7EH   000B7EH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?0
+000B7FH   000B7FH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?5
+000B80H   000B80H   000001H   ---    ---      **GAP**
+000B81H   000B81H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?8
+000B82H   000B82H   000001H   ---    ---      **GAP**
+000B83H   000BE6H   000064H   BYTE   OFFS..   XDATA          ?XD?IIC?1
+000BE7H   000C4AH   000064H   BYTE   OFFS..   XDATA          ?XD?IPC?6
+000C4BH   000CAEH   000064H   BYTE   OFFS..   XDATA          ?XD?IPC?3
+000CAFH   000CB2H   000004H   BYTE   OFFS..   XDATA          ?XD?IIC?0
+000CB3H   004130H   00347EH   ---    ---      **GAP**
+004131H   004131H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?10
+004132H   004212H   0000E1H   ---    ---      **GAP**
+004213H   004213H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?34
+004214H   00425DH   00004AH   ---    ---      **GAP**
+00425EH   00425EH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?14
+00425FH   004261H   000003H   ---    ---      **GAP**
+004262H   004271H   000010H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?26
+004272H   004273H   000002H   ---    ---      **GAP**
+004274H   004279H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?30
+00427AH   00447AH   000201H   ---    ---      **GAP**
+00447BH   00448AH   000010H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?27
+00448BH   00448BH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?9
+00448CH   0044F8H   00006DH   ---    ---      **GAP**
+0044F9H   0044FEH   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?22
+0044FFH   004701H   000203H   ---    ---      **GAP**
+004702H   004702H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?24
+004703H   0047F3H   0000F1H   ---    ---      **GAP**
+0047F4H   0047F5H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?29
+0047F6H   0047FFH   00000AH   ---    ---      **GAP**
+004800H   004809H   00000AH   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?21
+00480AH   004B99H   000390H   ---    ---      **GAP**
+004B9AH   004B9BH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?4
+004B9CH   004B9DH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?8
+004B9EH   004B9FH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?2
+004BA0H   004BA1H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?7
+004BA2H   004BA4H   000003H   ---    ---      **GAP**
+004BA5H   004BA6H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?14
+004BA7H   004BEAH   000044H   ---    ---      **GAP**
+004BEBH   004BEEH   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?0
+004BEFH   004BEFH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?13
+004BF0H   004BFFH   000010H   ---    ---      **GAP**
+004C00H   004C03H   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?5
+004C04H   004C5DH   00005AH   ---    ---      **GAP**
+004C5EH   004C5FH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?12
+004C60H   004C8CH   00002DH   ---    ---      **GAP**
+004C8DH   004C8DH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?13
+004C8EH   004C8EH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?10
+004C8FH   004C8FH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?28
+004C90H   004C90H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?16
+004C91H   004C92H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?7
+004C93H   004C94H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?11
+004C95H   004C96H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?33
+004C97H   004CB5H   00001FH   ---    ---      **GAP**
+004CB6H   004CB6H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?19
+004CB7H   004CB7H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?17
+004CB8H   004CBEH   000007H   ---    ---      **GAP**
+004CBFH   004D23H   000065H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?3
+004D24H   004D37H   000014H   ---    ---      **GAP**
+004D38H   004D38H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?32
+004D39H   004D3CH   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?36
+004D3DH   004D3DH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?35
+004D3EH   004D3FH   000002H   ---    ---      **GAP**
+004D40H   004D43H   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?18
+004D44H   004D45H   000002H   ---    ---      **GAP**
+004D46H   004D46H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?15
+004D47H   004D50H   00000AH   ---    ---      **GAP**
+004D51H   004D51H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?20
+004D52H   004D7CH   00002BH   ---    ---      **GAP**
+004D7DH   004D7DH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?6
+004D7EH   004D7EH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?12
+004D7FH   004D92H   000014H   ---    ---      **GAP**
+004D93H   004DA6H   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?25
+004DA7H   004DA7H   000001H   ---    ---      **GAP**
+004DA8H   004DBBH   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?1
+004DBCH   004DCFH   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?23
+004DD0H   004E69H   00009AH   BYTE   UNIT     XDATA          ?XD?GLOBAL_VARIABLE
+004E6AH   004E7BH   000012H   BYTE   UNIT     XDATA          ?XD?SYS
+004E7CH   004E8DH   000012H   BYTE   UNIT     XDATA          ?XD?IPC
+004E8EH   004E9EH   000011H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
+004E9FH   004EACH   00000EH   BYTE   UNIT     XDATA          ?XD?_IPC_TXHIDDATA?KB_PROCESS
+004EADH   004EB7H   00000BH   BYTE   UNIT     XDATA          ?XD?KS_GETCURRENTEVT?KEYSCAN
+004EB8H   004EC0H   000009H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITEBLOCK?IIC
+004EC1H   004EC8H   000008H   BYTE   UNIT     XDATA          ?XD?_DMEMCPY?UTILITIES
+004EC9H   004ECFH   000007H   BYTE   UNIT     XDATA          ?XD?KEYSCAN
+004ED0H   004ED6H   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
+004ED7H   004EDDH   000007H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
+004EDEH   004EE3H   000006H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
+004EE4H   004EE9H   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
+004EEAH   004EEFH   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
+004EF0H   004EF4H   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
+004EF5H   004EF9H   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
+004EFAH   004EFDH   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
+004EFEH   004F01H   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
+004F02H   004F05H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
+004F06H   004F08H   000003H   BYTE   UNIT     XDATA          ?XD?KB_BT_PINCODE_ENTER?KB_PROCESS
+004F09H   004F0BH   000003H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
+004F0CH   004F0EH   000003H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
+004F0FH   004F11H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
+004F12H   004F14H   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
+004F15H   004F17H   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
+004F18H   004F1AH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
+004F1BH   004F1DH   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
+004F1EH   004F1FH   000002H   BYTE   UNIT     XDATA          ?XD?_YC_STORE_RECORD_LIST?BLUETOOTH
+004F20H   004F21H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+004F22H   004F23H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
+004F24H   004F25H   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
+004F26H   004F26H   000001H   BYTE   UNIT     XDATA          ?XD?_YC_LOAD_RECORD_LIST?BLUETOOTH
+004F27H   004F27H   000001H   BYTE   UNIT     XDATA          ?XD?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
+004F28H   004F28H   000001H   BYTE   UNIT     XDATA          ?XD?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH
+004F29H   004F29H   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+004F2AH   004F2AH   000001H   BYTE   UNIT     XDATA          ?XD?_KEYOUT?KEYSCAN
+004F2BH   004F2BH   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
+004F2CH   004F2CH   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
+004F2DH   004F2DH   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
+004F2EH   004F2EH   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
+004F2FH   004F2FH   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
+004F30H   004F30H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+004F31H   004F31H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+004F32H   004F32H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+004F33H   00800FH   0030DDH   ---    ---      **GAP**
+008010H   008010H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
+
+
+
+PUBLIC SYMBOLS OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+      VALUE       CLASS    TYPE      PUBLIC SYMBOL NAME
+      =================================================
+      02004ED0H   XDATA    BYTE      ?_compare_str?BYTE
+      02004EC1H   XDATA    BYTE      ?_dmemcpy?BYTE
+      00000020H.5 BIT      BIT       ?_GPIO_SetInput?BIT
+      00000020H.4 BIT      BIT       ?_GPIO_Setoe?BIT
+      00000020H.1 BIT      BIT       ?_GPIO_Setout?BIT
+      00000020H.6 BIT      BIT       ?_GPIO_SetOutput?BIT
+      00000020H.3 BIT      BIT       ?_GPIO_SetPd?BIT
+      00000020H.2 BIT      BIT       ?_GPIO_SetPu?BIT
+      00000020H.7 BIT      BIT       ?_GPIO_SetWakeup?BIT
+      02004EEAH   XDATA    BYTE      ?_xmemcpy?BYTE
+      0100023FH   CODE     ---       ?C?CASTF
+      010005B3H   CODE     ---       ?C?CCASE
+      010003CFH   CODE     ---       ?C?CLDOPTR
+      010003B6H   CODE     ---       ?C?CLDPTR
+      00000000H   NUMBER   ---       ?C?CODESEG
+      01000390H   CODE     ---       ?C?COPY
+      010003FCH   CODE     ---       ?C?CSTPTR
+      0100020BH   CODE     ---       ?C?FCASTC
+      01000206H   CODE     ---       ?C?FCASTI
+      01000201H   CODE     ---       ?C?FCASTL
+      0100000AH   CODE     ---       ?C?FPADD
+      01000276H   CODE     ---       ?C?FPGETOPN2
+      010000FBH   CODE     ---       ?C?FPMUL
+      010002ABH   CODE     ---       ?C?FPNANRESULT
+      010002B5H   CODE     ---       ?C?FPOVERFLOW
+      0100028DH   CODE     ---       ?C?FPRESULT
+      010002A1H   CODE     ---       ?C?FPRESULT2
+      01000006H   CODE     ---       ?C?FPSUB
+      010002B2H   CODE     ---       ?C?FPUNDERFLOW
+      010005D9H   CODE     ---       ?C?ICALL
+      010005DDH   CODE     ---       ?C?ICALL2
+      0100040EH   CODE     ---       ?C?IILDX
+      01000424H   CODE     ---       ?C?ILDIX
+      0100043AH   CODE     ---       ?C?LMUL
+      01000557H   CODE     ---       ?C?LNEG
+      01000582H   CODE     ---       ?C?LSTKXDATA
+      01000576H   CODE     ---       ?C?LSTXDATA
+      01000565H   CODE     ---       ?C?ULCMP
+      010004C5H   CODE     ---       ?C?ULDIV
+      00000000H   NUMBER   ---       ?C?XDATASEG
+      01000626H   CODE     ---       ?C_START
+      01000000H   CODE     ---       ?C_STARTUP
+      01002CE9H   CODE     ---       _array_is_empty
+      0100272FH   CODE     ---       _compare_str
+      01000EC0H   CODE     ---       _Delay1ms
+      01003C4AH   CODE     ---       _dmemcpy
+      01003DDBH   CODE     ---       _GPIO_ClearWakeup
+      01003236H   CODE     ---       _GPIO_FlipOutBit
+      010031F1H   CODE     ---       _GPIO_GetInputStatus
+      01003D9BH   CODE     ---       _GPIO_SetInput
+      01003DCAH   CODE     ---       _GPIO_Setoe
+      01000AECH   CODE     ---       _GPIO_Setout
+      01000EF4H   CODE     ---       _GPIO_SetOutput
+      01003DB9H   CODE     ---       _GPIO_SetPd
+      01003D8AH   CODE     ---       _GPIO_SetPu
+      01003165H   CODE     ---       _GPIO_SetWakeup
+      01003152H   CODE     ---       _GPIO_SetWakeupByCurrentState
+      0100204EH   CODE     ---       _IIC_Read
+      01003C8EH   CODE     ---       _IIC_write
+      01000E12H   CODE     ---       _IIC_WriteBlock
+      01003681H   CODE     ---       _IPC_Initialize
+      01001BDFH   CODE     ---       _IPC_Tx24GData
+      01001F5DH   CODE     ---       _IPC_TxBleData
+      01001C0CH   CODE     ---       _IPC_TxBREDRHidData
+      0100085FH   CODE     ---       _IPC_TxControlCmd
+      01001BE5H   CODE     ---       _IPC_TxData
+      010018C4H   CODE     ---       _IPC_TxHidData
+      01001F55H   CODE     ---       _IPC_TxSppData
+      01002EEAH   CODE     ---       _kb_combination_key_press
+      01001111H   CODE     ---       _kb_motion_keyscan
+      01001509H   CODE     ---       _kb_multikey_setup
+      01001C4DH   CODE     ---       _kb_send_combination_key
+      010014F6H   CODE     ---       _kb_set_multikey
+      01002826H   CODE     ---       _kb_set_systemkey
+      01002F0FH   CODE     ---       _key_fn_function
+      01001AF0H   CODE     ---       _xmemclear
+      0100261CH   CODE     ---       _xmemclear_ff
+      010010CEH   CODE     ---       _xmemcpy
+      0100091CH   CODE     ---       _YC_key_action_handle
+      01000737H   CODE     ---       _YC_load_record_list
+      01000FF7H   CODE     ---       _YC_store_record_list
+      02004DFFH   XDATA    BYTE      action_timeout
+      02004E02H   XDATA    ---       bd_key_record_list
+      02004DD3H   XDATA    BYTE      ble_fast_connect_flag
+      02004DF8H   XDATA    BYTE      ble_reconnect_flag
+      02004DD4H   XDATA    BYTE      ble_send_secutiry_request_timer
+      02004C8DH   XDATA    BYTE      btstimer
+      02004BA5H   XDATA    WORD      bttimer
+      02004C8EH   XDATA    BYTE      c51stimer
+      02004C5EH   XDATA    WORD      c51timer
+      01000681H   CONST    ---       col
+      02004DE9H   XDATA    BYTE      control_key_flag
+      02000B7EH   XDATA    BYTE      current_task
+      02004DF9H   XDATA    BYTE      delayChgInvTimer
+      02004E01H   XDATA    BYTE      delayChgInvTimer_last
+      02004E69H   XDATA    BYTE      fast_connect_flag
+      02004DF5H   XDATA    BYTE      fn_flag
+      02004DFDH   XDATA    BYTE      fn_flag_last
+      02004DFAH   XDATA    BYTE      fn_lock_flag
+      02004DE8H   XDATA    BYTE      fn_tx_flag
+      02004CBFH   XDATA    ---       g_variable
+      02004DD5H   XDATA    BYTE      get_24g_led_send
+      010032A3H   CODE     ---       GPIO_fillpd
+      02004800H   XDATA    ---       hidBuff
+      02004DF4H   XDATA    BYTE      iOS_rec_pinCode
+      01003C37H   CODE     ---       IPC_AbandonLpm
+      01003A28H   CODE     ---       IPC_DealSingleStep
+      01003C31H   CODE     ---       IPC_GetBBDIsconnectReason
+      01001F65H   CODE     ---       IPC_IsTxBuffEmpty
+      01000F95H   CODE     ---       IPC_WaitLpm
+      02000550H   XDATA    ---       ipcPin
+      0200054FH   XDATA    BYTE      ipcPinlen
+      02000C4BH   XDATA    ---       ipcReadBuff
+      02000BE7H   XDATA    ---       ipcSendBuff
+      01001C87H   CODE     ---       kb_24g_get_led_status
+      01002841H   CODE     ---       kb_bt_pincode_enter
+      01000C3FH   CODE     ---       kb_button_press_timer500ms
+      02004DD8H   XDATA    ---       kb_hidBuff1
+      02004DE0H   XDATA    ---       kb_hidBuff2
+      01001CD8H   CODE     ---       kb_keyscan_send
+      01001F53H   CODE     ---       kb_need_keyscan
+      02004DFBH   XDATA    BYTE      key_value_temp
+      02004DF7H   XDATA    BYTE      keyCount
+      01002AB3H   CODE     ---       KS_GetCurrentEvt
+      01002779H   CODE     ---       KS_Initialize
+      010032D7H   CODE     ---       KS_ScanMatrix
+      010030BAH   CODE     ---       KS_Unistall
+      02004213H   XDATA    BYTE      kscurrmult
+      02004EC9H   XDATA    ---       ksEvtPool
+      01000696H   CONST    ---       ksMap
+      02004DA8H   XDATA    ---       ksSelMapCheck
+      02004DBCH   XDATA    ---       ksSelMapCurr
+      02004D93H   XDATA    ---       ksSelMapOld
+      02004DD0H   XDATA    ---       le_lap_temp
+      02004D39H   XDATA    DWORD     le_pin_code
+      02004DD7H   XDATA    BYTE      le_pin_code_len
+      02004DECH   XDATA    BYTE      le_send_battery_level_delay_count
+      02004DEBH   XDATA    BYTE      le_send_battery_level_flag
+      01000ED8H   CODE     ---       LED_all_shutdown
+      01003435H   CODE     ---       LED_device_poweroff
+      01000FA2H   CODE     ---       LED_device_poweron
+      01000AFEH   CODE     ---       LED_handle
+      01003252H   CODE     ---       LED_timer500ms
+      02004DEFH   XDATA    BYTE      long_press_flag
+      02000B7FH   XDATA    BYTE      lpm_flag
+      02004C00H   XDATA    ---       m_24g_addr
+      02004D40H   XDATA    ---       m_24g_enter_hibernate
+      02004D46H   XDATA    BYTE      m_24g_led_flag
+      02004BEFH   XDATA    BYTE      m_24g_pairing_sm
+      02004BEBH   XDATA    ---       m_24g_paring_addr
+      02004C91H   XDATA    WORD      m_adc0vBase
+      02004C93H   XDATA    WORD      m_adc3vValue
+      02004C90H   XDATA    BYTE      m_adc_channel
+      02004C8FH   XDATA    BYTE      m_adc_config_flag
+      02004C95H   XDATA    WORD      m_adcCurrentValue
+      02004CB7H   XDATA    BYTE      m_caps_num_lock
+      02004DF3H   XDATA    BYTE      m_caps_num_lock_last
+      02004D51H   XDATA    BYTE      m_customize_timer
+      02004D7EH   XDATA    BYTE      m_le_battery_level_display_enable
+      020044F9H   XDATA    ---       m_le_lap
+      0200447BH   XDATA    ---       m_le_ltk
+      02004D3DH   XDATA    BYTE      m_le_send_security_request_flag
+      0200425EH   XDATA    BYTE      m_link_key_exists
+      02004262H   XDATA    ---       m_linkkey
+      02004702H   XDATA    BYTE      m_local_name_length
+      02004131H   XDATA    BYTE      m_lpm_mode
+      0200448BH   XDATA    BYTE      m_ltk_exists
+      02004D7DH   XDATA    BYTE      m_pc_sleep_flag
+      02004CB6H   XDATA    BYTE      m_power_on_flag
+      02004274H   XDATA    ---       m_reconn_addr
+      02004D38H   XDATA    BYTE      m_reconnect_continue
+      02000040H   XDATA    ---       m_remote_addr
+      020003D0H   XDATA    ---       m_remote_le_addr
+      02008010H   XDATA    BYTE      m_reset_reg
+      020047F4H   XDATA    WORD      m_ui_state_map
+      02000B81H   XDATA    BYTE      m_wakup_from_power_flag
+      0100397BH   CODE     ---       main
+      02004E5FH   XDATA    BYTE      mult_key_status
+      02004E00H   XDATA    BYTE      mult_key_value
+      02004E60H   XDATA    ---       multikey
+      02004DF1H   XDATA    BYTE      pinCode_flag
+      02004DFEH   XDATA    BYTE      power_on_flag
+      02004DF6H   XDATA    BYTE      press_long_time_flag
+      02004DD6H   XDATA    BYTE      recon_index
+      02004DF0H   XDATA    BYTE      repeat_send_24g
+      02004DEDH   XDATA    BYTE      SendReport1
+      02004DEEH   XDATA    BYTE      SendReport2
+      02004DF2H   XDATA    BYTE      standard_key_release_flag
+      02004DEAH   XDATA    BYTE      switch_role_timer
+      01001BB9H   CODE     ---       System_G24_long_lpm
+      02004DFCH   XDATA    BYTE      system_key_press
+      01000FCFH   CODE     ---       System_long_sleep
+      01000FD8H   CODE     ---       System_Reset_Connect
+      01001C18H   CODE     ---       System_Software_init
+      0100375AH   CODE     ---       YC_adc_check
+      01001FB2H   CODE     ---       YC_adc_check_timer500ms
+      0100368EH   CODE     ---       YC_adc_init
+      01000F11H   CODE     ---       YC_cancel_reconnect
+      0100180EH   CODE     ---       YC_check_is_connected
+      0100182BH   CODE     ---       YC_check_need_reconnected
+      01002649H   CODE     ---       YC_clear_BT_same_address_record
+      01001FC4H   CODE     ---       YC_clear_reconnect_flag
+      010019F7H   CODE     ---       YC_connect_timeout_500ms
+      01000C00H   CODE     ---       YC_disconnect_all_link
+      01000FE1H   CODE     ---       YC_g24_mode_discovery
+      010027E3H   CODE     ---       YC_get_ble_ramdon_lap
+      020000A7H   XDATA    ---       YC_GPIOWakeupH
+      020000A3H   XDATA    ---       YC_GPIOWakeupL
+      01003C43H   CODE     ---       YC_Ice_break
+      0100362EH   CODE     ---       YC_pairing_timerout_500ms
+      01001FCEH   CODE     ---       YC_start_reconnect
+      01000F30H   CODE     ---       YC_System_Main
+      01000D7BH   CODE     ---       YC_update_eeprom_data
+      010035DBH   CODE     ---       YC_wait_disconnect_timer500ms
+
+
+
+SYMBOL TABLE OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+      VALUE       REP       CLASS    TYPE      SYMBOL NAME
+      ====================================================
+      ---         MODULE    ---      ---       BLUETOOTH
+      01000D7BH   PUBLIC    CODE     ---       YC_update_eeprom_data
+      01002649H   PUBLIC    CODE     ---       YC_clear_BT_same_address_record
+      010027E3H   PUBLIC    CODE     ---       YC_get_ble_ramdon_lap
+      01001FCEH   PUBLIC    CODE     ---       YC_start_reconnect
+      01000FE1H   PUBLIC    CODE     ---       YC_g24_mode_discovery
+      01000C00H   PUBLIC    CODE     ---       YC_disconnect_all_link
+      01001FC4H   PUBLIC    CODE     ---       YC_clear_reconnect_flag
+      01000F11H   PUBLIC    CODE     ---       YC_cancel_reconnect
+      0100182BH   PUBLIC    CODE     ---       YC_check_need_reconnected
+      0100180EH   PUBLIC    CODE     ---       YC_check_is_connected
+      01000FF7H   PUBLIC    CODE     ---       _YC_store_record_list
+      01000737H   PUBLIC    CODE     ---       _YC_load_record_list
+
+      01000737H   BLOCK     CODE     ---       LVL=0
+      01000737H   LINE      ---      ---       #4
+      0100073CH   LINE      ---      ---       #5
+      0100073CH   LINE      ---      ---       #6
+      01000745H   LINE      ---      ---       #8
+      0100074BH   LINE      ---      ---       #9
+      01000750H   LINE      ---      ---       #10
+      01000754H   LINE      ---      ---       #11
+      0100076BH   LINE      ---      ---       #12
+      0100076BH   LINE      ---      ---       #13
+      01000787H   LINE      ---      ---       #14
+      010007A6H   LINE      ---      ---       #15
+      010007C5H   LINE      ---      ---       #16
+      010007CAH   LINE      ---      ---       #17
+      010007D0H   LINE      ---      ---       #18
+      010007D5H   LINE      ---      ---       #19
+      010007DAH   LINE      ---      ---       #20
+      010007DBH   LINE      ---      ---       #21
+      010007F2H   LINE      ---      ---       #22
+      010007F2H   LINE      ---      ---       #23
+      0100080EH   LINE      ---      ---       #24
+      0100082DH   LINE      ---      ---       #25
+      01000831H   LINE      ---      ---       #26
+      01000837H   LINE      ---      ---       #27
+      01000838H   LINE      ---      ---       #29
+      01000838H   LINE      ---      ---       #30
+      0100083EH   LINE      ---      ---       #32
+      01000844H   LINE      ---      ---       #33
+      01000846H   LINE      ---      ---       #34
+      01000848H   LINE      ---      ---       #35
+      0100084AH   LINE      ---      ---       #36
+      0100084CH   LINE      ---      ---       #37
+      0100084EH   LINE      ---      ---       #38
+      01000854H   LINE      ---      ---       #39
+      01000858H   LINE      ---      ---       #40
+      0100085EH   LINE      ---      ---       #54
+      0100085EH   LINE      ---      ---       #55
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FF7H   BLOCK     CODE     ---       LVL=0
+      01000FF7H   LINE      ---      ---       #59
+      01001001H   LINE      ---      ---       #60
+      01001001H   LINE      ---      ---       #61
+      01001005H   LINE      ---      ---       #62
+      01001005H   LINE      ---      ---       #63
+      01001018H   LINE      ---      ---       #64
+      01001035H   LINE      ---      ---       #65
+      01001055H   LINE      ---      ---       #66
+      01001075H   LINE      ---      ---       #67
+      01001075H   LINE      ---      ---       #68
+      0100107DH   LINE      ---      ---       #69
+      0100107DH   LINE      ---      ---       #70
+      01001090H   LINE      ---      ---       #71
+      010010ADH   LINE      ---      ---       #72
+      010010CDH   LINE      ---      ---       #73
+      010010CDH   LINE      ---      ---       #74
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100180EH   BLOCK     CODE     ---       LVL=0
+      0100180EH   LINE      ---      ---       #77
+      0100180EH   LINE      ---      ---       #78
+      0100180EH   LINE      ---      ---       #79
+      01001825H   LINE      ---      ---       #82
+      01001825H   LINE      ---      ---       #83
+      01001828H   LINE      ---      ---       #84
+      01001828H   LINE      ---      ---       #85
+      0100182AH   LINE      ---      ---       #86
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100182BH   BLOCK     CODE     ---       LVL=0
+      0100182BH   LINE      ---      ---       #88
+      0100182BH   LINE      ---      ---       #89
+      0100182BH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100182BH   LINE      ---      ---       #90
+      01001830H   LINE      ---      ---       #91
+      0100183FH   LINE      ---      ---       #93
+      01001845H   LINE      ---      ---       #100
+      01001857H   LINE      ---      ---       #102
+      0100185DH   LINE      ---      ---       #117
+      01001863H   LINE      ---      ---       #118
+      01001869H   LINE      ---      ---       #120
+      0100187DH   LINE      ---      ---       #124
+      0100187DH   LINE      ---      ---       #125
+      01001883H   LINE      ---      ---       #126
+      01001883H   LINE      ---      ---       #127
+      01001886H   LINE      ---      ---       #128
+      01001892H   LINE      ---      ---       #130
+      01001892H   LINE      ---      ---       #131
+      010018A2H   LINE      ---      ---       #132
+      010018A2H   LINE      ---      ---       #133
+      010018A5H   LINE      ---      ---       #134
+      010018A7H   LINE      ---      ---       #136
+      010018A7H   LINE      ---      ---       #137
+      010018ACH   LINE      ---      ---       #138
+      010018B2H   LINE      ---      ---       #139
+      010018B2H   LINE      ---      ---       #140
+      010018B2H   LINE      ---      ---       #141
+      010018B2H   LINE      ---      ---       #142
+      010018B4H   LINE      ---      ---       #144
+      010018B4H   LINE      ---      ---       #145
+      010018B9H   LINE      ---      ---       #146
+      010018BEH   LINE      ---      ---       #147
+      010018BEH   LINE      ---      ---       #148
+      010018C3H   LINE      ---      ---       #149
+      02004F27H   SYMBOL    XDATA    VOID      return_val
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000F11H   BLOCK     CODE     ---       LVL=0
+      01000F11H   LINE      ---      ---       #152
+      01000F11H   LINE      ---      ---       #153
+      01000F11H   LINE      ---      ---       #154
+      01000F18H   LINE      ---      ---       #155
+      01000F18H   LINE      ---      ---       #156
+      01000F1CH   LINE      ---      ---       #157
+      01000F1FH   LINE      ---      ---       #158
+      01000F1FH   LINE      ---      ---       #160
+      01000F26H   LINE      ---      ---       #161
+      01000F26H   LINE      ---      ---       #163
+      01000F2AH   LINE      ---      ---       #164
+      01000F2DH   LINE      ---      ---       #165
+      01000F2DH   LINE      ---      ---       #166
+      01000F2FH   LINE      ---      ---       #167
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001FC4H   BLOCK     CODE     ---       LVL=0
+      01001FC4H   LINE      ---      ---       #170
+      01001FC4H   LINE      ---      ---       #171
+      01001FC4H   LINE      ---      ---       #172
+      01001FC9H   LINE      ---      ---       #173
+      01001FCDH   LINE      ---      ---       #174
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000C00H   BLOCK     CODE     ---       LVL=0
+      01000C00H   LINE      ---      ---       #177
+      01000C00H   LINE      ---      ---       #178
+      01000C00H   LINE      ---      ---       #179
+      01000C0DH   LINE      ---      ---       #181
+      01000C0DH   LINE      ---      ---       #182
+      01000C11H   LINE      ---      ---       #183
+      01000C14H   LINE      ---      ---       #184
+      01000C14H   LINE      ---      ---       #185
+      01000C21H   LINE      ---      ---       #187
+      01000C21H   LINE      ---      ---       #188
+      01000C25H   LINE      ---      ---       #189
+      01000C28H   LINE      ---      ---       #190
+      01000C28H   LINE      ---      ---       #191
+      01000C35H   LINE      ---      ---       #193
+      01000C35H   LINE      ---      ---       #194
+      01000C39H   LINE      ---      ---       #195
+      01000C3CH   LINE      ---      ---       #196
+      01000C3CH   LINE      ---      ---       #197
+      01000C3EH   LINE      ---      ---       #198
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FE1H   BLOCK     CODE     ---       LVL=0
+      01000FE1H   LINE      ---      ---       #200
+      01000FE1H   LINE      ---      ---       #201
+      01000FE1H   LINE      ---      ---       #202
+      01000FEDH   LINE      ---      ---       #203
+      01000FEDH   LINE      ---      ---       #204
+      01000FF1H   LINE      ---      ---       #205
+      01000FF4H   LINE      ---      ---       #206
+      01000FF4H   LINE      ---      ---       #207
+      01000FF6H   LINE      ---      ---       #208
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001FCEH   BLOCK     CODE     ---       LVL=0
+      01001FCEH   LINE      ---      ---       #212
+      01001FCEH   LINE      ---      ---       #213
+      01001FCEH   LINE      ---      ---       #214
+      01001FD4H   LINE      ---      ---       #216
+      01001FE5H   LINE      ---      ---       #217
+      01001FEAH   LINE      ---      ---       #218
+      01001FFBH   LINE      ---      ---       #219
+      01002000H   LINE      ---      ---       #220
+      01002010H   LINE      ---      ---       #221
+      01002015H   LINE      ---      ---       #225
+      01002025H   LINE      ---      ---       #226
+      01002025H   LINE      ---      ---       #228
+      01002038H   LINE      ---      ---       #229
+      0100203BH   LINE      ---      ---       #230
+      0100203DH   LINE      ---      ---       #232
+      0100203DH   LINE      ---      ---       #233
+      01002042H   LINE      ---      ---       #234
+      01002042H   LINE      ---      ---       #235
+      0100204BH   LINE      ---      ---       #236
+      0100204DH   LINE      ---      ---       #241
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010027E3H   BLOCK     CODE     ---       LVL=0
+      010027E3H   LINE      ---      ---       #245
+      010027E3H   LINE      ---      ---       #246
+      010027E3H   LINE      ---      ---       #247
+      010027F3H   LINE      ---      ---       #248
+      010027F9H   LINE      ---      ---       #249
+      010027FDH   LINE      ---      ---       #250
+      01002805H   LINE      ---      ---       #251
+      0100280DH   LINE      ---      ---       #252
+      01002815H   LINE      ---      ---       #253
+      0100281DH   LINE      ---      ---       #254
+      01002825H   LINE      ---      ---       #255
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002649H   BLOCK     CODE     ---       LVL=0
+      01002649H   LINE      ---      ---       #258
+      01002649H   LINE      ---      ---       #259
+      01002649H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002649H   LINE      ---      ---       #260
+      01002649H   LINE      ---      ---       #263
+      01002652H   LINE      ---      ---       #264
+      01002657H   LINE      ---      ---       #265
+      01002661H   LINE      ---      ---       #267
+      01002668H   LINE      ---      ---       #268
+      01002668H   LINE      ---      ---       #269
+      01002670H   LINE      ---      ---       #270
+      01002670H   LINE      ---      ---       #271
+      01002698H   LINE      ---      ---       #272
+      010026A4H   LINE      ---      ---       #273
+      010026A4H   LINE      ---      ---       #274
+      010026A4H   LINE      ---      ---       #276
+      010026ADH   LINE      ---      ---       #277
+      010026ADH   LINE      ---      ---       #278
+      010026B5H   LINE      ---      ---       #279
+      010026B5H   LINE      ---      ---       #280
+      010026DDH   LINE      ---      ---       #281
+      010026E9H   LINE      ---      ---       #282
+      010026E9H   LINE      ---      ---       #283
+      010026E9H   LINE      ---      ---       #285
+      010026F2H   LINE      ---      ---       #286
+      010026F2H   LINE      ---      ---       #287
+      010026FAH   LINE      ---      ---       #288
+      010026FAH   LINE      ---      ---       #289
+      01002722H   LINE      ---      ---       #290
+      0100272EH   LINE      ---      ---       #291
+      0100272EH   LINE      ---      ---       #292
+      0100272EH   LINE      ---      ---       #293
+      0100272EH   LINE      ---      ---       #294
+      02004F28H   SYMBOL    XDATA    VOID      record_index
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000D7BH   BLOCK     CODE     ---       LVL=0
+      01000D7BH   LINE      ---      ---       #298
+      01000D7BH   LINE      ---      ---       #299
+      01000D7BH   LINE      ---      ---       #300
+      01000D84H   LINE      ---      ---       #301
+      01000D84H   LINE      ---      ---       #302
+      01000D88H   LINE      ---      ---       #303
+      01000D8CH   LINE      ---      ---       #304
+      01000D92H   LINE      ---      ---       #305
+      01000D9AH   LINE      ---      ---       #306
+      01000D9AH   LINE      ---      ---       #307
+      01000DA9H   LINE      ---      ---       #308
+      01000DB9H   LINE      ---      ---       #309
+      01000DC9H   LINE      ---      ---       #310
+      01000DCBH   LINE      ---      ---       #311
+      01000DD2H   LINE      ---      ---       #312
+      01000DE2H   LINE      ---      ---       #314
+      01000DF2H   LINE      ---      ---       #315
+      01000E02H   LINE      ---      ---       #317
+      01000E08H   LINE      ---      ---       #318
+      01000E0CH   LINE      ---      ---       #319
+      01000E11H   LINE      ---      ---       #320
+      01000E11H   LINE      ---      ---       #321
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       GLOBAL_VARIABLE
+      02004E69H   PUBLIC    XDATA    BYTE      fast_connect_flag
+      02004E60H   PUBLIC    XDATA    ---       multikey
+      02004E5FH   PUBLIC    XDATA    BYTE      mult_key_status
+      02004D39H   PUBLIC    XDATA    DWORD     le_pin_code
+      02004D3DH   PUBLIC    XDATA    BYTE      m_le_send_security_request_flag
+      02004E02H   PUBLIC    XDATA    ---       bd_key_record_list
+      02004E01H   PUBLIC    XDATA    BYTE      delayChgInvTimer_last
+      02004E00H   PUBLIC    XDATA    BYTE      mult_key_value
+      02004DFFH   PUBLIC    XDATA    BYTE      action_timeout
+      02004DFEH   PUBLIC    XDATA    BYTE      power_on_flag
+      02004DFDH   PUBLIC    XDATA    BYTE      fn_flag_last
+      02004DFCH   PUBLIC    XDATA    BYTE      system_key_press
+      02004DFBH   PUBLIC    XDATA    BYTE      key_value_temp
+      02004213H   PUBLIC    XDATA    BYTE      kscurrmult
+      02004C95H   PUBLIC    XDATA    WORD      m_adcCurrentValue
+      02004D38H   PUBLIC    XDATA    BYTE      m_reconnect_continue
+      02004DFAH   PUBLIC    XDATA    BYTE      fn_lock_flag
+      02000040H   PUBLIC    XDATA    ---       m_remote_addr
+      02004DF9H   PUBLIC    XDATA    BYTE      delayChgInvTimer
+      02004DF8H   PUBLIC    XDATA    BYTE      ble_reconnect_flag
+      02004DF7H   PUBLIC    XDATA    BYTE      keyCount
+      02004274H   PUBLIC    XDATA    ---       m_reconn_addr
+      02004DF6H   PUBLIC    XDATA    BYTE      press_long_time_flag
+      02004DF5H   PUBLIC    XDATA    BYTE      fn_flag
+      020047F4H   PUBLIC    XDATA    WORD      m_ui_state_map
+      02004DF4H   PUBLIC    XDATA    BYTE      iOS_rec_pinCode
+      02004C8FH   PUBLIC    XDATA    BYTE      m_adc_config_flag
+      02004DF3H   PUBLIC    XDATA    BYTE      m_caps_num_lock_last
+      0200447BH   PUBLIC    XDATA    ---       m_le_ltk
+      02004262H   PUBLIC    XDATA    ---       m_linkkey
+      02004D93H   PUBLIC    XDATA    ---       ksSelMapOld
+      02004702H   PUBLIC    XDATA    BYTE      m_local_name_length
+      02004DF2H   PUBLIC    XDATA    BYTE      standard_key_release_flag
+      02004DBCH   PUBLIC    XDATA    ---       ksSelMapCurr
+      02004DF1H   PUBLIC    XDATA    BYTE      pinCode_flag
+      02004DF0H   PUBLIC    XDATA    BYTE      repeat_send_24g
+      02004DEFH   PUBLIC    XDATA    BYTE      long_press_flag
+      02004DEEH   PUBLIC    XDATA    BYTE      SendReport2
+      020044F9H   PUBLIC    XDATA    ---       m_le_lap
+      02004DEDH   PUBLIC    XDATA    BYTE      SendReport1
+      02004800H   PUBLIC    XDATA    ---       hidBuff
+      02004D51H   PUBLIC    XDATA    BYTE      m_customize_timer
+      02004DECH   PUBLIC    XDATA    BYTE      le_send_battery_level_delay_count
+      02004CB6H   PUBLIC    XDATA    BYTE      m_power_on_flag
+      02004DEBH   PUBLIC    XDATA    BYTE      le_send_battery_level_flag
+      02004D40H   PUBLIC    XDATA    ---       m_24g_enter_hibernate
+      02004CB7H   PUBLIC    XDATA    BYTE      m_caps_num_lock
+      02004C90H   PUBLIC    XDATA    BYTE      m_adc_channel
+      02004DEAH   PUBLIC    XDATA    BYTE      switch_role_timer
+      02004D46H   PUBLIC    XDATA    BYTE      m_24g_led_flag
+      02004DE9H   PUBLIC    XDATA    BYTE      control_key_flag
+      0200425EH   PUBLIC    XDATA    BYTE      m_link_key_exists
+      02004BEFH   PUBLIC    XDATA    BYTE      m_24g_pairing_sm
+      02004D7EH   PUBLIC    XDATA    BYTE      m_le_battery_level_display_enable
+      02004C93H   PUBLIC    XDATA    WORD      m_adc3vValue
+      02004131H   PUBLIC    XDATA    BYTE      m_lpm_mode
+      02004DE8H   PUBLIC    XDATA    BYTE      fn_tx_flag
+      0200448BH   PUBLIC    XDATA    BYTE      m_ltk_exists
+      02000B81H   PUBLIC    XDATA    BYTE      m_wakup_from_power_flag
+      02004DE0H   PUBLIC    XDATA    ---       kb_hidBuff2
+      02004C91H   PUBLIC    XDATA    WORD      m_adc0vBase
+      02004DD8H   PUBLIC    XDATA    ---       kb_hidBuff1
+      02004D7DH   PUBLIC    XDATA    BYTE      m_pc_sleep_flag
+      02004DD7H   PUBLIC    XDATA    BYTE      le_pin_code_len
+      02004C00H   PUBLIC    XDATA    ---       m_24g_addr
+      02004DD6H   PUBLIC    XDATA    BYTE      recon_index
+      02004DD5H   PUBLIC    XDATA    BYTE      get_24g_led_send
+      02004DD4H   PUBLIC    XDATA    BYTE      ble_send_secutiry_request_timer
+      02008010H   PUBLIC    XDATA    BYTE      m_reset_reg
+      02004CBFH   PUBLIC    XDATA    ---       g_variable
+      02004DD3H   PUBLIC    XDATA    BYTE      ble_fast_connect_flag
+      020003D0H   PUBLIC    XDATA    ---       m_remote_le_addr
+      02004DD0H   PUBLIC    XDATA    ---       le_lap_temp
+      02004DA8H   PUBLIC    XDATA    ---       ksSelMapCheck
+      02004BEBH   PUBLIC    XDATA    ---       m_24g_paring_addr
+      01000696H   PUBLIC    CONST    ---       ksMap
+      01000681H   PUBLIC    CONST    ---       col
+
+      ---         MODULE    ---      ---       KB_PROCESS
+      01001509H   PUBLIC    CODE     ---       _kb_multikey_setup
+      01002F0FH   PUBLIC    CODE     ---       _key_fn_function
+      01002EEAH   PUBLIC    CODE     ---       _kb_combination_key_press
+      01001111H   PUBLIC    CODE     ---       _kb_motion_keyscan
+      01001F53H   PUBLIC    CODE     ---       kb_need_keyscan
+      01001CD8H   PUBLIC    CODE     ---       kb_keyscan_send
+      01001C87H   PUBLIC    CODE     ---       kb_24g_get_led_status
+      01002841H   PUBLIC    CODE     ---       kb_bt_pincode_enter
+      01001C4DH   PUBLIC    CODE     ---       _kb_send_combination_key
+      01002826H   PUBLIC    CODE     ---       _kb_set_systemkey
+      010014F6H   PUBLIC    CODE     ---       _kb_set_multikey
+      010018C4H   PUBLIC    CODE     ---       _IPC_TxHidData
+      0100091CH   PUBLIC    CODE     ---       _YC_key_action_handle
+
+      0100091CH   BLOCK     CODE     ---       LVL=0
+      0100091CH   LINE      ---      ---       #5
+      01000921H   LINE      ---      ---       #6
+      01000921H   LINE      ---      ---       #7
+      0100095EH   LINE      ---      ---       #8
+      0100095EH   LINE      ---      ---       #9
+      0100095EH   LINE      ---      ---       #10
+      0100095EH   LINE      ---      ---       #11
+      0100095EH   LINE      ---      ---       #12
+      0100096BH   LINE      ---      ---       #14
+      0100096BH   LINE      ---      ---       #15
+      0100096FH   LINE      ---      ---       #16
+      01000977H   LINE      ---      ---       #17
+      01000978H   LINE      ---      ---       #19
+      01000978H   LINE      ---      ---       #20
+      01000981H   LINE      ---      ---       #21
+      01000987H   LINE      ---      ---       #22
+      0100098BH   LINE      ---      ---       #23
+      0100098FH   LINE      ---      ---       #24
+      01000993H   LINE      ---      ---       #25
+      01000997H   LINE      ---      ---       #26
+      0100099CH   LINE      ---      ---       #27
+      0100099CH   LINE      ---      ---       #28
+      0100099DH   LINE      ---      ---       #29
+      0100099DH   LINE      ---      ---       #30
+      010009A1H   LINE      ---      ---       #31
+      010009A5H   LINE      ---      ---       #32
+      010009A5H   LINE      ---      ---       #33
+      010009A5H   LINE      ---      ---       #34
+      010009AAH   LINE      ---      ---       #35
+      010009B9H   LINE      ---      ---       #36
+      010009B9H   LINE      ---      ---       #37
+      010009C1H   LINE      ---      ---       #38
+      010009C7H   LINE      ---      ---       #39
+      010009C8H   LINE      ---      ---       #41
+      010009C8H   LINE      ---      ---       #42
+      010009CCH   LINE      ---      ---       #43
+      010009CFH   LINE      ---      ---       #44
+      010009D4H   LINE      ---      ---       #45
+      010009D8H   LINE      ---      ---       #46
+      010009DCH   LINE      ---      ---       #54
+      010009DFH   LINE      ---      ---       #55
+      010009E3H   LINE      ---      ---       #57
+      010009E8H   LINE      ---      ---       #58
+      010009E8H   LINE      ---      ---       #59
+      010009E9H   LINE      ---      ---       #60
+      010009E9H   LINE      ---      ---       #61
+      010009EBH   LINE      ---      ---       #62
+      010009F0H   LINE      ---      ---       #63
+      010009F1H   LINE      ---      ---       #64
+      010009F1H   LINE      ---      ---       #65
+      010009FEH   LINE      ---      ---       #66
+      01000A04H   LINE      ---      ---       #67
+      01000A06H   LINE      ---      ---       #68
+      01000A0AH   LINE      ---      ---       #69
+      01000A10H   LINE      ---      ---       #70
+      01000A20H   LINE      ---      ---       #71
+      01000A30H   LINE      ---      ---       #72
+      01000A36H   LINE      ---      ---       #73
+      01000A3BH   LINE      ---      ---       #74
+      01000A3CH   LINE      ---      ---       #75
+      01000A3CH   LINE      ---      ---       #76
+      01000A3CH   LINE      ---      ---       #77
+      01000A41H   LINE      ---      ---       #78
+      01000A46H   LINE      ---      ---       #79
+      01000A46H   LINE      ---      ---       #80
+      01000A4EH   LINE      ---      ---       #81
+      01000A4FH   LINE      ---      ---       #83
+      01000A4FH   LINE      ---      ---       #84
+      01000A60H   LINE      ---      ---       #85
+      01000A64H   LINE      ---      ---       #86
+      01000A69H   LINE      ---      ---       #87
+      01000A7FH   LINE      ---      ---       #88
+      01000A7FH   LINE      ---      ---       #89
+      01000A85H   LINE      ---      ---       #90
+      01000A87H   LINE      ---      ---       #91
+      01000A89H   LINE      ---      ---       #92
+      01000A8BH   LINE      ---      ---       #93
+      01000A91H   LINE      ---      ---       #94
+      01000A91H   LINE      ---      ---       #96
+      01000A95H   LINE      ---      ---       #98
+      01000A9BH   LINE      ---      ---       #99
+      01000A9EH   LINE      ---      ---       #100
+      01000AA2H   LINE      ---      ---       #101
+      01000AA2H   LINE      ---      ---       #102
+      01000AA3H   LINE      ---      ---       #103
+      01000AA3H   LINE      ---      ---       #104
+      01000AA8H   LINE      ---      ---       #105
+      01000AB2H   LINE      ---      ---       #106
+      01000AB2H   LINE      ---      ---       #107
+      01000ABAH   LINE      ---      ---       #108
+      01000ABBH   LINE      ---      ---       #110
+      01000ABBH   LINE      ---      ---       #111
+      01000AC3H   LINE      ---      ---       #112
+      01000AC3H   LINE      ---      ---       #113
+      01000AC8H   LINE      ---      ---       #114
+      01000ACCH   LINE      ---      ---       #115
+      01000AD2H   LINE      ---      ---       #116
+      01000AD5H   LINE      ---      ---       #117
+      01000ADBH   LINE      ---      ---       #118
+      01000AE0H   LINE      ---      ---       #119
+      01000AE0H   LINE      ---      ---       #120
+      01000AE5H   LINE      ---      ---       #121
+      01000AE5H   LINE      ---      ---       #122
+      01000AE6H   LINE      ---      ---       #123
+      01000AE6H   LINE      ---      ---       #124
+      01000AEBH   LINE      ---      ---       #125
+      01000AEBH   LINE      ---      ---       #126
+      01000AEBH   LINE      ---      ---       #127
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010018C4H   BLOCK     CODE     ---       LVL=0
+      010018C4H   LINE      ---      ---       #131
+      010018D2H   LINE      ---      ---       #132
+      010018D2H   BLOCK     CODE     NEAR LAB  LVL=1
+      010018D2H   LINE      ---      ---       #134
+      010018D4H   LINE      ---      ---       #136
+      010018DEH   LINE      ---      ---       #137
+      010018DEH   LINE      ---      ---       #138
+      010018FEH   LINE      ---      ---       #139
+      01001901H   LINE      ---      ---       #141
+      01001908H   LINE      ---      ---       #143
+      01001910H   LINE      ---      ---       #146
+      01001917H   LINE      ---      ---       #147
+      01001917H   LINE      ---      ---       #148
+      01001924H   LINE      ---      ---       #149
+      01001924H   LINE      ---      ---       #150
+      0100192EH   LINE      ---      ---       #151
+      0100192EH   LINE      ---      ---       #152
+      01001936H   LINE      ---      ---       #153
+      01001936H   LINE      ---      ---       #154
+      01001939H   LINE      ---      ---       #155
+      0100194BH   LINE      ---      ---       #156
+      01001951H   LINE      ---      ---       #158
+      01001957H   LINE      ---      ---       #159
+      01001959H   LINE      ---      ---       #160
+      01001960H   LINE      ---      ---       #161
+      01001960H   LINE      ---      ---       #162
+      01001963H   LINE      ---      ---       #163
+      0100196BH   LINE      ---      ---       #164
+      0100196BH   LINE      ---      ---       #165
+      0100196FH   LINE      ---      ---       #166
+      01001971H   LINE      ---      ---       #168
+      01001971H   LINE      ---      ---       #169
+      01001977H   LINE      ---      ---       #170
+      01001977H   LINE      ---      ---       #171
+      01001979H   LINE      ---      ---       #172
+      01001980H   LINE      ---      ---       #173
+      01001980H   LINE      ---      ---       #174
+      01001983H   LINE      ---      ---       #175
+      01001983H   LINE      ---      ---       #177
+      0100198BH   LINE      ---      ---       #178
+      0100198BH   LINE      ---      ---       #179
+      0100198EH   LINE      ---      ---       #180
+      010019AAH   LINE      ---      ---       #182
+      010019B0H   LINE      ---      ---       #184
+      010019B6H   LINE      ---      ---       #185
+      010019B6H   LINE      ---      ---       #186
+      010019BEH   LINE      ---      ---       #187
+      010019BEH   LINE      ---      ---       #188
+      010019C1H   LINE      ---      ---       #189
+      010019DDH   LINE      ---      ---       #191
+      010019E3H   LINE      ---      ---       #193
+      010019E9H   LINE      ---      ---       #194
+      010019E9H   LINE      ---      ---       #195
+      010019F6H   LINE      ---      ---       #196
+      010019F6H   LINE      ---      ---       #197
+      02004EA3H   SYMBOL    XDATA    VOID      tx_hid_buff
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010014F6H   BLOCK     CODE     ---       LVL=0
+      010014F6H   LINE      ---      ---       #202
+      010014FAH   LINE      ---      ---       #203
+      010014FAH   LINE      ---      ---       #204
+      010014FFH   LINE      ---      ---       #205
+      01001502H   LINE      ---      ---       #206
+      01001508H   LINE      ---      ---       #207
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002826H   BLOCK     CODE     ---       LVL=0
+      01002826H   LINE      ---      ---       #209
+      01002826H   LINE      ---      ---       #210
+      01002826H   LINE      ---      ---       #211
+      0100282EH   LINE      ---      ---       #212
+      0100282EH   LINE      ---      ---       #213
+      01002831H   LINE      ---      ---       #214
+      01002837H   LINE      ---      ---       #215
+      0100283DH   LINE      ---      ---       #216
+      01002840H   LINE      ---      ---       #217
+      01002840H   LINE      ---      ---       #218
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C4DH   BLOCK     CODE     ---       LVL=0
+      01001C4DH   LINE      ---      ---       #221
+      01001C55H   LINE      ---      ---       #222
+      01001C55H   LINE      ---      ---       #223
+      01001C61H   LINE      ---      ---       #224
+      01001C67H   LINE      ---      ---       #225
+      01001C75H   LINE      ---      ---       #226
+      01001C7DH   LINE      ---      ---       #227
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002841H   BLOCK     CODE     ---       LVL=0
+      01002841H   LINE      ---      ---       #248
+      01002841H   LINE      ---      ---       #249
+      01002841H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002841H   LINE      ---      ---       #250
+      0100284AH   LINE      ---      ---       #251
+      01002857H   LINE      ---      ---       #252
+      0100285CH   LINE      ---      ---       #254
+      01002872H   LINE      ---      ---       #255
+      0100287BH   LINE      ---      ---       #256
+      01002882H   LINE      ---      ---       #257
+      01002882H   LINE      ---      ---       #258
+      01002887H   LINE      ---      ---       #259
+      0100288DH   LINE      ---      ---       #260
+      01002892H   LINE      ---      ---       #261
+      01002892H   LINE      ---      ---       #263
+      0100289CH   LINE      ---      ---       #264
+      0100289CH   LINE      ---      ---       #265
+      010028A1H   LINE      ---      ---       #266
+      010028A6H   LINE      ---      ---       #267
+      010028ACH   LINE      ---      ---       #268
+      010028ACH   LINE      ---      ---       #269
+      010028ADH   LINE      ---      ---       #271
+      010028ADH   LINE      ---      ---       #272
+      010028CEH   LINE      ---      ---       #273
+      010028CEH   LINE      ---      ---       #274
+      010028D2H   LINE      ---      ---       #275
+      010028D2H   LINE      ---      ---       #276
+      010028E6H   LINE      ---      ---       #277
+      01002903H   LINE      ---      ---       #278
+      01002909H   LINE      ---      ---       #279
+      0100290AH   LINE      ---      ---       #281
+      0100290AH   LINE      ---      ---       #282
+      01002931H   LINE      ---      ---       #283
+      01002977H   LINE      ---      ---       #284
+      0100297DH   LINE      ---      ---       #285
+      0100297DH   LINE      ---      ---       #286
+      0100297EH   LINE      ---      ---       #287
+      0100299FH   LINE      ---      ---       #288
+      0100299FH   LINE      ---      ---       #289
+      010029A3H   LINE      ---      ---       #290
+      010029A3H   LINE      ---      ---       #291
+      010029B7H   LINE      ---      ---       #292
+      010029D4H   LINE      ---      ---       #293
+      010029DAH   LINE      ---      ---       #294
+      010029DBH   LINE      ---      ---       #296
+      010029DBH   LINE      ---      ---       #297
+      01002A02H   LINE      ---      ---       #298
+      01002A48H   LINE      ---      ---       #299
+      01002A4EH   LINE      ---      ---       #300
+      01002A4EH   LINE      ---      ---       #301
+      01002A4FH   LINE      ---      ---       #302
+      01002A64H   LINE      ---      ---       #303
+      01002A64H   LINE      ---      ---       #304
+      01002A6AH   LINE      ---      ---       #305
+      01002A7AH   LINE      ---      ---       #306
+      01002A80H   LINE      ---      ---       #307
+      01002A80H   LINE      ---      ---       #308
+      01002A9DH   LINE      ---      ---       #309
+      01002AA3H   LINE      ---      ---       #310
+      01002AA3H   LINE      ---      ---       #311
+      01002AA4H   LINE      ---      ---       #313
+      01002AA4H   LINE      ---      ---       #314
+      01002AB2H   LINE      ---      ---       #315
+      01002AB2H   LINE      ---      ---       #316
+      01002AB2H   LINE      ---      ---       #317
+      01002AB2H   LINE      ---      ---       #318
+      02004F06H   SYMBOL    XDATA    VOID      pEvt
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001C87H   BLOCK     CODE     ---       LVL=0
+      01001C87H   LINE      ---      ---       #322
+      01001C87H   LINE      ---      ---       #323
+      01001C87H   LINE      ---      ---       #324
+      01001C93H   LINE      ---      ---       #325
+      01001C93H   LINE      ---      ---       #326
+      01001C9BH   LINE      ---      ---       #327
+      01001C9BH   LINE      ---      ---       #328
+      01001CA7H   LINE      ---      ---       #329
+      01001CA7H   LINE      ---      ---       #330
+      01001CB3H   LINE      ---      ---       #331
+      01001CB8H   LINE      ---      ---       #332
+      01001CBDH   LINE      ---      ---       #333
+      01001CC5H   LINE      ---      ---       #334
+      01001CCFH   LINE      ---      ---       #335
+      01001CCFH   LINE      ---      ---       #336
+      01001CD7H   LINE      ---      ---       #337
+      01001CD7H   LINE      ---      ---       #338
+      01001CD7H   LINE      ---      ---       #339
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001D97H   BLOCK     CODE     ---       LVL=0
+      01001D97H   LINE      ---      ---       #342
+      01001D97H   LINE      ---      ---       #343
+      01001D97H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001D97H   LINE      ---      ---       #344
+      01001D9CH   LINE      ---      ---       #345
+      01001D9EH   LINE      ---      ---       #346
+      01001DA0H   LINE      ---      ---       #349
+      01001DA9H   LINE      ---      ---       #359
+      01001DAFH   LINE      ---      ---       #368
+      01001DAFH   LINE      ---      ---       #370
+      01001DBDH   LINE      ---      ---       #372
+      01001DC0H   LINE      ---      ---       #373
+      01001DC0H   LINE      ---      ---       #374
+      01001DC5H   LINE      ---      ---       #375
+      01001DC7H   LINE      ---      ---       #377
+      01001DC7H   LINE      ---      ---       #379
+      01001DCEH   LINE      ---      ---       #380
+      01001DCEH   LINE      ---      ---       #381
+      01001DD4H   LINE      ---      ---       #382
+      01001DD4H   LINE      ---      ---       #383
+      01001DDAH   LINE      ---      ---       #385
+      01001DE2H   LINE      ---      ---       #386
+      01001DE2H   LINE      ---      ---       #387
+      01001DE7H   LINE      ---      ---       #388
+      01001DEBH   LINE      ---      ---       #389
+      01001DEFH   LINE      ---      ---       #390
+      01001DF2H   LINE      ---      ---       #391
+      01001DF4H   LINE      ---      ---       #393
+      01001DF4H   LINE      ---      ---       #394
+      01001DF9H   LINE      ---      ---       #395
+      01001DFDH   LINE      ---      ---       #396
+      01001E01H   LINE      ---      ---       #397
+      01001E04H   LINE      ---      ---       #398
+      01001E04H   LINE      ---      ---       #400
+      01001E0AH   LINE      ---      ---       #403
+      01001E10H   LINE      ---      ---       #404
+      01001E10H   LINE      ---      ---       #405
+      01001E12H   LINE      ---      ---       #406
+      01001E18H   LINE      ---      ---       #407
+      01001E18H   LINE      ---      ---       #425
+      01001E2EH   LINE      ---      ---       #426
+      01001E38H   LINE      ---      ---       #427
+      01001E3FH   LINE      ---      ---       #430
+      01001E42H   LINE      ---      ---       #431
+      01001E48H   LINE      ---      ---       #432
+      01001E4AH   LINE      ---      ---       #433
+      01001E4AH   LINE      ---      ---       #434
+      01001E4FH   LINE      ---      ---       #435
+      01001E4FH   LINE      ---      ---       #437
+      01001E56H   LINE      ---      ---       #438
+      01001E56H   LINE      ---      ---       #494
+      01001E5EH   LINE      ---      ---       #495
+      01001E5EH   LINE      ---      ---       #496
+      01001E64H   LINE      ---      ---       #497
+      01001E64H   LINE      ---      ---       #498
+      01001E6AH   LINE      ---      ---       #499
+      01001E71H   LINE      ---      ---       #501
+      01001E79H   LINE      ---      ---       #502
+      01001E79H   LINE      ---      ---       #503
+      01001E80H   LINE      ---      ---       #504
+      01001E8FH   LINE      ---      ---       #505
+      01001E8FH   LINE      ---      ---       #506
+      01001E95H   LINE      ---      ---       #507
+      01001E99H   LINE      ---      ---       #508
+      01001E9DH   LINE      ---      ---       #509
+      01001EA1H   LINE      ---      ---       #511
+      01001EA7H   LINE      ---      ---       #512
+      01001EAAH   LINE      ---      ---       #513
+      01001EAFH   LINE      ---      ---       #515
+      01001EB4H   LINE      ---      ---       #516
+      01001EB4H   LINE      ---      ---       #517
+      01001EB4H   LINE      ---      ---       #519
+      01001EB4H   LINE      ---      ---       #520
+      01001EBBH   LINE      ---      ---       #521
+      01001EBBH   LINE      ---      ---       #523
+      01001EBCH   LINE      ---      ---       #524
+      01001EBCH   LINE      ---      ---       #527
+      01001EBCH   LINE      ---      ---       #528
+      01001EC3H   LINE      ---      ---       #529
+      01001EC6H   LINE      ---      ---       #530
+      01001EC6H   LINE      ---      ---       #531
+      01001EC8H   LINE      ---      ---       #533
+      01001EC8H   LINE      ---      ---       #534
+      01001ECFH   LINE      ---      ---       #535
+      01001ED2H   LINE      ---      ---       #536
+      01001ED2H   LINE      ---      ---       #538
+      01001EDAH   LINE      ---      ---       #539
+      01001EDAH   LINE      ---      ---       #540
+      01001EE0H   LINE      ---      ---       #541
+      01001EE7H   LINE      ---      ---       #543
+      01001EE9H   LINE      ---      ---       #544
+      01001EEDH   LINE      ---      ---       #545
+      01001EF4H   LINE      ---      ---       #547
+      01001EF6H   LINE      ---      ---       #548
+      01001EFEH   LINE      ---      ---       #549
+      01001F05H   LINE      ---      ---       #551
+      01001F07H   LINE      ---      ---       #552
+      01001F0BH   LINE      ---      ---       #553
+      01001F12H   LINE      ---      ---       #555
+      01001F14H   LINE      ---      ---       #556
+      01001F1CH   LINE      ---      ---       #557
+      01001F23H   LINE      ---      ---       #559
+      01001F25H   LINE      ---      ---       #560
+      01001F29H   LINE      ---      ---       #561
+      01001F30H   LINE      ---      ---       #563
+      01001F30H   LINE      ---      ---       #564
+      01001F32H   LINE      ---      ---       #566
+      01001F32H   LINE      ---      ---       #567
+      01001F39H   LINE      ---      ---       #568
+      01001F3CH   LINE      ---      ---       #569
+      01001F3CH   LINE      ---      ---       #725
+      01001F3CH   LINE      ---      ---       #726
+      01001F4AH   LINE      ---      ---       #727
+      01001F50H   LINE      ---      ---       #728
+      01001F52H   LINE      ---      ---       #729
+      01001F52H   LINE      ---      ---       #731
+      01001F52H   SYMBOL    ---      ---       NextLoopn
+      02004EDEH   SYMBOL    XDATA    VOID      temp0
+      02004EDFH   SYMBOL    XDATA    VOID      temp1
+      02004EE0H   SYMBOL    XDATA    VOID      temp2
+      02004EE1H   SYMBOL    XDATA    VOID      pEvt
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001CD8H   BLOCK     CODE     ---       LVL=0
+      01001CD8H   LINE      ---      ---       #733
+      01001CD8H   LINE      ---      ---       #734
+      01001CD8H   LINE      ---      ---       #735
+      01001CDEH   LINE      ---      ---       #736
+      01001CDEH   LINE      ---      ---       #737
+      01001CE0H   LINE      ---      ---       #738
+      01001CE7H   LINE      ---      ---       #739
+      01001CEFH   LINE      ---      ---       #741
+      01001CF5H   LINE      ---      ---       #742
+      01001CFDH   LINE      ---      ---       #743
+      01001D05H   LINE      ---      ---       #744
+      01001D0DH   LINE      ---      ---       #745
+      01001D15H   LINE      ---      ---       #746
+      01001D1DH   LINE      ---      ---       #747
+      01001D25H   LINE      ---      ---       #748
+      01001D2DH   LINE      ---      ---       #749
+      01001D37H   LINE      ---      ---       #750
+      01001D37H   LINE      ---      ---       #752
+      01001D3DH   LINE      ---      ---       #753
+      01001D3DH   LINE      ---      ---       #754
+      01001D3FH   LINE      ---      ---       #755
+      01001D46H   LINE      ---      ---       #756
+      01001D4EH   LINE      ---      ---       #758
+      01001D54H   LINE      ---      ---       #759
+      01001D5CH   LINE      ---      ---       #760
+      01001D64H   LINE      ---      ---       #761
+      01001D6CH   LINE      ---      ---       #762
+      01001D74H   LINE      ---      ---       #763
+      01001D7CH   LINE      ---      ---       #764
+      01001D84H   LINE      ---      ---       #765
+      01001D8CH   LINE      ---      ---       #766
+      01001D96H   LINE      ---      ---       #767
+      01001D96H   LINE      ---      ---       #768
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F53H   BLOCK     CODE     ---       LVL=0
+      01001F53H   LINE      ---      ---       #770
+      01001F53H   LINE      ---      ---       #771
+      01001F53H   LINE      ---      ---       #772
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001111H   BLOCK     CODE     ---       LVL=0
+      01001111H   LINE      ---      ---       #849
+      0100111CH   LINE      ---      ---       #850
+      0100111CH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100111CH   LINE      ---      ---       #852
+      0100111FH   LINE      ---      ---       #853
+      01001121H   LINE      ---      ---       #854
+      01001123H   LINE      ---      ---       #856
+      01001125H   LINE      ---      ---       #857
+      01001127H   LINE      ---      ---       #858
+      01001129H   LINE      ---      ---       #861
+      01001135H   LINE      ---      ---       #862
+      01001142H   LINE      ---      ---       #863
+      0100114AH   LINE      ---      ---       #864
+      0100114AH   LINE      ---      ---       #865
+      01001158H   LINE      ---      ---       #866
+      01001158H   LINE      ---      ---       #867
+      01001181H   LINE      ---      ---       #869
+      01001181H   LINE      ---      ---       #870
+      01001187H   LINE      ---      ---       #871
+      01001187H   LINE      ---      ---       #872
+      0100118BH   LINE      ---      ---       #873
+      0100118BH   LINE      ---      ---       #874
+      01001191H   LINE      ---      ---       #875
+      01001191H   LINE      ---      ---       #877
+      010011A1H   LINE      ---      ---       #878
+      010011A7H   LINE      ---      ---       #879
+      010011AFH   LINE      ---      ---       #880
+      010011AFH   LINE      ---      ---       #882
+      010011AFH   LINE      ---      ---       #883
+      010011CBH   LINE      ---      ---       #884
+      010011D3H   LINE      ---      ---       #885
+      010011DBH   LINE      ---      ---       #887
+      010011EFH   LINE      ---      ---       #888
+      010011F5H   LINE      ---      ---       #889
+      010011FBH   LINE      ---      ---       #890
+      01001201H   LINE      ---      ---       #891
+      01001207H   LINE      ---      ---       #892
+      0100120DH   LINE      ---      ---       #893
+      01001213H   LINE      ---      ---       #894
+      01001213H   LINE      ---      ---       #896
+      01001223H   LINE      ---      ---       #897
+      01001232H   LINE      ---      ---       #899
+      01001236H   LINE      ---      ---       #900
+      01001245H   LINE      ---      ---       #901
+      0100125EH   LINE      ---      ---       #902
+      01001266H   LINE      ---      ---       #904
+      0100126BH   LINE      ---      ---       #905
+      0100126DH   LINE      ---      ---       #906
+      0100126DH   LINE      ---      ---       #907
+      01001275H   LINE      ---      ---       #908
+      01001275H   LINE      ---      ---       #910
+      01001287H   LINE      ---      ---       #911
+      01001290H   LINE      ---      ---       #913
+      01001299H   LINE      ---      ---       #915
+      010012ABH   LINE      ---      ---       #917
+      010012B1H   LINE      ---      ---       #918
+      010012B7H   LINE      ---      ---       #919
+      010012C1H   LINE      ---      ---       #920
+      010012C6H   LINE      ---      ---       #921
+      010012CAH   LINE      ---      ---       #922
+      010012CAH   LINE      ---      ---       #924
+      010012D0H   LINE      ---      ---       #925
+      010012D6H   LINE      ---      ---       #926
+      010012E1H   LINE      ---      ---       #927
+      010012E6H   LINE      ---      ---       #928
+      010012EAH   LINE      ---      ---       #929
+      010012EAH   LINE      ---      ---       #930
+      010012EAH   LINE      ---      ---       #932
+      010012F1H   LINE      ---      ---       #933
+      010012F7H   LINE      ---      ---       #934
+      010012F9H   LINE      ---      ---       #935
+      010012F9H   LINE      ---      ---       #936
+      010012FFH   LINE      ---      ---       #937
+      010012FFH   LINE      ---      ---       #939
+      01001313H   LINE      ---      ---       #940
+      01001313H   LINE      ---      ---       #941
+      01001322H   LINE      ---      ---       #943
+      0100132CH   LINE      ---      ---       #944
+      0100132CH   LINE      ---      ---       #945
+      0100132CH   LINE      ---      ---       #946
+      01001334H   LINE      ---      ---       #947
+      01001334H   LINE      ---      ---       #948
+      0100133AH   LINE      ---      ---       #949
+      0100133CH   LINE      ---      ---       #950
+      01001340H   LINE      ---      ---       #951
+      01001340H   LINE      ---      ---       #952
+      01001346H   LINE      ---      ---       #953
+      01001348H   LINE      ---      ---       #954
+      01001350H   LINE      ---      ---       #955
+      01001350H   LINE      ---      ---       #956
+      01001356H   LINE      ---      ---       #957
+      01001358H   LINE      ---      ---       #958
+      0100135CH   LINE      ---      ---       #959
+      0100135CH   LINE      ---      ---       #960
+      01001362H   LINE      ---      ---       #961
+      01001362H   LINE      ---      ---       #968
+      01001370H   LINE      ---      ---       #969
+      01001370H   LINE      ---      ---       #970
+      01001376H   LINE      ---      ---       #971
+      01001376H   LINE      ---      ---       #972
+      01001378H   LINE      ---      ---       #973
+      0100137EH   LINE      ---      ---       #974
+      01001380H   LINE      ---      ---       #976
+      01001380H   LINE      ---      ---       #977
+      01001386H   LINE      ---      ---       #978
+      0100138BH   LINE      ---      ---       #979
+      0100138BH   LINE      ---      ---       #980
+      01001390H   LINE      ---      ---       #981
+      01001390H   LINE      ---      ---       #983
+      010013AFH   LINE      ---      ---       #984
+      010013AFH   LINE      ---      ---       #985
+      010013B7H   LINE      ---      ---       #986
+      010013BDH   LINE      ---      ---       #988
+      010013BFH   LINE      ---      ---       #989
+      010013C3H   LINE      ---      ---       #990
+      010013C9H   LINE      ---      ---       #992
+      010013CBH   LINE      ---      ---       #993
+      010013D3H   LINE      ---      ---       #994
+      010013D9H   LINE      ---      ---       #995
+      010013DFH   LINE      ---      ---       #996
+      010013E1H   LINE      ---      ---       #997
+      010013E5H   LINE      ---      ---       #998
+      010013EBH   LINE      ---      ---       #999
+      010013F1H   LINE      ---      ---       #1000
+      010013F3H   LINE      ---      ---       #1001
+      010013F7H   LINE      ---      ---       #1002
+      010013FDH   LINE      ---      ---       #1003
+      01001403H   LINE      ---      ---       #1004
+      01001405H   LINE      ---      ---       #1005
+      01001409H   LINE      ---      ---       #1006
+      0100140FH   LINE      ---      ---       #1007
+      01001415H   LINE      ---      ---       #1008
+      01001417H   LINE      ---      ---       #1009
+      0100141BH   LINE      ---      ---       #1010
+      01001421H   LINE      ---      ---       #1012
+      01001423H   LINE      ---      ---       #1013
+      0100142BH   LINE      ---      ---       #1014
+      01001431H   LINE      ---      ---       #1016
+      01001433H   LINE      ---      ---       #1017
+      01001437H   LINE      ---      ---       #1018
+      0100143DH   LINE      ---      ---       #1020
+      0100143FH   LINE      ---      ---       #1021
+      01001447H   LINE      ---      ---       #1022
+      0100144DH   LINE      ---      ---       #1024
+      0100144FH   LINE      ---      ---       #1025
+      01001453H   LINE      ---      ---       #1027
+      01001459H   LINE      ---      ---       #1028
+      0100145BH   LINE      ---      ---       #1029
+      01001462H   LINE      ---      ---       #1030
+      01001468H   LINE      ---      ---       #1032
+      01001468H   LINE      ---      ---       #1047
+      01001468H   LINE      ---      ---       #1051
+      0100146EH   LINE      ---      ---       #1052
+      0100146EH   LINE      ---      ---       #1055
+      01001475H   LINE      ---      ---       #1056
+      0100147CH   LINE      ---      ---       #1057
+      0100148BH   LINE      ---      ---       #1058
+      0100148DH   LINE      ---      ---       #1059
+      0100148DH   LINE      ---      ---       #1060
+      01001494H   LINE      ---      ---       #1061
+      010014A3H   LINE      ---      ---       #1062
+      010014A3H   LINE      ---      ---       #1063
+      010014A9H   LINE      ---      ---       #1066
+      010014A9H   LINE      ---      ---       #1069
+      010014B1H   LINE      ---      ---       #1071
+      010014B7H   LINE      ---      ---       #1072
+      010014BDH   LINE      ---      ---       #1073
+      010014C4H   LINE      ---      ---       #1074
+      010014CEH   LINE      ---      ---       #1076
+      010014D3H   LINE      ---      ---       #1077
+      010014DEH   LINE      ---      ---       #1078
+      010014DEH   LINE      ---      ---       #1080
+      010014E4H   LINE      ---      ---       #1081
+      010014EAH   LINE      ---      ---       #1082
+      010014F5H   LINE      ---      ---       #1083
+      010014F5H   LINE      ---      ---       #1086
+      010014A9H   SYMBOL    ---      ---       NextLoopon_keyscan
+      02004E91H   SYMBOL    XDATA    VOID      temp
+      02004E92H   SYMBOL    XDATA    VOID      temp1
+      02004E93H   SYMBOL    XDATA    VOID      templast
+      02004E94H   SYMBOL    XDATA    VOID      i
+      02004E95H   SYMBOL    XDATA    VOID      j
+      02004E96H   SYMBOL    XDATA    VOID      k
+      02004E97H   SYMBOL    XDATA    VOID      cur_hidbuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002EEAH   BLOCK     CODE     ---       LVL=0
+      01002EEAH   LINE      ---      ---       #1091
+      01002EEAH   LINE      ---      ---       #1092
+      01002EEAH   LINE      ---      ---       #1093
+      01002EEFH   LINE      ---      ---       #1094
+      01002EF2H   LINE      ---      ---       #1096
+      01002EF6H   LINE      ---      ---       #1097
+      01002EF6H   LINE      ---      ---       #1098
+      01002EFDH   LINE      ---      ---       #1099
+      01002F01H   LINE      ---      ---       #1101
+      01002F07H   LINE      ---      ---       #1102
+      01002F08H   LINE      ---      ---       #1104
+      01002F08H   LINE      ---      ---       #1105
+      01002F0EH   LINE      ---      ---       #1106
+      01002F0EH   LINE      ---      ---       #1107
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002F0FH   BLOCK     CODE     ---       LVL=0
+      01002F0FH   LINE      ---      ---       #1110
+      01002F19H   LINE      ---      ---       #1111
+      01002F19H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002F19H   LINE      ---      ---       #1112
+      01002F1EH   LINE      ---      ---       #1114
+      01002F22H   LINE      ---      ---       #1115
+      01002F27H   LINE      ---      ---       #1117
+      01002F2EH   LINE      ---      ---       #1131
+      01002F36H   LINE      ---      ---       #1132
+      01002F36H   LINE      ---      ---       #1134
+      01002F43H   LINE      ---      ---       #1135
+      01002F43H   LINE      ---      ---       #1136
+      01002F4BH   LINE      ---      ---       #1137
+      01002F4BH   LINE      ---      ---       #1138
+      01002F51H   LINE      ---      ---       #1139
+      01002F53H   LINE      ---      ---       #1140
+      01002F57H   LINE      ---      ---       #1141
+      01002F57H   LINE      ---      ---       #1142
+      01002F5CH   LINE      ---      ---       #1144
+      01002F5CH   LINE      ---      ---       #1145
+      01002F62H   LINE      ---      ---       #1146
+      01002F67H   LINE      ---      ---       #1147
+      01002F77H   LINE      ---      ---       #1148
+      01002F79H   LINE      ---      ---       #1149
+      01002F80H   LINE      ---      ---       #1150
+      01002F80H   LINE      ---      ---       #1151
+      01002F87H   LINE      ---      ---       #1152
+      01002F87H   LINE      ---      ---       #1153
+      01002F8DH   LINE      ---      ---       #1154
+      01002F8DH   LINE      ---      ---       #1155
+      01002F8FH   LINE      ---      ---       #1156
+      01002F91H   LINE      ---      ---       #1158
+      01002F97H   LINE      ---      ---       #1160
+      01002F9DH   LINE      ---      ---       #1163
+      01002F9DH   LINE      ---      ---       #1164
+      01002FA2H   LINE      ---      ---       #1165
+      01002FA2H   LINE      ---      ---       #1214
+      01002FA2H   LINE      ---      ---       #1218
+      01002FB6H   LINE      ---      ---       #1219
+      01002FB6H   LINE      ---      ---       #1221
+      01002FFAH   LINE      ---      ---       #1222
+      01002FFAH   LINE      ---      ---       #1223
+      01002FFAH   LINE      ---      ---       #1224
+      01003000H   LINE      ---      ---       #1225
+      01003003H   LINE      ---      ---       #1226
+      01003003H   LINE      ---      ---       #1227
+      01003009H   LINE      ---      ---       #1228
+      0100300CH   LINE      ---      ---       #1229
+      0100300CH   LINE      ---      ---       #1230
+      01003012H   LINE      ---      ---       #1231
+      01003014H   LINE      ---      ---       #1232
+      01003014H   LINE      ---      ---       #1233
+      0100301AH   LINE      ---      ---       #1234
+      0100301CH   LINE      ---      ---       #1235
+      0100301CH   LINE      ---      ---       #1236
+      01003022H   LINE      ---      ---       #1237
+      01003024H   LINE      ---      ---       #1238
+      01003024H   LINE      ---      ---       #1239
+      0100302AH   LINE      ---      ---       #1240
+      0100302CH   LINE      ---      ---       #1241
+      0100302CH   LINE      ---      ---       #1242
+      01003032H   LINE      ---      ---       #1243
+      01003034H   LINE      ---      ---       #1244
+      01003034H   LINE      ---      ---       #1245
+      0100303AH   LINE      ---      ---       #1246
+      0100303CH   LINE      ---      ---       #1247
+      0100303CH   LINE      ---      ---       #1248
+      01003042H   LINE      ---      ---       #1249
+      01003044H   LINE      ---      ---       #1250
+      01003044H   LINE      ---      ---       #1251
+      0100304AH   LINE      ---      ---       #1252
+      0100304CH   LINE      ---      ---       #1253
+      0100304CH   LINE      ---      ---       #1254
+      01003052H   LINE      ---      ---       #1255
+      01003054H   LINE      ---      ---       #1256
+      01003054H   LINE      ---      ---       #1257
+      0100305AH   LINE      ---      ---       #1258
+      0100305CH   LINE      ---      ---       #1259
+      0100305CH   LINE      ---      ---       #1260
+      01003062H   LINE      ---      ---       #1261
+      01003064H   LINE      ---      ---       #1262
+      01003064H   LINE      ---      ---       #1263
+      01003064H   LINE      ---      ---       #1264
+      01003064H   LINE      ---      ---       #1265
+      01003066H   LINE      ---      ---       #1267
+      01003066H   LINE      ---      ---       #1268
+      0100306DH   LINE      ---      ---       #1269
+      0100306DH   LINE      ---      ---       #1270
+      01003074H   LINE      ---      ---       #1271
+      01003074H   LINE      ---      ---       #1272
+      01003080H   LINE      ---      ---       #1273
+      01003080H   LINE      ---      ---       #1274
+      01003080H   LINE      ---      ---       #1275
+      01003087H   LINE      ---      ---       #1276
+      01003087H   LINE      ---      ---       #1277
+      0100308EH   LINE      ---      ---       #1278
+      0100308EH   LINE      ---      ---       #1279
+      0100309AH   LINE      ---      ---       #1280
+      0100309AH   LINE      ---      ---       #1281
+      0100309AH   LINE      ---      ---       #1282
+      010030A1H   LINE      ---      ---       #1283
+      010030A1H   LINE      ---      ---       #1284
+      010030A8H   LINE      ---      ---       #1285
+      010030A8H   LINE      ---      ---       #1286
+      010030B4H   LINE      ---      ---       #1287
+      010030B4H   LINE      ---      ---       #1288
+      010030B4H   LINE      ---      ---       #1289
+      010030B4H   LINE      ---      ---       #1290
+      010030B9H   LINE      ---      ---       #1291
+      02004F0BH   SYMBOL    XDATA    VOID      temp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001509H   BLOCK     CODE     ---       LVL=0
+      01001509H   LINE      ---      ---       #1295
+      01001514H   LINE      ---      ---       #1296
+      01001514H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001514H   LINE      ---      ---       #1297
+      01001517H   LINE      ---      ---       #1299
+      01001525H   LINE      ---      ---       #1300
+      01001525H   LINE      ---      ---       #1301
+      01001551H   LINE      ---      ---       #1303
+      01001551H   LINE      ---      ---       #1305
+      01001558H   LINE      ---      ---       #1306
+      01001558H   LINE      ---      ---       #1307
+      0100155EH   LINE      ---      ---       #1308
+      01001560H   LINE      ---      ---       #1310
+      01001564H   LINE      ---      ---       #1311
+      01001564H   LINE      ---      ---       #1312
+      0100156AH   LINE      ---      ---       #1313
+      0100156CH   LINE      ---      ---       #1314
+      0100158CH   LINE      ---      ---       #1315
+      0100158CH   LINE      ---      ---       #1316
+      01001590H   LINE      ---      ---       #1317
+      01001592H   LINE      ---      ---       #1318
+      01001596H   LINE      ---      ---       #1319
+      01001596H   LINE      ---      ---       #1320
+      0100159CH   LINE      ---      ---       #1321
+      0100159EH   LINE      ---      ---       #1322
+      010015BEH   LINE      ---      ---       #1323
+      010015BEH   LINE      ---      ---       #1324
+      010015C2H   LINE      ---      ---       #1325
+      010015C4H   LINE      ---      ---       #1326
+      010015C8H   LINE      ---      ---       #1327
+      010015C8H   LINE      ---      ---       #1328
+      010015CEH   LINE      ---      ---       #1329
+      010015D0H   LINE      ---      ---       #1330
+      010015F0H   LINE      ---      ---       #1331
+      010015F0H   LINE      ---      ---       #1332
+      010015F4H   LINE      ---      ---       #1333
+      010015F6H   LINE      ---      ---       #1334
+      010015FAH   LINE      ---      ---       #1335
+      010015FAH   LINE      ---      ---       #1336
+      01001600H   LINE      ---      ---       #1337
+      01001602H   LINE      ---      ---       #1338
+      01001622H   LINE      ---      ---       #1339
+      01001622H   LINE      ---      ---       #1340
+      01001627H   LINE      ---      ---       #1341
+      01001629H   LINE      ---      ---       #1342
+      0100162DH   LINE      ---      ---       #1343
+      0100162DH   LINE      ---      ---       #1344
+      01001633H   LINE      ---      ---       #1345
+      01001635H   LINE      ---      ---       #1346
+      01001655H   LINE      ---      ---       #1347
+      01001655H   LINE      ---      ---       #1348
+      0100165AH   LINE      ---      ---       #1349
+      0100165CH   LINE      ---      ---       #1350
+      01001660H   LINE      ---      ---       #1351
+      01001660H   LINE      ---      ---       #1352
+      01001666H   LINE      ---      ---       #1353
+      01001668H   LINE      ---      ---       #1354
+      01001688H   LINE      ---      ---       #1355
+      01001688H   LINE      ---      ---       #1356
+      0100168EH   LINE      ---      ---       #1357
+      01001690H   LINE      ---      ---       #1358
+      01001694H   LINE      ---      ---       #1359
+      01001694H   LINE      ---      ---       #1360
+      0100169AH   LINE      ---      ---       #1361
+      0100169CH   LINE      ---      ---       #1362
+      010016BCH   LINE      ---      ---       #1363
+      010016BCH   LINE      ---      ---       #1364
+      010016C2H   LINE      ---      ---       #1365
+      010016C4H   LINE      ---      ---       #1366
+      010016C8H   LINE      ---      ---       #1367
+      010016C8H   LINE      ---      ---       #1368
+      010016CEH   LINE      ---      ---       #1369
+      010016D0H   LINE      ---      ---       #1370
+      010016F0H   LINE      ---      ---       #1371
+      010016F0H   LINE      ---      ---       #1372
+      010016F6H   LINE      ---      ---       #1373
+      010016F8H   LINE      ---      ---       #1374
+      010016FCH   LINE      ---      ---       #1375
+      010016FCH   LINE      ---      ---       #1376
+      01001702H   LINE      ---      ---       #1377
+      01001704H   LINE      ---      ---       #1378
+      01001724H   LINE      ---      ---       #1379
+      01001724H   LINE      ---      ---       #1380
+      01001728H   LINE      ---      ---       #1381
+      0100172AH   LINE      ---      ---       #1382
+      0100172EH   LINE      ---      ---       #1383
+      0100172EH   LINE      ---      ---       #1384
+      01001734H   LINE      ---      ---       #1385
+      01001736H   LINE      ---      ---       #1386
+      01001756H   LINE      ---      ---       #1387
+      01001756H   LINE      ---      ---       #1388
+      0100175AH   LINE      ---      ---       #1389
+      0100175CH   LINE      ---      ---       #1390
+      01001760H   LINE      ---      ---       #1391
+      01001760H   LINE      ---      ---       #1392
+      01001766H   LINE      ---      ---       #1393
+      01001768H   LINE      ---      ---       #1394
+      01001788H   LINE      ---      ---       #1395
+      01001788H   LINE      ---      ---       #1396
+      0100178EH   LINE      ---      ---       #1397
+      01001790H   LINE      ---      ---       #1398
+      01001794H   LINE      ---      ---       #1399
+      01001794H   LINE      ---      ---       #1400
+      0100179AH   LINE      ---      ---       #1401
+      0100179CH   LINE      ---      ---       #1402
+      010017BCH   LINE      ---      ---       #1403
+      010017BCH   LINE      ---      ---       #1404
+      010017C1H   LINE      ---      ---       #1405
+      010017C3H   LINE      ---      ---       #1406
+      010017C7H   LINE      ---      ---       #1407
+      010017C7H   LINE      ---      ---       #1408
+      010017CCH   LINE      ---      ---       #1409
+      010017CEH   LINE      ---      ---       #1410
+      010017D4H   LINE      ---      ---       #1411
+      010017D4H   LINE      ---      ---       #1412
+      010017D9H   LINE      ---      ---       #1413
+      010017D9H   LINE      ---      ---       #1415
+      010017E0H   LINE      ---      ---       #1416
+      010017E0H   LINE      ---      ---       #1417
+      01001800H   LINE      ---      ---       #1418
+      01001804H   LINE      ---      ---       #1419
+      01001804H   LINE      ---      ---       #1420
+      01001804H   LINE      ---      ---       #1421
+      0100180DH   LINE      ---      ---       #1422
+      02004EFDH   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       KEYSCAN
+      02004EC9H   PUBLIC    XDATA    ---       ksEvtPool
+      01002AB3H   PUBLIC    CODE     ---       KS_GetCurrentEvt
+      01002CE9H   PUBLIC    CODE     ---       _array_is_empty
+      010032D7H   PUBLIC    CODE     ---       KS_ScanMatrix
+      010030BAH   PUBLIC    CODE     ---       KS_Unistall
+      01002779H   PUBLIC    CODE     ---       KS_Initialize
+
+      01002CDBH   BLOCK     CODE     ---       LVL=0
+      01002CDBH   LINE      ---      ---       #24
+      01002CDBH   LINE      ---      ---       #25
+      01002CDBH   BLOCK     CODE     NEAR LAB  LVL=1
+      01002CDBH   LINE      ---      ---       #27
+      01002CE0H   LINE      ---      ---       #28
+      01002CE3H   LINE      ---      ---       #29
+      01002CE6H   LINE      ---      ---       #30
+      01002CE8H   LINE      ---      ---       #31
+      00000006H   SYMBOL    DATA     VOID      c
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002D19H   BLOCK     CODE     ---       LVL=0
+      01002D19H   LINE      ---      ---       #35
+      01002D19H   LINE      ---      ---       #36
+      01002D19H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002D19H   LINE      ---      ---       #37
+      01002D1BH   LINE      ---      ---       #39
+      01002D27H   LINE      ---      ---       #40
+      01002D27H   LINE      ---      ---       #41
+      01002D41H   LINE      ---      ---       #43
+      01002D41H   LINE      ---      ---       #100
+      01002D43H   LINE      ---      ---       #102
+      01002D49H   LINE      ---      ---       #103
+      01002D49H   LINE      ---      ---       #104
+      01002D5AH   LINE      ---      ---       #105
+      01002D5AH   LINE      ---      ---       #106
+      01002D5DH   LINE      ---      ---       #107
+      01002D5DH   LINE      ---      ---       #108
+      01002D69H   LINE      ---      ---       #109
+      01002D6AH   LINE      ---      ---       #110
+      01002D6AH   LINE      ---      ---       #111
+      01002D6AH   LINE      ---      ---       #113
+      01002D6AH   LINE      ---      ---       #114
+      01002D70H   LINE      ---      ---       #115
+      01002D70H   LINE      ---      ---       #116
+      01002D9AH   LINE      ---      ---       #117
+      01002DA0H   LINE      ---      ---       #118
+      01002DA2H   LINE      ---      ---       #120
+      01002DA2H   LINE      ---      ---       #121
+      01002DCCH   LINE      ---      ---       #122
+      01002DD2H   LINE      ---      ---       #123
+      01002DD2H   LINE      ---      ---       #124
+      01002DD2H   LINE      ---      ---       #125
+      01002DDAH   LINE      ---      ---       #126
+      00000006H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002DDBH   BLOCK     CODE     ---       LVL=0
+      01002DDBH   LINE      ---      ---       #128
+      01002DDBH   LINE      ---      ---       #129
+      01002DDBH   BLOCK     CODE     NEAR LAB  LVL=1
+      01002DDBH   LINE      ---      ---       #130
+      01002DDDH   LINE      ---      ---       #131
+      01002DE1H   LINE      ---      ---       #133
+      01002DEDH   LINE      ---      ---       #134
+      01002DEDH   LINE      ---      ---       #136
+      01002E08H   LINE      ---      ---       #138
+      01002E08H   LINE      ---      ---       #139
+      01002E0AH   LINE      ---      ---       #140
+      01002E10H   LINE      ---      ---       #141
+      01002E10H   LINE      ---      ---       #142
+      01002E16H   LINE      ---      ---       #143
+      01002E16H   LINE      ---      ---       #144
+      01002E26H   LINE      ---      ---       #145
+      01002E2AH   LINE      ---      ---       #146
+      01002E35H   LINE      ---      ---       #147
+      01002E35H   LINE      ---      ---       #148
+      01002E3BH   LINE      ---      ---       #149
+      01002E3BH   LINE      ---      ---       #150
+      01002E3DH   LINE      ---      ---       #152
+      01002E3DH   LINE      ---      ---       #153
+      01002E55H   LINE      ---      ---       #154
+      01002E64H   LINE      ---      ---       #155
+      01002E64H   LINE      ---      ---       #156
+      01002E69H   LINE      ---      ---       #157
+      01002E75H   LINE      ---      ---       #158
+      01002E75H   LINE      ---      ---       #159
+      01002E75H   LINE      ---      ---       #160
+      01002E77H   LINE      ---      ---       #162
+      01002E77H   LINE      ---      ---       #163
+      01002E7DH   LINE      ---      ---       #164
+      01002E7DH   LINE      ---      ---       #165
+      01002EA8H   LINE      ---      ---       #166
+      01002EAEH   LINE      ---      ---       #167
+      01002EB0H   LINE      ---      ---       #169
+      01002EB0H   LINE      ---      ---       #170
+      01002EDBH   LINE      ---      ---       #171
+      01002EE1H   LINE      ---      ---       #172
+      01002EE1H   LINE      ---      ---       #173
+      01002EE1H   LINE      ---      ---       #174
+      01002EE9H   LINE      ---      ---       #175
+      00000006H   SYMBOL    DATA     VOID      i
+      02004F2AH   SYMBOL    XDATA    VOID      found
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010027BDH   BLOCK     CODE     ---       LVL=0
+      010027BDH   LINE      ---      ---       #258
+      010027BDH   LINE      ---      ---       #259
+      010027BDH   BLOCK     CODE     NEAR LAB  LVL=1
+      010027BDH   LINE      ---      ---       #260
+      010027C2H   LINE      ---      ---       #262
+      010027CDH   LINE      ---      ---       #263
+      010027D2H   LINE      ---      ---       #264
+      010027DAH   LINE      ---      ---       #265
+      02004F2BH   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002784H   BLOCK     CODE     ---       LVL=0
+      01002784H   LINE      ---      ---       #267
+      01002784H   LINE      ---      ---       #268
+      01002784H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002784H   LINE      ---      ---       #269
+      01002789H   LINE      ---      ---       #270
+      01002795H   LINE      ---      ---       #271
+      0100279AH   LINE      ---      ---       #272
+      010027A2H   LINE      ---      ---       #273
+      02004F2CH   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002779H   BLOCK     CODE     ---       LVL=0
+      01002779H   LINE      ---      ---       #275
+      01002779H   LINE      ---      ---       #276
+      01002779H   LINE      ---      ---       #277
+      0100277EH   LINE      ---      ---       #278
+      01002780H   LINE      ---      ---       #279
+      01002782H   LINE      ---      ---       #280
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010030BAH   BLOCK     CODE     ---       LVL=0
+      010030BAH   LINE      ---      ---       #284
+      010030BAH   LINE      ---      ---       #285
+      010030BAH   BLOCK     CODE     NEAR LAB  LVL=1
+      010030BAH   LINE      ---      ---       #286
+      010030BCH   LINE      ---      ---       #287
+      010030C0H   LINE      ---      ---       #288
+      010030C1H   LINE      ---      ---       #289
+      010030C2H   LINE      ---      ---       #290
+      010030C9H   LINE      ---      ---       #291
+      010030D2H   LINE      ---      ---       #292
+      010030E2H   LINE      ---      ---       #293
+      010030F5H   LINE      ---      ---       #294
+      01003102H   LINE      ---      ---       #295
+      0100310FH   LINE      ---      ---       #296
+      01003112H   LINE      ---      ---       #298
+      01003114H   LINE      ---      ---       #300
+      0100311CH   LINE      ---      ---       #302
+      01003122H   LINE      ---      ---       #303
+      01003122H   LINE      ---      ---       #304
+      01003126H   LINE      ---      ---       #305
+      0100312AH   LINE      ---      ---       #306
+      0100312EH   LINE      ---      ---       #307
+      01003132H   LINE      ---      ---       #308
+      01003136H   LINE      ---      ---       #309
+      0100313AH   LINE      ---      ---       #310
+      0100313EH   LINE      ---      ---       #311
+      01003142H   LINE      ---      ---       #312
+      01003142H   LINE      ---      ---       #314
+      01003142H   LINE      ---      ---       #315
+      0100314BH   LINE      ---      ---       #316
+      01003151H   LINE      ---      ---       #317
+      01003151H   LINE      ---      ---       #319
+      00000007H   SYMBOL    DATA     VOID      i
+      02004F2DH   SYMBOL    XDATA    VOID      temp
+      00000006H   SYMBOL    DATA     VOID      tgroup
+      00000005H   SYMBOL    DATA     VOID      tgpionum
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010032D7H   BLOCK     CODE     ---       LVL=0
+      010032D7H   LINE      ---      ---       #322
+      010032D7H   LINE      ---      ---       #323
+      010032D7H   BLOCK     CODE     NEAR LAB  LVL=1
+      010032D7H   LINE      ---      ---       #324
+      010032D9H   LINE      ---      ---       #325
+      010032DDH   LINE      ---      ---       #326
+      010032DEH   LINE      ---      ---       #327
+      010032DFH   LINE      ---      ---       #328
+      010032E1H   LINE      ---      ---       #329
+      010032E3H   LINE      ---      ---       #330
+      010032EAH   LINE      ---      ---       #331
+      010032F3H   LINE      ---      ---       #332
+      01003303H   LINE      ---      ---       #333
+      01003363H   LINE      ---      ---       #334
+      01003366H   LINE      ---      ---       #336
+      0100336FH   LINE      ---      ---       #337
+      01003378H   LINE      ---      ---       #338
+      01003388H   LINE      ---      ---       #339
+      010033E8H   LINE      ---      ---       #340
+      010033EBH   LINE      ---      ---       #342
+      010033F4H   LINE      ---      ---       #343
+      0100340EH   LINE      ---      ---       #344
+      01003431H   LINE      ---      ---       #345
+      01003431H   LINE      ---      ---       #346
+      01003434H   LINE      ---      ---       #347
+      00000007H   SYMBOL    DATA     VOID      i
+      02004F0CH   SYMBOL    XDATA    VOID      j
+      00000006H   SYMBOL    DATA     VOID      tgroup
+      00000005H   SYMBOL    DATA     VOID      tgpionum
+      02004F0DH   SYMBOL    XDATA    VOID      temp
+      02004F0EH   SYMBOL    XDATA    VOID      check
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002CE9H   BLOCK     CODE     ---       LVL=0
+      01002CE9H   LINE      ---      ---       #349
+      01002CF4H   LINE      ---      ---       #350
+      01002CF4H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002CF4H   LINE      ---      ---       #352
+      01002CFBH   LINE      ---      ---       #353
+      01002CFBH   LINE      ---      ---       #354
+      01002D10H   LINE      ---      ---       #355
+      01002D13H   LINE      ---      ---       #356
+      01002D16H   LINE      ---      ---       #357
+      01002D18H   LINE      ---      ---       #358
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002AB3H   BLOCK     CODE     ---       LVL=0
+      01002AB3H   LINE      ---      ---       #361
+      01002AB3H   LINE      ---      ---       #362
+      01002AB3H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002AB3H   LINE      ---      ---       #364
+      01002AB8H   LINE      ---      ---       #365
+      01002ABAH   LINE      ---      ---       #366
+      01002ABCH   LINE      ---      ---       #367
+      01002ABEH   LINE      ---      ---       #368
+      01002AC0H   LINE      ---      ---       #369
+      01002AC2H   LINE      ---      ---       #370
+      01002AC4H   LINE      ---      ---       #371
+      01002AC6H   LINE      ---      ---       #372
+      01002AC8H   LINE      ---      ---       #373
+      01002ACAH   LINE      ---      ---       #374
+      01002ACCH   LINE      ---      ---       #376
+      01002ACFH   LINE      ---      ---       #378
+      01002AFEH   LINE      ---      ---       #380
+      01002AFEH   LINE      ---      ---       #381
+      01002B05H   LINE      ---      ---       #382
+      01002B07H   LINE      ---      ---       #384
+      01002B07H   LINE      ---      ---       #385
+      01002B0EH   LINE      ---      ---       #386
+      01002B13H   LINE      ---      ---       #387
+      01002B13H   LINE      ---      ---       #389
+      01002B25H   LINE      ---      ---       #390
+      01002B25H   LINE      ---      ---       #391
+      01002B34H   LINE      ---      ---       #392
+      01002B3DH   LINE      ---      ---       #393
+      01002B44H   LINE      ---      ---       #394
+      01002B44H   LINE      ---      ---       #395
+      01002B53H   LINE      ---      ---       #396
+      01002B53H   LINE      ---      ---       #397
+      01002B6EH   LINE      ---      ---       #398
+      01002B6EH   LINE      ---      ---       #399
+      01002B7EH   LINE      ---      ---       #400
+      01002B7EH   LINE      ---      ---       #401
+      01002B87H   LINE      ---      ---       #402
+      01002B87H   LINE      ---      ---       #403
+      01002BB6H   LINE      ---      ---       #404
+      01002BB6H   LINE      ---      ---       #405
+      01002BBCH   LINE      ---      ---       #406
+      01002BBEH   LINE      ---      ---       #407
+      01002BBEH   LINE      ---      ---       #408
+      01002BBEH   LINE      ---      ---       #409
+      01002BC6H   LINE      ---      ---       #410
+      01002BC6H   LINE      ---      ---       #411
+      01002BCEH   LINE      ---      ---       #412
+      01002BCEH   LINE      ---      ---       #414
+      01002BD5H   LINE      ---      ---       #415
+      01002BD5H   LINE      ---      ---       #416
+      01002BDDH   LINE      ---      ---       #417
+      01002BDDH   LINE      ---      ---       #418
+      01002BE5H   LINE      ---      ---       #419
+      01002BEDH   LINE      ---      ---       #421
+      01002BFFH   LINE      ---      ---       #422
+      01002BFFH   LINE      ---      ---       #423
+      01002C1BH   LINE      ---      ---       #424
+      01002C2EH   LINE      ---      ---       #425
+      01002C34H   LINE      ---      ---       #426
+      01002C34H   LINE      ---      ---       #427
+      01002C36H   LINE      ---      ---       #428
+      01002C38H   LINE      ---      ---       #430
+      01002C38H   LINE      ---      ---       #432
+      01002C3EH   LINE      ---      ---       #433
+      01002C45H   LINE      ---      ---       #434
+      01002C5DH   LINE      ---      ---       #435
+      01002C6CH   LINE      ---      ---       #436
+      01002C6CH   LINE      ---      ---       #437
+      01002C73H   LINE      ---      ---       #438
+      01002C73H   LINE      ---      ---       #439
+      01002C84H   LINE      ---      ---       #441
+      01002C89H   LINE      ---      ---       #442
+      01002C89H   LINE      ---      ---       #443
+      01002C94H   LINE      ---      ---       #444
+      01002C96H   LINE      ---      ---       #446
+      01002C96H   LINE      ---      ---       #447
+      01002CA1H   LINE      ---      ---       #448
+      01002CA1H   LINE      ---      ---       #449
+      01002CA1H   LINE      ---      ---       #450
+      01002CA9H   LINE      ---      ---       #451
+      01002CB1H   LINE      ---      ---       #452
+      01002CB9H   LINE      ---      ---       #453
+      01002CBFH   LINE      ---      ---       #454
+      01002CBFH   LINE      ---      ---       #455
+      01002CC7H   LINE      ---      ---       #462
+      01002CCDH   LINE      ---      ---       #464
+      01002CCDH   LINE      ---      ---       #465
+      01002CD4H   LINE      ---      ---       #466
+      01002CD4H   LINE      ---      ---       #468
+      01002CD4H   LINE      ---      ---       #469
+      01002CDAH   LINE      ---      ---       #470
+      01002CDAH   LINE      ---      ---       #473
+      02004EADH   SYMBOL    XDATA    VOID      i
+      02004EAEH   SYMBOL    XDATA    VOID      j
+      02004EAFH   SYMBOL    XDATA    VOID      k
+      02004EB0H   SYMBOL    XDATA    VOID      temp
+      02004EB1H   SYMBOL    XDATA    VOID      flag
+      02004EB2H   SYMBOL    XDATA    VOID      offset
+      02004EB3H   SYMBOL    XDATA    VOID      state
+      02004EB4H   SYMBOL    XDATA    VOID      keyCounttemp
+      02004EB5H   SYMBOL    XDATA    VOID      key_value_temp
+      02004EB6H   SYMBOL    XDATA    VOID      ghost
+      02004EB7H   SYMBOL    XDATA    VOID      rawCount
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       LED
+      01000AFEH   PUBLIC    CODE     ---       LED_handle
+      01003435H   PUBLIC    CODE     ---       LED_device_poweroff
+      01000FA2H   PUBLIC    CODE     ---       LED_device_poweron
+      01000ED8H   PUBLIC    CODE     ---       LED_all_shutdown
+
+      01000ED8H   BLOCK     CODE     ---       LVL=0
+      01000ED8H   LINE      ---      ---       #4
+      01000ED8H   LINE      ---      ---       #5
+      01000ED8H   LINE      ---      ---       #6
+      01000EDEH   LINE      ---      ---       #7
+      01000EE4H   LINE      ---      ---       #8
+      01000EEAH   LINE      ---      ---       #9
+      01000EF0H   LINE      ---      ---       #10
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FA2H   BLOCK     CODE     ---       LVL=0
+      01000FA2H   LINE      ---      ---       #14
+      01000FA2H   LINE      ---      ---       #15
+      01000FA2H   LINE      ---      ---       #17
+      01000FA9H   LINE      ---      ---       #18
+      01000FAFH   LINE      ---      ---       #19
+      01000FB6H   LINE      ---      ---       #20
+      01000FBCH   LINE      ---      ---       #21
+      01000FC3H   LINE      ---      ---       #22
+      01000FC3H   LINE      ---      ---       #23
+      01000FC9H   LINE      ---      ---       #24
+      01000FC9H   LINE      ---      ---       #26
+      01000FC9H   LINE      ---      ---       #27
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003435H   BLOCK     CODE     ---       LVL=0
+      01003435H   LINE      ---      ---       #34
+      01003435H   LINE      ---      ---       #35
+      01003435H   LINE      ---      ---       #36
+      0100343CH   LINE      ---      ---       #37
+      01003443H   LINE      ---      ---       #38
+      0100344AH   LINE      ---      ---       #39
+      01003451H   LINE      ---      ---       #40
+      01003458H   LINE      ---      ---       #41
+      01003458H   LINE      ---      ---       #42
+      0100345FH   LINE      ---      ---       #43
+      0100345FH   LINE      ---      ---       #45
+      0100345FH   LINE      ---      ---       #46
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000AFEH   BLOCK     CODE     ---       LVL=0
+      01000AFEH   LINE      ---      ---       #51
+      01000AFEH   LINE      ---      ---       #52
+      01000AFEH   LINE      ---      ---       #53
+      01000B08H   LINE      ---      ---       #56
+      01000B18H   LINE      ---      ---       #57
+      01000B18H   LINE      ---      ---       #59
+      01000B1FH   LINE      ---      ---       #60
+      01000B1FH   LINE      ---      ---       #61
+      01000B21H   LINE      ---      ---       #62
+      01000B23H   LINE      ---      ---       #63
+      01000B2AH   LINE      ---      ---       #64
+      01000B2AH   LINE      ---      ---       #65
+      01000B30H   LINE      ---      ---       #66
+      01000B30H   LINE      ---      ---       #67
+      01000B36H   LINE      ---      ---       #68
+      01000B3CH   LINE      ---      ---       #69
+      01000B3CH   LINE      ---      ---       #70
+      01000B3EH   LINE      ---      ---       #72
+      01000B3EH   LINE      ---      ---       #73
+      01000B45H   LINE      ---      ---       #74
+      01000B45H   LINE      ---      ---       #75
+      01000B47H   LINE      ---      ---       #76
+      01000B4BH   LINE      ---      ---       #77
+      01000B51H   LINE      ---      ---       #78
+      01000B51H   LINE      ---      ---       #79
+      01000B51H   LINE      ---      ---       #82
+      01000B59H   LINE      ---      ---       #83
+      01000B59H   LINE      ---      ---       #84
+      01000B68H   LINE      ---      ---       #85
+      01000B68H   LINE      ---      ---       #87
+      01000B75H   LINE      ---      ---       #88
+      01000B75H   LINE      ---      ---       #89
+      01000B7BH   LINE      ---      ---       #90
+      01000B7DH   LINE      ---      ---       #92
+      01000B7DH   LINE      ---      ---       #93
+      01000B89H   LINE      ---      ---       #94
+      01000B8FH   LINE      ---      ---       #95
+      01000B8FH   LINE      ---      ---       #96
+      01000B8FH   LINE      ---      ---       #98
+      01000B96H   LINE      ---      ---       #99
+      01000B96H   LINE      ---      ---       #100
+      01000B9CH   LINE      ---      ---       #101
+      01000B9EH   LINE      ---      ---       #103
+      01000B9EH   LINE      ---      ---       #104
+      01000BA4H   LINE      ---      ---       #105
+      01000BA4H   LINE      ---      ---       #108
+      01000BABH   LINE      ---      ---       #109
+      01000BABH   LINE      ---      ---       #110
+      01000BB1H   LINE      ---      ---       #111
+      01000BB1H   LINE      ---      ---       #113
+      01000BB1H   LINE      ---      ---       #114
+      01000BB7H   LINE      ---      ---       #115
+      01000BB7H   LINE      ---      ---       #117
+      01000BB7H   LINE      ---      ---       #119
+      01000BB7H   LINE      ---      ---       #120
+      01000BBDH   LINE      ---      ---       #121
+      01000BC3H   LINE      ---      ---       #122
+      01000BCFH   LINE      ---      ---       #123
+      01000BD5H   LINE      ---      ---       #124
+      01000BDBH   LINE      ---      ---       #125
+      01000BDBH   LINE      ---      ---       #127
+      01000BDBH   LINE      ---      ---       #128
+      01000BDBH   LINE      ---      ---       #130
+      01000BDBH   LINE      ---      ---       #131
+      01000BE1H   LINE      ---      ---       #132
+      01000BE7H   LINE      ---      ---       #133
+      01000BF3H   LINE      ---      ---       #134
+      01000BF9H   LINE      ---      ---       #135
+      01000BFFH   LINE      ---      ---       #136
+      01000BFFH   LINE      ---      ---       #138
+      01000BFFH   LINE      ---      ---       #139
+      01000BFFH   LINE      ---      ---       #140
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       SYS
+      01000F30H   PUBLIC    CODE     ---       YC_System_Main
+      01000C3FH   PUBLIC    CODE     ---       kb_button_press_timer500ms
+      0100362EH   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
+      010035DBH   PUBLIC    CODE     ---       YC_wait_disconnect_timer500ms
+      010019F7H   PUBLIC    CODE     ---       YC_connect_timeout_500ms
+      01003252H   PUBLIC    CODE     ---       LED_timer500ms
+      01000FD8H   PUBLIC    CODE     ---       System_Reset_Connect
+      01001BB9H   PUBLIC    CODE     ---       System_G24_long_lpm
+      01000FCFH   PUBLIC    CODE     ---       System_long_sleep
+      01001C18H   PUBLIC    CODE     ---       System_Software_init
+
+      01001B1CH   BLOCK     CODE     ---       LVL=0
+      01001B1CH   LINE      ---      ---       #11
+      01001B1CH   LINE      ---      ---       #12
+      01001B1CH   LINE      ---      ---       #13
+      01001B28H   LINE      ---      ---       #14
+      01001B34H   LINE      ---      ---       #15
+      01001B40H   LINE      ---      ---       #16
+      01001B4CH   LINE      ---      ---       #17
+      01001B58H   LINE      ---      ---       #18
+      01001B64H   LINE      ---      ---       #20
+      01001B69H   LINE      ---      ---       #21
+      01001B6DH   LINE      ---      ---       #22
+      01001B71H   LINE      ---      ---       #24
+      01001B75H   LINE      ---      ---       #25
+      01001B79H   LINE      ---      ---       #26
+      01001B7DH   LINE      ---      ---       #27
+      01001B81H   LINE      ---      ---       #28
+      01001B85H   LINE      ---      ---       #29
+      01001B89H   LINE      ---      ---       #30
+      01001B8DH   LINE      ---      ---       #31
+      01001B91H   LINE      ---      ---       #32
+      01001B95H   LINE      ---      ---       #33
+      01001B99H   LINE      ---      ---       #34
+      01001B9DH   LINE      ---      ---       #35
+      01001BA1H   LINE      ---      ---       #37
+      01001BA5H   LINE      ---      ---       #38
+      01001BABH   LINE      ---      ---       #39
+      01001BAFH   LINE      ---      ---       #40
+      01001BB4H   LINE      ---      ---       #41
+      01001BB8H   LINE      ---      ---       #42
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010027AAH   BLOCK     CODE     ---       LVL=0
+      010027AAH   LINE      ---      ---       #44
+      010027AAH   LINE      ---      ---       #45
+      010027AAH   LINE      ---      ---       #46
+      010027B0H   LINE      ---      ---       #47
+      010027B3H   LINE      ---      ---       #48
+      010027B5H   LINE      ---      ---       #49
+      010027B7H   LINE      ---      ---       #50
+      010027B9H   LINE      ---      ---       #51
+      010027BCH   LINE      ---      ---       #52
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010027A3H   BLOCK     CODE     ---       LVL=0
+      010027A3H   LINE      ---      ---       #54
+      010027A3H   LINE      ---      ---       #55
+      010027A3H   LINE      ---      ---       #56
+      010027A5H   LINE      ---      ---       #57
+      010027A7H   LINE      ---      ---       #58
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C18H   BLOCK     CODE     ---       LVL=0
+      01001C18H   LINE      ---      ---       #62
+      01001C18H   LINE      ---      ---       #63
+      01001C18H   LINE      ---      ---       #64
+      01001C1AH   LINE      ---      ---       #65
+      01001C1DH   LINE      ---      ---       #66
+      01001C23H   LINE      ---      ---       #67
+      01001C29H   LINE      ---      ---       #68
+      01001C2EH   LINE      ---      ---       #69
+      01001C34H   LINE      ---      ---       #70
+      01001C3CH   LINE      ---      ---       #71
+      01001C44H   LINE      ---      ---       #72
+      01001C4CH   LINE      ---      ---       #73
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FD8H   BLOCK     CODE     ---       LVL=0
+      01000FD8H   LINE      ---      ---       #75
+      01000FD8H   LINE      ---      ---       #76
+      01000FD8H   LINE      ---      ---       #77
+      01000FDEH   LINE      ---      ---       #78
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FCFH   BLOCK     CODE     ---       LVL=0
+      01000FCFH   LINE      ---      ---       #81
+      01000FCFH   LINE      ---      ---       #82
+      01000FCFH   LINE      ---      ---       #83
+      01000FD4H   LINE      ---      ---       #84
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001BB9H   BLOCK     CODE     ---       LVL=0
+      01001BB9H   LINE      ---      ---       #87
+      01001BB9H   LINE      ---      ---       #88
+      01001BB9H   LINE      ---      ---       #89
+      01001BBCH   LINE      ---      ---       #90
+      01001BC2H   LINE      ---      ---       #91
+      01001BC8H   LINE      ---      ---       #93
+      01001BCEH   LINE      ---      ---       #94
+      01001BD2H   LINE      ---      ---       #96
+      01001BD8H   LINE      ---      ---       #97
+      01001BDAH   LINE      ---      ---       #98
+      01001BDCH   LINE      ---      ---       #99
+      01001BDEH   LINE      ---      ---       #100
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FD8H   BLOCK     CODE     ---       LVL=0
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010035CBH   BLOCK     CODE     ---       LVL=0
+      010035CBH   LINE      ---      ---       #112
+      010035D0H   BLOCK     CODE     NEAR LAB  LVL=1
+      010035D0H   LINE      ---      ---       #114
+      010035DAH   LINE      ---      ---       #116
+      010035DAH   LINE      ---      ---       #118
+      010035DAH   LINE      ---      ---       #119
+      02004F23H   SYMBOL    XDATA    VOID      temp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010020FEH   BLOCK     CODE     ---       LVL=0
+      010020FEH   LINE      ---      ---       #121
+      01002103H   LINE      ---      ---       #122
+      01002103H   LINE      ---      ---       #127
+      0100214CH   LINE      ---      ---       #128
+      0100214CH   LINE      ---      ---       #130
+      0100214CH   LINE      ---      ---       #131
+      0100214CH   LINE      ---      ---       #132
+      0100214EH   LINE      ---      ---       #133
+      01002151H   LINE      ---      ---       #135
+      01002161H   LINE      ---      ---       #136
+      01002169H   LINE      ---      ---       #137
+      01002169H   LINE      ---      ---       #138
+      01002183H   LINE      ---      ---       #140
+      01002198H   LINE      ---      ---       #141
+      01002198H   LINE      ---      ---       #142
+      0100219EH   LINE      ---      ---       #143
+      010021A3H   LINE      ---      ---       #144
+      010021A8H   LINE      ---      ---       #145
+      010021A8H   LINE      ---      ---       #146
+      010021A8H   LINE      ---      ---       #147
+      010021A8H   LINE      ---      ---       #148
+      010021B8H   LINE      ---      ---       #149
+      010021BDH   LINE      ---      ---       #150
+      010021C6H   LINE      ---      ---       #151
+      010021C6H   LINE      ---      ---       #152
+      010021C8H   LINE      ---      ---       #153
+      010021D8H   LINE      ---      ---       #154
+      010021D8H   LINE      ---      ---       #157
+      010021E0H   LINE      ---      ---       #158
+      010021E3H   LINE      ---      ---       #159
+      010021E8H   LINE      ---      ---       #160
+      010021F8H   LINE      ---      ---       #161
+      01002204H   LINE      ---      ---       #162
+      01002204H   LINE      ---      ---       #163
+      0100220EH   LINE      ---      ---       #164
+      01002218H   LINE      ---      ---       #165
+      01002218H   LINE      ---      ---       #166
+      0100221BH   LINE      ---      ---       #167
+      0100221BH   LINE      ---      ---       #168
+      0100221BH   LINE      ---      ---       #169
+      0100221DH   LINE      ---      ---       #170
+      0100221FH   LINE      ---      ---       #171
+      0100221FH   LINE      ---      ---       #174
+      0100221FH   LINE      ---      ---       #175
+      0100221FH   LINE      ---      ---       #176
+      01002231H   LINE      ---      ---       #177
+      01002231H   LINE      ---      ---       #178
+      01002246H   LINE      ---      ---       #179
+      0100224BH   LINE      ---      ---       #180
+      01002252H   LINE      ---      ---       #181
+      01002263H   LINE      ---      ---       #182
+      0100226AH   LINE      ---      ---       #183
+      0100226AH   LINE      ---      ---       #184
+      0100226AH   LINE      ---      ---       #185
+      0100226AH   LINE      ---      ---       #186
+      01002272H   LINE      ---      ---       #187
+      01002272H   LINE      ---      ---       #190
+      01002272H   LINE      ---      ---       #191
+      01002272H   LINE      ---      ---       #192
+      01002278H   LINE      ---      ---       #193
+      0100227BH   LINE      ---      ---       #194
+      0100227EH   LINE      ---      ---       #195
+      01002283H   LINE      ---      ---       #196
+      01002287H   LINE      ---      ---       #197
+      0100228DH   LINE      ---      ---       #198
+      01002291H   LINE      ---      ---       #199
+      01002297H   LINE      ---      ---       #200
+      0100229DH   LINE      ---      ---       #202
+      010022A5H   LINE      ---      ---       #203
+      010022A5H   LINE      ---      ---       #204
+      010022A9H   LINE      ---      ---       #205
+      010022ADH   LINE      ---      ---       #206
+      010022B1H   LINE      ---      ---       #207
+      010022B7H   LINE      ---      ---       #208
+      010022D0H   LINE      ---      ---       #210
+      010022D0H   LINE      ---      ---       #211
+      010022D6H   LINE      ---      ---       #212
+      010022D9H   LINE      ---      ---       #213
+      010022D9H   LINE      ---      ---       #214
+      010022D9H   LINE      ---      ---       #216
+      010022D9H   LINE      ---      ---       #217
+      010022E1H   LINE      ---      ---       #219
+      010022E1H   LINE      ---      ---       #220
+      010022E2H   LINE      ---      ---       #222
+      010022E2H   LINE      ---      ---       #223
+      010022E7H   LINE      ---      ---       #224
+      010022E9H   LINE      ---      ---       #225
+      010022EFH   LINE      ---      ---       #226
+      010022F4H   LINE      ---      ---       #228
+      010022FAH   LINE      ---      ---       #229
+      010022FAH   LINE      ---      ---       #230
+      010022FDH   LINE      ---      ---       #231
+      01002305H   LINE      ---      ---       #232
+      01002305H   LINE      ---      ---       #233
+      01002305H   LINE      ---      ---       #235
+      0100230CH   LINE      ---      ---       #236
+      0100230CH   LINE      ---      ---       #237
+      0100230EH   LINE      ---      ---       #238
+      01002311H   LINE      ---      ---       #239
+      01002311H   LINE      ---      ---       #240
+      01002311H   LINE      ---      ---       #241
+      01002319H   LINE      ---      ---       #242
+      01002319H   LINE      ---      ---       #243
+      01002321H   LINE      ---      ---       #244
+      01002321H   LINE      ---      ---       #245
+      01002321H   LINE      ---      ---       #250
+      01002321H   LINE      ---      ---       #251
+      01002327H   LINE      ---      ---       #252
+      0100232BH   LINE      ---      ---       #253
+      01002330H   LINE      ---      ---       #254
+      01002332H   LINE      ---      ---       #255
+      0100233CH   LINE      ---      ---       #256
+      0100233CH   LINE      ---      ---       #257
+      01002342H   LINE      ---      ---       #258
+      01002342H   LINE      ---      ---       #259
+      01002343H   LINE      ---      ---       #260
+      01002343H   LINE      ---      ---       #261
+      01002349H   LINE      ---      ---       #262
+      0100234CH   LINE      ---      ---       #263
+      01002351H   LINE      ---      ---       #264
+      01002356H   LINE      ---      ---       #265
+      0100235DH   LINE      ---      ---       #266
+      01002365H   LINE      ---      ---       #282
+      0100236CH   LINE      ---      ---       #284
+      0100236FH   LINE      ---      ---       #285
+      01002374H   LINE      ---      ---       #286
+      01002378H   LINE      ---      ---       #287
+      0100237EH   LINE      ---      ---       #288
+      01002383H   LINE      ---      ---       #290
+      0100239DH   LINE      ---      ---       #292
+      010023A2H   LINE      ---      ---       #293
+      010023A2H   LINE      ---      ---       #294
+      010023A2H   LINE      ---      ---       #295
+      010023A8H   LINE      ---      ---       #296
+      010023A8H   LINE      ---      ---       #297
+      010023ADH   LINE      ---      ---       #300
+      010023C5H   LINE      ---      ---       #301
+      010023C7H   LINE      ---      ---       #302
+      010023CDH   LINE      ---      ---       #304
+      010023D2H   LINE      ---      ---       #305
+      010023D2H   LINE      ---      ---       #306
+      010023D8H   LINE      ---      ---       #307
+      010023DEH   LINE      ---      ---       #308
+      010023E6H   LINE      ---      ---       #309
+      010023E9H   LINE      ---      ---       #310
+      010023E9H   LINE      ---      ---       #311
+      010023E9H   LINE      ---      ---       #312
+      010023EEH   LINE      ---      ---       #313
+      010023F3H   LINE      ---      ---       #314
+      010023F3H   LINE      ---      ---       #315
+      010023F3H   LINE      ---      ---       #316
+      010023F8H   LINE      ---      ---       #317
+      010023FDH   LINE      ---      ---       #318
+      01002402H   LINE      ---      ---       #319
+      0100240AH   LINE      ---      ---       #320
+      0100240AH   LINE      ---      ---       #321
+      01002410H   LINE      ---      ---       #322
+      01002416H   LINE      ---      ---       #323
+      0100241AH   LINE      ---      ---       #325
+      0100241AH   LINE      ---      ---       #326
+      0100241FH   LINE      ---      ---       #327
+      01002425H   LINE      ---      ---       #328
+      0100242AH   LINE      ---      ---       #329
+      0100242BH   LINE      ---      ---       #330
+      0100242BH   LINE      ---      ---       #331
+      0100242BH   LINE      ---      ---       #332
+      01002432H   LINE      ---      ---       #333
+      01002432H   LINE      ---      ---       #334
+      01002437H   LINE      ---      ---       #335
+      0100243AH   LINE      ---      ---       #337
+      0100243AH   LINE      ---      ---       #338
+      0100243AH   LINE      ---      ---       #339
+      01002442H   LINE      ---      ---       #340
+      01002447H   LINE      ---      ---       #341
+      01002449H   LINE      ---      ---       #342
+      0100244EH   LINE      ---      ---       #343
+      01002453H   LINE      ---      ---       #344
+      0100245BH   LINE      ---      ---       #345
+      0100245BH   LINE      ---      ---       #346
+      01002469H   LINE      ---      ---       #347
+      01002469H   LINE      ---      ---       #348
+      0100247EH   LINE      ---      ---       #349
+      01002483H   LINE      ---      ---       #350
+      0100248AH   LINE      ---      ---       #351
+      0100249BH   LINE      ---      ---       #352
+      010024A2H   LINE      ---      ---       #353
+      010024A2H   LINE      ---      ---       #354
+      010024A7H   LINE      ---      ---       #355
+      010024A7H   LINE      ---      ---       #357
+      010024AEH   LINE      ---      ---       #358
+      010024AEH   LINE      ---      ---       #359
+      010024B0H   LINE      ---      ---       #360
+      010024B3H   LINE      ---      ---       #361
+      010024B3H   LINE      ---      ---       #362
+      010024B3H   LINE      ---      ---       #364
+      010024B9H   LINE      ---      ---       #365
+      010024B9H   LINE      ---      ---       #366
+      010024BDH   LINE      ---      ---       #367
+      010024BDH   LINE      ---      ---       #368
+      010024BDH   LINE      ---      ---       #370
+      010024C3H   LINE      ---      ---       #371
+      010024C3H   LINE      ---      ---       #372
+      010024CBH   LINE      ---      ---       #373
+      010024CBH   LINE      ---      ---       #374
+      010024CBH   LINE      ---      ---       #376
+      010024D5H   LINE      ---      ---       #377
+      010024D5H   LINE      ---      ---       #379
+      010024D5H   LINE      ---      ---       #382
+      010024DFH   LINE      ---      ---       #383
+      010024DFH   LINE      ---      ---       #384
+      010024DFH   LINE      ---      ---       #385
+      010024DFH   LINE      ---      ---       #387
+      010024E7H   LINE      ---      ---       #388
+      010024E7H   LINE      ---      ---       #389
+      010024ECH   LINE      ---      ---       #390
+      010024EEH   LINE      ---      ---       #392
+      010024EEH   LINE      ---      ---       #393
+      010024F1H   LINE      ---      ---       #394
+      010024F1H   LINE      ---      ---       #395
+      010024F8H   LINE      ---      ---       #396
+      010024F9H   LINE      ---      ---       #399
+      010024F9H   LINE      ---      ---       #400
+      010024FFH   LINE      ---      ---       #401
+      01002503H   LINE      ---      ---       #402
+      01002506H   LINE      ---      ---       #403
+      01002508H   LINE      ---      ---       #404
+      0100250DH   LINE      ---      ---       #405
+      01002512H   LINE      ---      ---       #406
+      01002519H   LINE      ---      ---       #407
+      0100251FH   LINE      ---      ---       #408
+      0100251FH   LINE      ---      ---       #409
+      01002524H   LINE      ---      ---       #411
+      0100253CH   LINE      ---      ---       #412
+      01002554H   LINE      ---      ---       #413
+      01002554H   LINE      ---      ---       #414
+      0100255AH   LINE      ---      ---       #415
+      01002560H   LINE      ---      ---       #416
+      01002566H   LINE      ---      ---       #417
+      01002569H   LINE      ---      ---       #418
+      0100256EH   LINE      ---      ---       #419
+      01002574H   LINE      ---      ---       #420
+      01002575H   LINE      ---      ---       #421
+      01002575H   LINE      ---      ---       #422
+      0100257BH   LINE      ---      ---       #423
+      0100257EH   LINE      ---      ---       #424
+      01002581H   LINE      ---      ---       #425
+      01002586H   LINE      ---      ---       #426
+      0100258CH   LINE      ---      ---       #427
+      01002594H   LINE      ---      ---       #428
+      0100259AH   LINE      ---      ---       #429
+      0100259BH   LINE      ---      ---       #430
+      0100259BH   LINE      ---      ---       #431
+      010025A6H   LINE      ---      ---       #432
+      010025AEH   LINE      ---      ---       #433
+      010025B4H   LINE      ---      ---       #434
+      010025B5H   LINE      ---      ---       #436
+      010025B5H   LINE      ---      ---       #437
+      010025BFH   LINE      ---      ---       #438
+      010025C4H   LINE      ---      ---       #439
+      010025C9H   LINE      ---      ---       #440
+      010025CEH   LINE      ---      ---       #441
+      010025D3H   LINE      ---      ---       #442
+      010025D4H   LINE      ---      ---       #444
+      010025D4H   LINE      ---      ---       #445
+      010025DCH   LINE      ---      ---       #446
+      010025E1H   LINE      ---      ---       #447
+      010025E3H   LINE      ---      ---       #448
+      010025E8H   LINE      ---      ---       #449
+      010025EDH   LINE      ---      ---       #450
+      010025F4H   LINE      ---      ---       #451
+      010025F4H   LINE      ---      ---       #452
+      010025F6H   LINE      ---      ---       #453
+      010025F9H   LINE      ---      ---       #454
+      010025F9H   LINE      ---      ---       #455
+      010025F9H   LINE      ---      ---       #457
+      010025FFH   LINE      ---      ---       #458
+      010025FFH   LINE      ---      ---       #459
+      01002603H   LINE      ---      ---       #460
+      01002603H   LINE      ---      ---       #461
+      01002603H   LINE      ---      ---       #464
+      01002609H   LINE      ---      ---       #465
+      01002609H   LINE      ---      ---       #466
+      01002611H   LINE      ---      ---       #467
+      01002611H   LINE      ---      ---       #468
+      01002611H   LINE      ---      ---       #470
+      01002614H   LINE      ---      ---       #471
+      0100261BH   LINE      ---      ---       #472
+      0100261BH   LINE      ---      ---       #473
+      0100261BH   LINE      ---      ---       #474
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003252H   BLOCK     CODE     ---       LVL=0
+      01003252H   LINE      ---      ---       #477
+      01003252H   LINE      ---      ---       #478
+      01003252H   LINE      ---      ---       #479
+      0100325AH   LINE      ---      ---       #481
+      01003260H   LINE      ---      ---       #482
+      01003260H   LINE      ---      ---       #483
+      01003268H   LINE      ---      ---       #484
+      01003268H   LINE      ---      ---       #485
+      0100326FH   LINE      ---      ---       #486
+      01003273H   LINE      ---      ---       #487
+      0100327AH   LINE      ---      ---       #488
+      0100327EH   LINE      ---      ---       #489
+      01003286H   LINE      ---      ---       #490
+      01003286H   LINE      ---      ---       #491
+      0100328AH   LINE      ---      ---       #493
+      0100328AH   LINE      ---      ---       #494
+      0100328AH   LINE      ---      ---       #496
+      0100328AH   LINE      ---      ---       #497
+      01003291H   LINE      ---      ---       #498
+      01003298H   LINE      ---      ---       #500
+      01003298H   LINE      ---      ---       #501
+      01003298H   LINE      ---      ---       #502
+      0100329EH   LINE      ---      ---       #503
+      0100329EH   LINE      ---      ---       #504
+      010032A2H   LINE      ---      ---       #506
+      010032A2H   LINE      ---      ---       #508
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010019F7H   BLOCK     CODE     ---       LVL=0
+      010019F7H   LINE      ---      ---       #510
+      010019F7H   LINE      ---      ---       #511
+      010019F7H   LINE      ---      ---       #513
+      010019FDH   LINE      ---      ---       #514
+      010019FDH   LINE      ---      ---       #515
+      01001A00H   LINE      ---      ---       #516
+      01001A03H   LINE      ---      ---       #517
+      01001A03H   LINE      ---      ---       #518
+      01001A08H   LINE      ---      ---       #519
+      01001A0CH   LINE      ---      ---       #520
+      01001A0CH   LINE      ---      ---       #521
+      01001A0CH   LINE      ---      ---       #524
+      01001A1CH   LINE      ---      ---       #526
+      01001A1CH   LINE      ---      ---       #527
+      01001A2AH   LINE      ---      ---       #528
+      01001A2AH   LINE      ---      ---       #529
+      01001A40H   LINE      ---      ---       #530
+      01001A40H   LINE      ---      ---       #531
+      01001A45H   LINE      ---      ---       #532
+      01001A4BH   LINE      ---      ---       #533
+      01001A53H   LINE      ---      ---       #534
+      01001A5DH   LINE      ---      ---       #535
+      01001A5DH   LINE      ---      ---       #536
+      01001A5DH   LINE      ---      ---       #537
+      01001A6DH   LINE      ---      ---       #538
+      01001A6DH   LINE      ---      ---       #539
+      01001A70H   LINE      ---      ---       #540
+      01001A76H   LINE      ---      ---       #541
+      01001A76H   LINE      ---      ---       #542
+      01001A77H   LINE      ---      ---       #543
+      01001A7FH   LINE      ---      ---       #544
+      01001A7FH   LINE      ---      ---       #546
+      01001A89H   LINE      ---      ---       #547
+      01001A89H   LINE      ---      ---       #548
+      01001A94H   LINE      ---      ---       #550
+      01001A99H   LINE      ---      ---       #551
+      01001A9EH   LINE      ---      ---       #552
+      01001AA7H   LINE      ---      ---       #553
+      01001AA7H   LINE      ---      ---       #555
+      01001AB6H   LINE      ---      ---       #556
+      01001AB6H   LINE      ---      ---       #557
+      01001AB8H   LINE      ---      ---       #558
+      01001AB8H   LINE      ---      ---       #559
+      01001AB8H   LINE      ---      ---       #560
+      01001ABFH   LINE      ---      ---       #561
+      01001ABFH   LINE      ---      ---       #562
+      01001ACEH   LINE      ---      ---       #563
+      01001ACEH   LINE      ---      ---       #564
+      01001AD0H   LINE      ---      ---       #565
+      01001AD0H   LINE      ---      ---       #566
+      01001AD0H   LINE      ---      ---       #568
+      01001AD0H   LINE      ---      ---       #569
+      01001ADFH   LINE      ---      ---       #570
+      01001ADFH   LINE      ---      ---       #571
+      01001AE5H   LINE      ---      ---       #572
+      01001AE5H   LINE      ---      ---       #573
+      01001AE7H   LINE      ---      ---       #574
+      01001AECH   LINE      ---      ---       #575
+      01001AECH   LINE      ---      ---       #576
+      01001AEFH   LINE      ---      ---       #577
+      01001AEFH   LINE      ---      ---       #578
+      01001AEFH   LINE      ---      ---       #579
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010035DBH   BLOCK     CODE     ---       LVL=0
+      010035DBH   LINE      ---      ---       #582
+      010035DBH   LINE      ---      ---       #583
+      010035DBH   LINE      ---      ---       #585
+      010035E1H   LINE      ---      ---       #586
+      010035E1H   LINE      ---      ---       #587
+      010035E4H   LINE      ---      ---       #588
+      010035E7H   LINE      ---      ---       #589
+      010035E7H   LINE      ---      ---       #590
+      01003603H   LINE      ---      ---       #598
+      01003603H   LINE      ---      ---       #599
+      01003608H   LINE      ---      ---       #601
+      0100360DH   LINE      ---      ---       #602
+      01003613H   LINE      ---      ---       #603
+      01003618H   LINE      ---      ---       #604
+      0100361CH   LINE      ---      ---       #605
+      01003620H   LINE      ---      ---       #612
+      01003623H   LINE      ---      ---       #613
+      01003628H   LINE      ---      ---       #615
+      0100362DH   LINE      ---      ---       #616
+      0100362DH   LINE      ---      ---       #617
+      0100362DH   LINE      ---      ---       #618
+      0100362DH   LINE      ---      ---       #620
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100362EH   BLOCK     CODE     ---       LVL=0
+      0100362EH   LINE      ---      ---       #623
+      0100362EH   LINE      ---      ---       #624
+      0100362EH   LINE      ---      ---       #626
+      01003634H   LINE      ---      ---       #627
+      01003634H   LINE      ---      ---       #628
+      0100363BH   LINE      ---      ---       #629
+      0100363FH   LINE      ---      ---       #630
+      01003645H   LINE      ---      ---       #631
+      01003648H   LINE      ---      ---       #632
+      01003648H   LINE      ---      ---       #633
+      01003650H   LINE      ---      ---       #634
+      01003654H   LINE      ---      ---       #636
+      01003659H   LINE      ---      ---       #637
+      0100365CH   LINE      ---      ---       #638
+      0100365CH   LINE      ---      ---       #639
+      0100365CH   LINE      ---      ---       #641
+      01003662H   LINE      ---      ---       #642
+      01003662H   LINE      ---      ---       #643
+      01003669H   LINE      ---      ---       #644
+      0100366FH   LINE      ---      ---       #645
+      01003672H   LINE      ---      ---       #646
+      01003672H   LINE      ---      ---       #648
+      01003677H   LINE      ---      ---       #649
+      0100367AH   LINE      ---      ---       #650
+      0100367AH   LINE      ---      ---       #651
+      0100367AH   LINE      ---      ---       #652
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000C3FH   BLOCK     CODE     ---       LVL=0
+      01000C3FH   LINE      ---      ---       #654
+      01000C3FH   LINE      ---      ---       #655
+      01000C3FH   LINE      ---      ---       #672
+      01000C46H   LINE      ---      ---       #673
+      01000C46H   LINE      ---      ---       #674
+      01000C4FH   LINE      ---      ---       #675
+      01000C52H   LINE      ---      ---       #676
+      01000C5AH   LINE      ---      ---       #677
+      01000C5AH   LINE      ---      ---       #678
+      01000C60H   LINE      ---      ---       #679
+      01000C66H   LINE      ---      ---       #680
+      01000C66H   LINE      ---      ---       #681
+      01000C6BH   LINE      ---      ---       #682
+      01000C6DH   LINE      ---      ---       #683
+      01000C74H   LINE      ---      ---       #684
+      01000C74H   LINE      ---      ---       #685
+      01000C7AH   LINE      ---      ---       #686
+      01000C7FH   LINE      ---      ---       #687
+      01000C81H   LINE      ---      ---       #688
+      01000C81H   LINE      ---      ---       #689
+      01000C81H   LINE      ---      ---       #690
+      01000C83H   LINE      ---      ---       #692
+      01000C83H   LINE      ---      ---       #693
+      01000C88H   LINE      ---      ---       #694
+      01000C8CH   LINE      ---      ---       #695
+      01000C90H   LINE      ---      ---       #696
+      01000C90H   LINE      ---      ---       #698
+      01000C97H   LINE      ---      ---       #699
+      01000C97H   LINE      ---      ---       #700
+      01000C9DH   LINE      ---      ---       #701
+      01000CA6H   LINE      ---      ---       #702
+      01000CA9H   LINE      ---      ---       #703
+      01000CB1H   LINE      ---      ---       #704
+      01000CB1H   LINE      ---      ---       #705
+      01000CBCH   LINE      ---      ---       #706
+      01000CBCH   LINE      ---      ---       #707
+      01000CC1H   LINE      ---      ---       #708
+      01000CC3H   LINE      ---      ---       #709
+      01000CC5H   LINE      ---      ---       #710
+      01000CC9H   LINE      ---      ---       #711
+      01000CCDH   LINE      ---      ---       #712
+      01000CCDH   LINE      ---      ---       #713
+      01000CCDH   LINE      ---      ---       #714
+      01000CCFH   LINE      ---      ---       #716
+      01000CCFH   LINE      ---      ---       #717
+      01000CD5H   LINE      ---      ---       #718
+      01000CD5H   LINE      ---      ---       #719
+      01000CD7H   LINE      ---      ---       #720
+      01000CDBH   LINE      ---      ---       #721
+      01000CE1H   LINE      ---      ---       #722
+      01000CE9H   LINE      ---      ---       #723
+      01000CEFH   LINE      ---      ---       #724
+      01000CF1H   LINE      ---      ---       #725
+      01000CF3H   LINE      ---      ---       #726
+      01000CF3H   LINE      ---      ---       #727
+      01000CF8H   LINE      ---      ---       #728
+      01000CF8H   LINE      ---      ---       #731
+      01000CFFH   LINE      ---      ---       #732
+      01000CFFH   LINE      ---      ---       #733
+      01000D05H   LINE      ---      ---       #734
+      01000D0EH   LINE      ---      ---       #735
+      01000D11H   LINE      ---      ---       #736
+      01000D19H   LINE      ---      ---       #737
+      01000D19H   LINE      ---      ---       #739
+      01000D1FH   LINE      ---      ---       #740
+      01000D24H   LINE      ---      ---       #741
+      01000D28H   LINE      ---      ---       #742
+      01000D2AH   LINE      ---      ---       #743
+      01000D2FH   LINE      ---      ---       #744
+      01000D34H   LINE      ---      ---       #745
+      01000D3CH   LINE      ---      ---       #746
+      01000D44H   LINE      ---      ---       #747
+      01000D44H   LINE      ---      ---       #748
+      01000D45H   LINE      ---      ---       #750
+      01000D45H   LINE      ---      ---       #751
+      01000D4BH   LINE      ---      ---       #752
+      01000D4BH   LINE      ---      ---       #753
+      01000D4DH   LINE      ---      ---       #755
+      01000D59H   LINE      ---      ---       #756
+      01000D59H   LINE      ---      ---       #757
+      01000D5FH   LINE      ---      ---       #758
+      01000D61H   LINE      ---      ---       #759
+      01000D69H   LINE      ---      ---       #760
+      01000D6FH   LINE      ---      ---       #762
+      01000D71H   LINE      ---      ---       #763
+      01000D73H   LINE      ---      ---       #764
+      01000D75H   LINE      ---      ---       #765
+      01000D75H   LINE      ---      ---       #766
+      01000D75H   LINE      ---      ---       #767
+      01000D7AH   LINE      ---      ---       #768
+      01000D7AH   LINE      ---      ---       #808
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003466H   BLOCK     CODE     ---       LVL=0
+      01003466H   LINE      ---      ---       #813
+      01003466H   LINE      ---      ---       #814
+      01003466H   LINE      ---      ---       #815
+      0100347DH   LINE      ---      ---       #817
+      0100347DH   LINE      ---      ---       #818
+      01003483H   LINE      ---      ---       #819
+      01003487H   LINE      ---      ---       #820
+      01003487H   LINE      ---      ---       #822
+      0100348AH   LINE      ---      ---       #823
+      0100348AH   LINE      ---      ---       #824
+      01003491H   LINE      ---      ---       #825
+      01003491H   LINE      ---      ---       #826
+      01003493H   LINE      ---      ---       #827
+      01003497H   LINE      ---      ---       #828
+      01003499H   LINE      ---      ---       #831
+      01003499H   LINE      ---      ---       #832
+      01003499H   LINE      ---      ---       #833
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F7DH   BLOCK     CODE     ---       LVL=0
+      01001F7DH   LINE      ---      ---       #836
+      01001F7DH   LINE      ---      ---       #837
+      01001F7DH   LINE      ---      ---       #838
+      01001F80H   LINE      ---      ---       #840
+      01001F8EH   LINE      ---      ---       #845
+      01001F90H   LINE      ---      ---       #846
+      01001F92H   LINE      ---      ---       #847
+      01001F95H   LINE      ---      ---       #848
+      01001F98H   LINE      ---      ---       #849
+      01001F9BH   LINE      ---      ---       #852
+      01001FAAH   LINE      ---      ---       #854
+      01001FAAH   LINE      ---      ---       #855
+      01001FB1H   LINE      ---      ---       #856
+      01001FB1H   LINE      ---      ---       #859
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100349AH   BLOCK     CODE     ---       LVL=0
+      0100349AH   LINE      ---      ---       #862
+      0100349AH   LINE      ---      ---       #863
+      0100349AH   LINE      ---      ---       #865
+      010034A0H   LINE      ---      ---       #866
+      010034A0H   LINE      ---      ---       #867
+      010034A2H   LINE      ---      ---       #868
+      010034A2H   LINE      ---      ---       #870
+      010034A8H   LINE      ---      ---       #871
+      010034AAH   LINE      ---      ---       #873
+      010034B0H   LINE      ---      ---       #874
+      010034B0H   LINE      ---      ---       #875
+      010034B2H   LINE      ---      ---       #876
+      010034B5H   LINE      ---      ---       #877
+      010034BBH   LINE      ---      ---       #878
+      010034BBH   LINE      ---      ---       #880
+      010034C1H   LINE      ---      ---       #881
+      010034C1H   LINE      ---      ---       #882
+      010034CDH   LINE      ---      ---       #883
+      010034CDH   LINE      ---      ---       #884
+      010034D3H   LINE      ---      ---       #886
+      010034D3H   LINE      ---      ---       #888
+      010034D9H   LINE      ---      ---       #889
+      010034DCH   LINE      ---      ---       #890
+      010034E2H   LINE      ---      ---       #891
+      010034E2H   LINE      ---      ---       #892
+      010034E4H   LINE      ---      ---       #893
+      010034EBH   LINE      ---      ---       #894
+      010034EBH   LINE      ---      ---       #895
+      010034EDH   LINE      ---      ---       #896
+      010034F9H   LINE      ---      ---       #897
+      010034F9H   LINE      ---      ---       #898
+      010034FFH   LINE      ---      ---       #899
+      010034FFH   LINE      ---      ---       #900
+      01003501H   LINE      ---      ---       #901
+      01003508H   LINE      ---      ---       #902
+      01003508H   LINE      ---      ---       #903
+      0100350DH   LINE      ---      ---       #904
+      01003511H   LINE      ---      ---       #905
+      01003511H   LINE      ---      ---       #906
+      01003518H   LINE      ---      ---       #907
+      0100351AH   LINE      ---      ---       #909
+      0100351AH   LINE      ---      ---       #910
+      01003521H   LINE      ---      ---       #911
+      01003521H   LINE      ---      ---       #912
+      01003523H   LINE      ---      ---       #914
+      01003523H   LINE      ---      ---       #915
+      01003529H   LINE      ---      ---       #916
+      01003530H   LINE      ---      ---       #917
+      01003530H   LINE      ---      ---       #918
+      01003536H   LINE      ---      ---       #919
+      01003539H   LINE      ---      ---       #920
+      01003539H   LINE      ---      ---       #921
+      01003539H   LINE      ---      ---       #924
+      0100353FH   LINE      ---      ---       #925
+      0100353FH   LINE      ---      ---       #926
+      01003547H   LINE      ---      ---       #927
+      01003547H   LINE      ---      ---       #928
+      0100354DH   LINE      ---      ---       #929
+      01003551H   LINE      ---      ---       #931
+      01003557H   LINE      ---      ---       #932
+      01003557H   LINE      ---      ---       #933
+      01003562H   LINE      ---      ---       #934
+      01003564H   LINE      ---      ---       #935
+      0100356AH   LINE      ---      ---       #936
+      0100356AH   LINE      ---      ---       #938
+      01003575H   LINE      ---      ---       #939
+      01003575H   LINE      ---      ---       #940
+      01003575H   LINE      ---      ---       #941
+      01003575H   LINE      ---      ---       #944
+      0100357BH   LINE      ---      ---       #945
+      0100357BH   LINE      ---      ---       #946
+      0100357EH   LINE      ---      ---       #947
+      01003581H   LINE      ---      ---       #948
+      01003581H   LINE      ---      ---       #949
+      01003584H   LINE      ---      ---       #950
+      01003584H   LINE      ---      ---       #951
+      01003584H   LINE      ---      ---       #954
+      0100358AH   LINE      ---      ---       #955
+      0100358AH   LINE      ---      ---       #956
+      0100358DH   LINE      ---      ---       #957
+      01003590H   LINE      ---      ---       #958
+      01003590H   LINE      ---      ---       #959
+      01003596H   LINE      ---      ---       #960
+      01003596H   LINE      ---      ---       #961
+      0100359BH   LINE      ---      ---       #962
+      0100359BH   LINE      ---      ---       #963
+      0100359BH   LINE      ---      ---       #964
+      0100359BH   LINE      ---      ---       #966
+      010035A1H   LINE      ---      ---       #967
+      010035A1H   LINE      ---      ---       #968
+      010035A4H   LINE      ---      ---       #969
+      010035A7H   LINE      ---      ---       #970
+      010035A7H   LINE      ---      ---       #971
+      010035ADH   LINE      ---      ---       #972
+      010035ADH   LINE      ---      ---       #973
+      010035AFH   LINE      ---      ---       #974
+      010035AFH   LINE      ---      ---       #976
+      010035B6H   LINE      ---      ---       #977
+      010035B6H   LINE      ---      ---       #978
+      010035BCH   LINE      ---      ---       #979
+      010035BDH   LINE      ---      ---       #980
+      010035C4H   LINE      ---      ---       #981
+      010035C4H   LINE      ---      ---       #982
+      010035CAH   LINE      ---      ---       #983
+      010035CAH   LINE      ---      ---       #984
+      010035CAH   LINE      ---      ---       #985
+      010035CAH   LINE      ---      ---       #986
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100367BH   BLOCK     CODE     ---       LVL=0
+      0100367BH   LINE      ---      ---       #1000
+      0100367BH   LINE      ---      ---       #1001
+      0100367BH   LINE      ---      ---       #1002
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F30H   BLOCK     CODE     ---       LVL=0
+      01000F30H   LINE      ---      ---       #1010
+      01000F30H   LINE      ---      ---       #1011
+      01000F30H   LINE      ---      ---       #1012
+      01000F33H   LINE      ---      ---       #1013
+      01000F33H   LINE      ---      ---       #1014
+      01000F36H   LINE      ---      ---       #1015
+      01000F39H   LINE      ---      ---       #1016
+      01000F3BH   LINE      ---      ---       #1017
+      01000F3DH   LINE      ---      ---       #1020
+      01000F43H   LINE      ---      ---       #1021
+      01000F43H   LINE      ---      ---       #1022
+      01000F46H   LINE      ---      ---       #1023
+      01000F46H   LINE      ---      ---       #1025
+      01000F51H   LINE      ---      ---       #1026
+      01000F51H   LINE      ---      ---       #1027
+      01000F54H   LINE      ---      ---       #1029
+      01000F56H   LINE      ---      ---       #1030
+      01000F58H   LINE      ---      ---       #1031
+      01000F5AH   LINE      ---      ---       #1032
+      01000F5AH   LINE      ---      ---       #1034
+      01000F5AH   LINE      ---      ---       #1035
+      01000F7EH   LINE      ---      ---       #1037
+      01000F7EH   LINE      ---      ---       #1038
+      01000F81H   LINE      ---      ---       #1039
+      01000F83H   LINE      ---      ---       #1040
+      01000F83H   LINE      ---      ---       #1042
+      01000F83H   LINE      ---      ---       #1043
+      01000F86H   LINE      ---      ---       #1044
+      01000F8CH   LINE      ---      ---       #1045
+      01000F8EH   LINE      ---      ---       #1046
+      01000F90H   LINE      ---      ---       #1047
+      01000F92H   LINE      ---      ---       #1048
+      01000F92H   LINE      ---      ---       #1049
+      01000F92H   LINE      ---      ---       #1050
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       ADC
+      01001FB2H   PUBLIC    CODE     ---       YC_adc_check_timer500ms
+      0100375AH   PUBLIC    CODE     ---       YC_adc_check
+      0100368EH   PUBLIC    CODE     ---       YC_adc_init
+
+      0100368EH   BLOCK     CODE     ---       LVL=0
+      0100368EH   LINE      ---      ---       #3
+      0100368EH   LINE      ---      ---       #4
+      0100368EH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100368EH   LINE      ---      ---       #8
+      01003694H   LINE      ---      ---       #9
+      01003697H   LINE      ---      ---       #21
+      01003698H   LINE      ---      ---       #22
+      01003698H   LINE      ---      ---       #23
+      010036A9H   LINE      ---      ---       #24
+      010036AEH   LINE      ---      ---       #25
+      010036BDH   LINE      ---      ---       #26
+      0100370BH   LINE      ---      ---       #27
+      01003759H   LINE      ---      ---       #42
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100375AH   BLOCK     CODE     ---       LVL=0
+      0100375AH   LINE      ---      ---       #44
+      0100375AH   LINE      ---      ---       #45
+      0100375AH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100375AH   LINE      ---      ---       #48
+      01003764H   LINE      ---      ---       #50
+      0100377CH   LINE      ---      ---       #53
+      0100379CH   LINE      ---      ---       #54
+      010037A5H   LINE      ---      ---       #55
+      010037A7H   LINE      ---      ---       #56
+      010037ACH   LINE      ---      ---       #57
+      010037ACH   LINE      ---      ---       #58
+      010037E3H   LINE      ---      ---       #59
+      010037EDH   LINE      ---      ---       #60
+      0100380AH   LINE      ---      ---       #62
+      01003829H   LINE      ---      ---       #63
+      01003830H   LINE      ---      ---       #64
+      0100384FH   LINE      ---      ---       #65
+      01003857H   LINE      ---      ---       #67
+      010038B2H   LINE      ---      ---       #69
+      010038D1H   LINE      ---      ---       #70
+      010038D1H   LINE      ---      ---       #71
+      010038D7H   LINE      ---      ---       #72
+      010038E1H   LINE      ---      ---       #73
+      010038E1H   LINE      ---      ---       #74
+      010038E7H   LINE      ---      ---       #75
+      010038F6H   LINE      ---      ---       #76
+      010038F6H   LINE      ---      ---       #77
+      010038F8H   LINE      ---      ---       #79
+      010038F8H   LINE      ---      ---       #80
+      01003907H   LINE      ---      ---       #81
+      01003907H   LINE      ---      ---       #82
+      0100390CH   LINE      ---      ---       #83
+      0100391CH   LINE      ---      ---       #84
+      0100391CH   LINE      ---      ---       #86
+      0100393BH   LINE      ---      ---       #87
+      0100393BH   LINE      ---      ---       #88
+      01003941H   LINE      ---      ---       #89
+      01003947H   LINE      ---      ---       #90
+      01003947H   LINE      ---      ---       #91
+      0100394BH   LINE      ---      ---       #92
+      0100394FH   LINE      ---      ---       #93
+      01003953H   LINE      ---      ---       #94
+      01003956H   LINE      ---      ---       #95
+      01003956H   LINE      ---      ---       #96
+      01003958H   LINE      ---      ---       #98
+      01003958H   LINE      ---      ---       #99
+      0100395DH   LINE      ---      ---       #100
+      01003963H   LINE      ---      ---       #101
+      01003963H   LINE      ---      ---       #102
+      01003967H   LINE      ---      ---       #103
+      0100396BH   LINE      ---      ---       #104
+      0100396FH   LINE      ---      ---       #105
+      01003972H   LINE      ---      ---       #106
+      01003972H   LINE      ---      ---       #107
+      01003972H   LINE      ---      ---       #108
+      01003972H   LINE      ---      ---       #110
+      0100397AH   LINE      ---      ---       #112
+      02004EF0H   SYMBOL    XDATA    VOID      i
+      02004EF1H   SYMBOL    XDATA    VOID      batValue
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001FB2H   BLOCK     CODE     ---       LVL=0
+      01001FB2H   LINE      ---      ---       #115
+      01001FB2H   LINE      ---      ---       #116
+      01001FB2H   LINE      ---      ---       #119
+      01001FB8H   LINE      ---      ---       #120
+      01001FB8H   LINE      ---      ---       #121
+      01001FBAH   LINE      ---      ---       #122
+      01001FBDH   LINE      ---      ---       #123
+      01001FBDH   LINE      ---      ---       #124
+      01001FC0H   LINE      ---      ---       #125
+      01001FC3H   LINE      ---      ---       #126
+      01001FC3H   LINE      ---      ---       #127
+      01001FC3H   LINE      ---      ---       #129
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       RAM
+      0100397BH   PUBLIC    CODE     ---       main
+
+      0100397BH   BLOCK     CODE     ---       LVL=0
+      0100397BH   LINE      ---      ---       #5
+      0100397BH   LINE      ---      ---       #6
+      0100397BH   LINE      ---      ---       #7
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       IPC
+      02004BA5H   PUBLIC    XDATA    WORD      bttimer
+      02004C8DH   PUBLIC    XDATA    BYTE      btstimer
+      02004C5EH   PUBLIC    XDATA    WORD      c51timer
+      02000550H   PUBLIC    XDATA    ---       ipcPin
+      02004C8EH   PUBLIC    XDATA    BYTE      c51stimer
+      02000BE7H   PUBLIC    XDATA    ---       ipcSendBuff
+      02000B7FH   PUBLIC    XDATA    BYTE      lpm_flag
+      02000C4BH   PUBLIC    XDATA    ---       ipcReadBuff
+      0200054FH   PUBLIC    XDATA    BYTE      ipcPinlen
+      02000B7EH   PUBLIC    XDATA    BYTE      current_task
+      01003A28H   PUBLIC    CODE     ---       IPC_DealSingleStep
+      01001F65H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
+      01003C37H   PUBLIC    CODE     ---       IPC_AbandonLpm
+      01000F95H   PUBLIC    CODE     ---       IPC_WaitLpm
+      01003681H   PUBLIC    CODE     ---       _IPC_Initialize
+      01003C31H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      01001F5DH   PUBLIC    CODE     ---       _IPC_TxBleData
+      01001F55H   PUBLIC    CODE     ---       _IPC_TxSppData
+      01001BDFH   PUBLIC    CODE     ---       _IPC_Tx24GData
+      01001C0CH   PUBLIC    CODE     ---       _IPC_TxBREDRHidData
+      01001BE5H   PUBLIC    CODE     ---       _IPC_TxData
+      0100085FH   PUBLIC    CODE     ---       _IPC_TxControlCmd
+
+      0100397EH   BLOCK     CODE     ---       LVL=0
+      0100397EH   LINE      ---      ---       #44
+      0100398EH   LINE      ---      ---       #45
+      0100398EH   LINE      ---      ---       #46
+      010039D7H   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010039D8H   BLOCK     CODE     ---       LVL=0
+      010039D8H   LINE      ---      ---       #49
+      010039E2H   LINE      ---      ---       #50
+      010039E2H   BLOCK     CODE     NEAR LAB  LVL=1
+      010039E2H   LINE      ---      ---       #51
+      010039EAH   LINE      ---      ---       #52
+      010039F0H   LINE      ---      ---       #53
+      01003A0FH   LINE      ---      ---       #54
+      01003A19H   LINE      ---      ---       #55
+      01003A1DH   LINE      ---      ---       #56
+      01003A1DH   LINE      ---      ---       #57
+      01003A1FH   LINE      ---      ---       #58
+      01003A27H   LINE      ---      ---       #59
+      00000006H   SYMBOL    DATA     VOID      src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000887H   BLOCK     CODE     ---       LVL=0
+      01000887H   LINE      ---      ---       #61
+      01000895H   LINE      ---      ---       #62
+      01000895H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000895H   LINE      ---      ---       #63
+      010008A4H   LINE      ---      ---       #64
+      010008C3H   LINE      ---      ---       #65
+      010008CDH   LINE      ---      ---       #66
+      010008F2H   LINE      ---      ---       #67
+      01000900H   LINE      ---      ---       #68
+      0100090AH   LINE      ---      ---       #69
+      0100090AH   LINE      ---      ---       #70
+      0100090CH   LINE      ---      ---       #71
+      0100091BH   LINE      ---      ---       #72
+      02004EE8H   SYMBOL    XDATA    VOID      dest
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100085FH   BLOCK     CODE     ---       LVL=0
+      0100085FH   LINE      ---      ---       #74
+      01000864H   LINE      ---      ---       #75
+      01000864H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000864H   LINE      ---      ---       #76
+      01000877H   LINE      ---      ---       #79
+      0100087FH   LINE      ---      ---       #80
+      02004F03H   SYMBOL    XDATA    VOID      cmdBuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001BE5H   BLOCK     CODE     ---       LVL=0
+      01001BE5H   LINE      ---      ---       #83
+      01001BEAH   LINE      ---      ---       #84
+      01001BEAH   LINE      ---      ---       #85
+      01001BF0H   LINE      ---      ---       #86
+      01001BFCH   LINE      ---      ---       #87
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C0CH   BLOCK     CODE     ---       LVL=0
+      01001C0CH   LINE      ---      ---       #90
+      01001C0CH   LINE      ---      ---       #91
+      01001C0CH   LINE      ---      ---       #92
+      01001C12H   LINE      ---      ---       #93
+      01001C15H   LINE      ---      ---       #94
+      01001C17H   LINE      ---      ---       #95
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001BDFH   BLOCK     CODE     ---       LVL=0
+      01001BDFH   LINE      ---      ---       #97
+      01001BDFH   LINE      ---      ---       #98
+      01001BDFH   LINE      ---      ---       #99
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F55H   BLOCK     CODE     ---       LVL=0
+      01001F55H   LINE      ---      ---       #103
+      01001F55H   LINE      ---      ---       #104
+      01001F55H   LINE      ---      ---       #105
+      01001F5BH   LINE      ---      ---       #106
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F5DH   BLOCK     CODE     ---       LVL=0
+      01001F5DH   LINE      ---      ---       #109
+      01001F5DH   LINE      ---      ---       #110
+      01001F5DH   LINE      ---      ---       #111
+      01001F63H   LINE      ---      ---       #112
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003C31H   BLOCK     CODE     ---       LVL=0
+      01003C31H   LINE      ---      ---       #115
+      01003C31H   LINE      ---      ---       #116
+      01003C31H   LINE      ---      ---       #117
+      01003C36H   LINE      ---      ---       #118
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003681H   BLOCK     CODE     ---       LVL=0
+      01003681H   LINE      ---      ---       #120
+      01003681H   LINE      ---      ---       #121
+      01003681H   LINE      ---      ---       #122
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F95H   BLOCK     CODE     ---       LVL=0
+      01000F95H   LINE      ---      ---       #125
+      01000F95H   LINE      ---      ---       #126
+      01000F95H   LINE      ---      ---       #127
+      01000F9AH   LINE      ---      ---       #128
+      01000F9EH   LINE      ---      ---       #129
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003C37H   BLOCK     CODE     ---       LVL=0
+      01003C37H   LINE      ---      ---       #132
+      01003C37H   LINE      ---      ---       #133
+      01003C37H   LINE      ---      ---       #134
+      01003C3DH   LINE      ---      ---       #135
+      01003C42H   LINE      ---      ---       #136
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F65H   BLOCK     CODE     ---       LVL=0
+      01001F65H   LINE      ---      ---       #138
+      01001F65H   LINE      ---      ---       #139
+      01001F65H   LINE      ---      ---       #140
+      01001F79H   LINE      ---      ---       #141
+      01001F7BH   LINE      ---      ---       #142
+      01001F7CH   LINE      ---      ---       #143
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003A28H   BLOCK     CODE     ---       LVL=0
+      01003A28H   LINE      ---      ---       #146
+      01003A28H   LINE      ---      ---       #147
+      01003A28H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003A28H   LINE      ---      ---       #148
+      01003A3AH   LINE      ---      ---       #149
+      01003A50H   LINE      ---      ---       #150
+      01003A50H   LINE      ---      ---       #151
+      01003A58H   LINE      ---      ---       #152
+      01003A69H   LINE      ---      ---       #153
+      01003A73H   LINE      ---      ---       #154
+      01003A92H   LINE      ---      ---       #155
+      01003A94H   LINE      ---      ---       #156
+      01003AA6H   LINE      ---      ---       #157
+      01003AAFH   LINE      ---      ---       #158
+      01003AC5H   LINE      ---      ---       #159
+      01003AFDH   LINE      ---      ---       #160
+      01003AFFH   LINE      ---      ---       #161
+      01003B11H   LINE      ---      ---       #162
+      01003B1AH   LINE      ---      ---       #163
+      01003B30H   LINE      ---      ---       #164
+      01003B68H   LINE      ---      ---       #165
+      01003B6AH   LINE      ---      ---       #166
+      01003B7CH   LINE      ---      ---       #167
+      01003B85H   LINE      ---      ---       #168
+      01003B9BH   LINE      ---      ---       #169
+      01003BD3H   LINE      ---      ---       #170
+      01003BD5H   LINE      ---      ---       #171
+      01003BD5H   LINE      ---      ---       #172
+      01003BD7H   LINE      ---      ---       #173
+      01003BD7H   LINE      ---      ---       #174
+      01003BD7H   LINE      ---      ---       #175
+      01003BEBH   LINE      ---      ---       #176
+      01003BF9H   LINE      ---      ---       #178
+      01003BFCH   LINE      ---      ---       #180
+      01003C0BH   LINE      ---      ---       #181
+      01003C0DH   LINE      ---      ---       #182
+      01003C17H   LINE      ---      ---       #183
+      01003C25H   LINE      ---      ---       #185
+      01003C28H   LINE      ---      ---       #187
+      01003C2EH   LINE      ---      ---       #188
+      01003C30H   LINE      ---      ---       #190
+      01003BD7H   SYMBOL    ---      ---       IPC_TIMERingleStep
+      02004F12H   SYMBOL    XDATA    VOID      pbuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       UTILITIES
+      02004ED0H   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
+      0100272FH   PUBLIC    CODE     ---       _compare_str
+      01000EC0H   PUBLIC    CODE     ---       _Delay1ms
+      0100261CH   PUBLIC    CODE     ---       _xmemclear_ff
+      01001AF0H   PUBLIC    CODE     ---       _xmemclear
+      02004EC1H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
+      01003C4AH   PUBLIC    CODE     ---       _dmemcpy
+      02004EEAH   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
+      010010CEH   PUBLIC    CODE     ---       _xmemcpy
+      01003C43H   PUBLIC    CODE     ---       YC_Ice_break
+
+      01003C43H   BLOCK     CODE     ---       LVL=0
+      01003C43H   LINE      ---      ---       #3
+      01003C43H   LINE      ---      ---       #4
+      01003C43H   LINE      ---      ---       #5
+      01003C49H   LINE      ---      ---       #7
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010010CEH   BLOCK     CODE     ---       LVL=0
+      010010CEH   LINE      ---      ---       #9
+      010010DFH   LINE      ---      ---       #10
+      010010DFH   LINE      ---      ---       #11
+      010010E9H   LINE      ---      ---       #12
+      01001110H   LINE      ---      ---       #14
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003C4AH   BLOCK     CODE     ---       LVL=0
+      01003C4AH   LINE      ---      ---       #16
+      01003C55H   LINE      ---      ---       #17
+      01003C55H   LINE      ---      ---       #18
+      01003C63H   LINE      ---      ---       #19
+      01003C8DH   LINE      ---      ---       #21
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001AF0H   BLOCK     CODE     ---       LVL=0
+      01001AF0H   LINE      ---      ---       #23
+      01001AFBH   LINE      ---      ---       #24
+      01001AFBH   LINE      ---      ---       #25
+      01001B05H   LINE      ---      ---       #26
+      01001B1BH   LINE      ---      ---       #28
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100261CH   BLOCK     CODE     ---       LVL=0
+      0100261CH   LINE      ---      ---       #30
+      01002627H   LINE      ---      ---       #31
+      01002627H   LINE      ---      ---       #32
+      01002631H   LINE      ---      ---       #33
+      01002648H   LINE      ---      ---       #35
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000EC0H   BLOCK     CODE     ---       LVL=0
+      01000EC0H   LINE      ---      ---       #46
+      01000EC0H   LINE      ---      ---       #47
+      01000EC0H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000EC0H   LINE      ---      ---       #49
+      01000EC6H   LINE      ---      ---       #50
+      01000ED4H   LINE      ---      ---       #51
+      01000ED7H   LINE      ---      ---       #52
+      00000004H   SYMBOL    DATA     VOID      j
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100272FH   BLOCK     CODE     ---       LVL=0
+      0100272FH   LINE      ---      ---       #54
+      0100273AH   LINE      ---      ---       #55
+      0100273AH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100273AH   LINE      ---      ---       #57
+      01002746H   LINE      ---      ---       #58
+      01002770H   LINE      ---      ---       #59
+      01002773H   LINE      ---      ---       #60
+      01002776H   LINE      ---      ---       #61
+      01002778H   LINE      ---      ---       #62
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       GPIO
+      020000A3H   PUBLIC    XDATA    ---       YC_GPIOWakeupL
+      020000A7H   PUBLIC    XDATA    ---       YC_GPIOWakeupH
+      010032A3H   PUBLIC    CODE     ---       GPIO_fillpd
+      01003236H   PUBLIC    CODE     ---       _GPIO_FlipOutBit
+      01003152H   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
+      01003DDBH   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
+      01003165H   PUBLIC    CODE     ---       _GPIO_SetWakeup
+      00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
+      01000EF4H   PUBLIC    CODE     ---       _GPIO_SetOutput
+      00000020H.5 PUBLIC    BIT      BIT       ?_GPIO_SetInput?BIT
+      01003D9BH   PUBLIC    CODE     ---       _GPIO_SetInput
+      00000020H.4 PUBLIC    BIT      BIT       ?_GPIO_Setoe?BIT
+      01003DCAH   PUBLIC    CODE     ---       _GPIO_Setoe
+      00000020H.3 PUBLIC    BIT      BIT       ?_GPIO_SetPd?BIT
+      01003DB9H   PUBLIC    CODE     ---       _GPIO_SetPd
+      00000020H.2 PUBLIC    BIT      BIT       ?_GPIO_SetPu?BIT
+      01003D8AH   PUBLIC    CODE     ---       _GPIO_SetPu
+      00000020H.1 PUBLIC    BIT      BIT       ?_GPIO_Setout?BIT
+      01000AECH   PUBLIC    CODE     ---       _GPIO_Setout
+      010031F1H   PUBLIC    CODE     ---       _GPIO_GetInputStatus
+
+      01003D29H   BLOCK     CODE     ---       LVL=0
+      01003D29H   LINE      ---      ---       #9
+      01003D34H   LINE      ---      ---       #10
+      01003D34H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003D34H   LINE      ---      ---       #11
+      01003D36H   LINE      ---      ---       #12
+      01003D37H   LINE      ---      ---       #14
+      01003D3BH   LINE      ---      ---       #15
+      01003D42H   LINE      ---      ---       #17
+      01003D45H   LINE      ---      ---       #18
+      01003D67H   LINE      ---      ---       #19
+      01003D67H   LINE      ---      ---       #21
+      01003D67H   LINE      ---      ---       #22
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000005H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010031F7H   BLOCK     CODE     ---       LVL=0
+      010031F7H   LINE      ---      ---       #26
+      010031F9H   LINE      ---      ---       #27
+      010031F9H   BLOCK     CODE     NEAR LAB  LVL=1
+      010031F9H   LINE      ---      ---       #28
+      010031FEH   LINE      ---      ---       #29
+      010031FFH   LINE      ---      ---       #31
+      01003203H   LINE      ---      ---       #32
+      0100320AH   LINE      ---      ---       #33
+      01003235H   LINE      ---      ---       #35
+      02004F30H   SYMBOL    XDATA    VOID      queue
+      00000006H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010031F1H   BLOCK     CODE     ---       LVL=0
+      010031F1H   LINE      ---      ---       #37
+      010031F1H   LINE      ---      ---       #38
+      010031F1H   LINE      ---      ---       #39
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000AECH   BLOCK     CODE     ---       LVL=0
+      01000AECH   LINE      ---      ---       #42
+      01000AECH   LINE      ---      ---       #43
+      01000AECH   LINE      ---      ---       #44
+      01000AF0H   LINE      ---      ---       #46
+      01000AFDH   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003D8AH   BLOCK     CODE     ---       LVL=0
+      01003D8AH   LINE      ---      ---       #49
+      01003D8AH   LINE      ---      ---       #50
+      01003D8AH   LINE      ---      ---       #51
+      01003D8EH   LINE      ---      ---       #53
+      01003D9AH   LINE      ---      ---       #54
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003DB9H   BLOCK     CODE     ---       LVL=0
+      01003DB9H   LINE      ---      ---       #56
+      01003DB9H   LINE      ---      ---       #57
+      01003DB9H   LINE      ---      ---       #58
+      01003DBDH   LINE      ---      ---       #60
+      01003DC9H   LINE      ---      ---       #61
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003DCAH   BLOCK     CODE     ---       LVL=0
+      01003DCAH   LINE      ---      ---       #63
+      01003DCAH   LINE      ---      ---       #64
+      01003DCAH   LINE      ---      ---       #65
+      01003DCEH   LINE      ---      ---       #67
+      01003DDAH   LINE      ---      ---       #68
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003D9BH   BLOCK     CODE     ---       LVL=0
+      01003D9BH   LINE      ---      ---       #70
+      01003D9DH   LINE      ---      ---       #71
+      01003D9DH   LINE      ---      ---       #72
+      01003DA1H   LINE      ---      ---       #74
+      01003DA9H   LINE      ---      ---       #75
+      01003DB2H   LINE      ---      ---       #76
+      01003DB8H   LINE      ---      ---       #77
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000EF4H   BLOCK     CODE     ---       LVL=0
+      01000EF4H   LINE      ---      ---       #79
+      01000EF6H   LINE      ---      ---       #80
+      01000EF6H   LINE      ---      ---       #81
+      01000EFAH   LINE      ---      ---       #83
+      01000F01H   LINE      ---      ---       #84
+      01000F09H   LINE      ---      ---       #85
+      01000F10H   LINE      ---      ---       #86
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01003165H   BLOCK     CODE     ---       LVL=0
+      01003165H   LINE      ---      ---       #88
+      01003165H   LINE      ---      ---       #89
+      01003165H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003165H   LINE      ---      ---       #92
+      0100316BH   LINE      ---      ---       #94
+      0100316FH   LINE      ---      ---       #95
+      01003176H   LINE      ---      ---       #96
+      01003179H   LINE      ---      ---       #97
+      0100319AH   LINE      ---      ---       #98
+      010031BBH   LINE      ---      ---       #99
+      010031BCH   LINE      ---      ---       #101
+      010031BCH   LINE      ---      ---       #102
+      010031DEH   LINE      ---      ---       #103
+      010031F0H   LINE      ---      ---       #104
+      010031F0H   LINE      ---      ---       #105
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003DDBH   BLOCK     CODE     ---       LVL=0
+      01003DDBH   LINE      ---      ---       #107
+      01003DDBH   LINE      ---      ---       #108
+      01003DDBH   BLOCK     CODE     NEAR LAB  LVL=1
+      01003DDBH   LINE      ---      ---       #111
+      01003DDFH   LINE      ---      ---       #113
+      01003DE3H   LINE      ---      ---       #114
+      01003DEAH   LINE      ---      ---       #115
+      01003E0CH   LINE      ---      ---       #116
+      01003E19H   LINE      ---      ---       #117
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003152H   BLOCK     CODE     ---       LVL=0
+      01003152H   LINE      ---      ---       #119
+      01003157H   LINE      ---      ---       #120
+      01003157H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003157H   LINE      ---      ---       #121
+      0100315BH   LINE      ---      ---       #122
+      00000021H.0 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003236H   BLOCK     CODE     ---       LVL=0
+      01003236H   LINE      ---      ---       #125
+      0100323BH   LINE      ---      ---       #126
+      0100323BH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100323BH   LINE      ---      ---       #127
+      01003245H   LINE      ---      ---       #128
+      00000021H.1 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010032A3H   BLOCK     CODE     ---       LVL=0
+      010032A3H   LINE      ---      ---       #131
+      010032A3H   LINE      ---      ---       #132
+      010032A3H   BLOCK     CODE     NEAR LAB  LVL=1
+      010032A3H   LINE      ---      ---       #134
+      010032A5H   LINE      ---      ---       #135
+      010032D6H   LINE      ---      ---       #136
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       IIC
+      01000E12H   PUBLIC    CODE     ---       _IIC_WriteBlock
+      01003C8EH   PUBLIC    CODE     ---       _IIC_write
+      0100204EH   PUBLIC    CODE     ---       _IIC_Read
+
+      010027DBH   BLOCK     CODE     ---       LVL=0
+      010027DBH   LINE      ---      ---       #11
+      010027DBH   LINE      ---      ---       #12
+      010027DBH   LINE      ---      ---       #13
+      010027E2H   LINE      ---      ---       #14
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100204EH   BLOCK     CODE     ---       LVL=0
+      0100204EH   LINE      ---      ---       #16
+      0100205FH   LINE      ---      ---       #17
+      0100205FH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100205FH   LINE      ---      ---       #18
+      0100205FH   LINE      ---      ---       #19
+      01002068H   LINE      ---      ---       #20
+      0100206EH   LINE      ---      ---       #21
+      01002074H   LINE      ---      ---       #22
+      0100207AH   LINE      ---      ---       #23
+      01002093H   LINE      ---      ---       #24
+      010020A8H   LINE      ---      ---       #25
+      010020C1H   LINE      ---      ---       #26
+      010020C7H   LINE      ---      ---       #27
+      010020CFH   LINE      ---      ---       #28
+      010020D6H   LINE      ---      ---       #29
+      010020D6H   LINE      ---      ---       #30
+      010020DDH   LINE      ---      ---       #31
+      010020DFH   LINE      ---      ---       #32
+      00000006H   SYMBOL    DATA     VOID      mem_src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003C8EH   BLOCK     CODE     ---       LVL=0
+      01003C8EH   LINE      ---      ---       #35
+      01003CA9H   LINE      ---      ---       #36
+      01003CA9H   LINE      ---      ---       #37
+      01003CCAH   LINE      ---      ---       #38
+      01003CD0H   LINE      ---      ---       #39
+      01003CDFH   LINE      ---      ---       #40
+      01003CFCH   LINE      ---      ---       #41
+      01003D13H   LINE      ---      ---       #42
+      01003D1AH   LINE      ---      ---       #43
+      01003D1FH   LINE      ---      ---       #44
+      01003D26H   LINE      ---      ---       #45
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000E12H   BLOCK     CODE     ---       LVL=0
+      01000E12H   LINE      ---      ---       #48
+      01000E29H   LINE      ---      ---       #49
+      01000E29H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000E29H   LINE      ---      ---       #51
+      01000E35H   LINE      ---      ---       #52
+      01000E45H   LINE      ---      ---       #53
+      01000E53H   LINE      ---      ---       #54
+      01000E79H   LINE      ---      ---       #55
+      01000E86H   LINE      ---      ---       #56
+      01000E9CH   LINE      ---      ---       #57
+      01000EA0H   LINE      ---      ---       #58
+      01000EB1H   LINE      ---      ---       #59
+      01000EBDH   LINE      ---      ---       #60
+      01000EBFH   LINE      ---      ---       #61
+      00000004H   SYMBOL    DATA     VOID      cris
+      02004EBFH   SYMBOL    XDATA    VOID      curr_len
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       ?C?FPADD
+      0100000AH   PUBLIC    CODE     ---       ?C?FPADD
+      01000006H   PUBLIC    CODE     ---       ?C?FPSUB
+
+      ---         MODULE    ---      ---       ?C?FPMUL
+      010000FBH   PUBLIC    CODE     ---       ?C?FPMUL
+
+      ---         MODULE    ---      ---       ?C?FCAST
+      0100020BH   PUBLIC    CODE     ---       ?C?FCASTC
+      01000206H   PUBLIC    CODE     ---       ?C?FCASTI
+      01000201H   PUBLIC    CODE     ---       ?C?FCASTL
+
+      ---         MODULE    ---      ---       ?C?CASTF
+      0100023FH   PUBLIC    CODE     ---       ?C?CASTF
+
+      ---         MODULE    ---      ---       ?C?FPGETOPN
+      01000276H   PUBLIC    CODE     ---       ?C?FPGETOPN2
+      010002ABH   PUBLIC    CODE     ---       ?C?FPNANRESULT
+      010002B5H   PUBLIC    CODE     ---       ?C?FPOVERFLOW
+      0100028DH   PUBLIC    CODE     ---       ?C?FPRESULT
+      010002A1H   PUBLIC    CODE     ---       ?C?FPRESULT2
+      010002B2H   PUBLIC    CODE     ---       ?C?FPUNDERFLOW
+
+      ---         MODULE    ---      ---       ?C_STARTUP
+      01000000H   PUBLIC    CODE     ---       ?C_STARTUP
+
+      ---         MODULE    ---      ---       ?C?COPY
+      01000390H   PUBLIC    CODE     ---       ?C?COPY
+
+      ---         MODULE    ---      ---       ?C?CLDPTR
+      010003B6H   PUBLIC    CODE     ---       ?C?CLDPTR
+
+      ---         MODULE    ---      ---       ?C?CLDOPTR
+      010003CFH   PUBLIC    CODE     ---       ?C?CLDOPTR
+
+      ---         MODULE    ---      ---       ?C?CSTPTR
+      010003FCH   PUBLIC    CODE     ---       ?C?CSTPTR
+
+      ---         MODULE    ---      ---       ?C?IILDX
+      0100040EH   PUBLIC    CODE     ---       ?C?IILDX
+
+      ---         MODULE    ---      ---       ?C?ILDIX
+      01000424H   PUBLIC    CODE     ---       ?C?ILDIX
+
+      ---         MODULE    ---      ---       ?C?LMUL
+      0100043AH   PUBLIC    CODE     ---       ?C?LMUL
+
+      ---         MODULE    ---      ---       ?C?ULDIV
+      010004C5H   PUBLIC    CODE     ---       ?C?ULDIV
+
+      ---         MODULE    ---      ---       ?C?LNEG
+      01000557H   PUBLIC    CODE     ---       ?C?LNEG
+
+      ---         MODULE    ---      ---       ?C?ULCMP
+      01000565H   PUBLIC    CODE     ---       ?C?ULCMP
+
+      ---         MODULE    ---      ---       ?C?LSTXDATA
+      01000576H   PUBLIC    CODE     ---       ?C?LSTXDATA
+
+      ---         MODULE    ---      ---       ?C?LSTKXDATA
+      01000582H   PUBLIC    CODE     ---       ?C?LSTKXDATA
+
+      ---         MODULE    ---      ---       ?C?CCASE
+      010005B3H   PUBLIC    CODE     ---       ?C?CCASE
+
+      ---         MODULE    ---      ---       ?C?ICALL
+      010005D9H   PUBLIC    CODE     ---       ?C?ICALL
+      010005DDH   PUBLIC    CODE     ---       ?C?ICALL2
+
+      ---         MODULE    ---      ---       ?C_INIT
+      01000626H   PUBLIC    CODE     ---       ?C_START
+
+Program Size: data=10.2 xdata=970 const=182 code=15716
+LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
Index: output/FW.SBR
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: output/FW.SBR
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: output/eeprom.dat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/eeprom.dat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/eeprom.dat	(working copy)
@@ -0,0 +1,32768 @@
+00
+02
+aa
+55
+02
+20
+c5
+12
+80
+1a
+c0
+00
+00
+45
+c0
+01
+80
+49
+c0
+02
+80
+55
+c0
+03
+03
+30
+c0
+05
+03
+51
+c0
+13
+83
+55
+c0
+14
+03
+67
+c0
+15
+83
+6d
+c0
+21
+03
+78
+c0
+21
+83
+7c
+c0
+28
+03
+84
+c0
+2a
+03
+93
+c0
+18
+80
+41
+c0
+19
+80
+3e
+c0
+48
+02
+26
+c0
+49
+01
+ec
+c0
+4a
+01
+f2
+c0
+4a
+81
+da
+c0
+58
+03
+2e
+c0
+58
+81
+9e
+c0
+59
+01
+b2
+c0
+59
+81
+cc
+c0
+5b
+01
+d5
+c0
+5c
+81
+a6
+20
+20
+3b
+f1
+c0
+0c
+03
+9f
+c0
+0d
+83
+a7
+c0
+11
+83
+c6
+c0
+12
+03
+e2
+c0
+19
+04
+5c
+c0
+1d
+d3
+b0
+c0
+1f
+02
+a3
+c0
+1f
+82
+a7
+c0
+25
+04
+a5
+c0
+25
+84
+55
+c0
+26
+04
+5f
+c0
+27
+04
+65
+c0
+2b
+04
+6c
+c0
+30
+84
+73
+c0
+31
+84
+78
+c0
+32
+04
+9a
+c0
+32
+84
+cf
+c0
+34
+86
+32
+c0
+35
+06
+17
+c0
+35
+86
+19
+c0
+37
+06
+3d
+c0
+37
+84
+b0
+c0
+43
+81
+39
+c0
+46
+82
+c2
+c0
+47
+02
+db
+c0
+47
+82
+ab
+c0
+5e
+82
+b9
+c0
+66
+82
+33
+c0
+67
+81
+45
+c0
+68
+01
+5a
+c0
+4e
+03
+e6
+c0
+4f
+83
+fc
+c0
+71
+04
+09
+c0
+71
+84
+1b
+c0
+73
+04
+33
+20
+20
+3b
+f1
+da
+20
+40
+40
+18
+00
+72
+01
+20
+20
+33
+05
+d8
+a0
+40
+40
+df
+20
+00
+0a
+20
+40
+7e
+3b
+20
+20
+32
+d8
+68
+10
+81
+3b
+60
+00
+8b
+81
+70
+80
+06
+08
+20
+20
+30
+03
+20
+40
+00
+d3
+20
+40
+00
+c5
+20
+40
+00
+5a
+20
+40
+00
+4e
+20
+20
+30
+15
+68
+09
+47
+f4
+68
+00
+c3
+d8
+7d
+3a
+04
+0b
+68
+00
+c1
+33
+7d
+3a
+04
+06
+60
+09
+47
+f4
+20
+60
+00
+00
+20
+40
+33
+92
+20
+40
+34
+07
+20
+40
+30
+24
+20
+40
+06
+5e
+20
+20
+30
+22
+68
+00
+c7
+dc
+20
+3a
+00
+5e
+68
+00
+c7
+93
+20
+7a
+00
+00
+20
+40
+01
+34
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+01
+15
+60
+00
+cb
+a7
+c0
+00
+80
+73
+c0
+03
+00
+7d
+1f
+e2
+04
+00
+18
+c2
+22
+00
+68
+00
+c0
+40
+c3
+00
+00
+70
+1a
+22
+0c
+00
+c6
+84
+80
+00
+18
+42
+7e
+00
+c0
+01
+80
+7f
+c0
+02
+80
+9d
+20
+20
+3b
+f1
+1a
+22
+0c
+00
+d8
+a0
+00
+f8
+20
+20
+01
+0d
+20
+40
+01
+15
+20
+40
+01
+15
+60
+00
+8b
+7d
+20
+40
+00
+78
+20
+20
+7c
+33
+20
+40
+01
+18
+18
+c2
+04
+00
+18
+50
+84
+00
+60
+09
+4b
+9a
+20
+60
+00
+00
+d8
+a0
+4d
+57
+20
+20
+01
+0d
+20
+40
+01
+15
+1f
+e2
+22
+00
+18
+c2
+7e
+00
+60
+01
+02
+b7
+20
+40
+52
+7c
+24
+3a
+00
+88
+1a
+20
+a2
+01
+20
+40
+4b
+2c
+20
+20
+00
+8d
+d8
+a0
+4b
+ad
+1a
+22
+72
+00
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+20
+01
+0f
+18
+a0
+a5
+fe
+68
+01
+42
+b7
+e0
+a1
+00
+00
+58
+00
+00
+a1
+e0
+a0
+80
+00
+1a
+20
+f3
+ff
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+40
+01
+0f
+1a
+42
+0c
+00
+e8
+c1
+00
+00
+60
+01
+4c
+9b
+1f
+e0
+f2
+02
+20
+40
+7e
+45
+70
+4c
+9a
+64
+20
+60
+00
+00
+18
+c2
+22
+00
+68
+00
+cb
+a9
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+a9
+1f
+ef
+fe
+07
+d8
+a0
+4b
+ad
+98
+a0
+8a
+00
+1a
+22
+0c
+00
+20
+40
+01
+15
+18
+c2
+22
+00
+1f
+e0
+ff
+ff
+1f
+e2
+72
+00
+1f
+e0
+fe
+07
+60
+00
+cc
+82
+1a
+22
+0c
+00
+20
+40
+01
+15
+18
+c2
+22
+00
+c0
+00
+80
+b3
+c0
+01
+00
+b9
+c0
+01
+80
+bb
+c0
+02
+00
+bd
+68
+01
+4c
+b8
+20
+40
+00
+c2
+20
+40
+56
+1e
+24
+7a
+00
+00
+70
+0b
+7d
+1b
+20
+20
+56
+20
+68
+01
+4c
+ba
+20
+20
+00
+b4
+68
+01
+4c
+bc
+20
+20
+00
+b4
+68
+01
+4d
+3e
+20
+40
+00
+c2
+68
+00
+cd
+7e
+20
+7a
+00
+00
+20
+20
+00
+b5
+e0
+a1
+00
+00
+1a
+22
+0c
+00
+20
+20
+01
+0f
+68
+0a
+4d
+4b
+1c
+42
+7e
+00
+98
+46
+7e
+00
+68
+09
+4d
+4f
+98
+46
+fc
+00
+20
+40
+7e
+fd
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+4d
+4b
+68
+00
+cd
+51
+1f
+e0
+fe
+01
+60
+00
+cd
+51
+20
+60
+00
+00
+68
+0a
+4c
+59
+1c
+42
+7e
+00
+98
+46
+7e
+00
+d8
+40
+06
+40
+98
+46
+fc
+00
+20
+40
+7e
+fd
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+4c
+59
+68
+09
+4b
+a5
+18
+50
+84
+00
+98
+40
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4b
+a5
+1f
+f0
+fe
+00
+1f
+e1
+7e
+03
+c1
+80
+00
+00
+68
+00
+cc
+8f
+c2
+80
+00
+f0
+c2
+80
+80
+f2
+da
+20
+00
+00
+20
+40
+01
+04
+70
+89
+71
+8f
+68
+00
+cc
+90
+60
+10
+89
+73
+20
+40
+00
+f3
+da
+20
+00
+01
+20
+20
+01
+04
+70
+89
+71
+bf
+20
+20
+00
+f3
+70
+89
+71
+af
+68
+10
+80
+53
+79
+20
+7e
+07
+60
+10
+80
+53
+68
+10
+89
+73
+1f
+e1
+fe
+30
+60
+10
+89
+73
+70
+89
+06
+74
+70
+89
+06
+7c
+70
+89
+72
+aa
+20
+00
+13
+88
+68
+19
+01
+50
+68
+10
+80
+53
+79
+3f
+fe
+07
+60
+10
+80
+53
+18
+50
+84
+00
+60
+09
+4c
+95
+20
+60
+00
+00
+d8
+40
+00
+21
+68
+00
+cc
+90
+98
+46
+04
+00
+1a
+22
+7e
+00
+79
+20
+04
+07
+24
+3a
+01
+0b
+79
+3f
+84
+07
+d8
+a0
+80
+78
+20
+20
+69
+f4
+20
+40
+01
+15
+1f
+e2
+72
+00
+20
+40
+01
+11
+20
+20
+00
+78
+20
+40
+01
+15
+e0
+a0
+80
+00
+c2
+00
+01
+11
+20
+60
+00
+00
+20
+40
+01
+18
+e8
+c0
+80
+00
+20
+60
+00
+00
+58
+00
+4b
+36
+98
+c6
+7c
+00
+24
+62
+80
+00
+d8
+c0
+4a
+a0
+20
+60
+00
+00
+df
+20
+00
+03
+d8
+c0
+4b
+a2
+18
+c2
+22
+00
+68
+01
+4b
+a0
+1f
+f0
+fe
+00
+1f
+e2
+0a
+00
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+20
+40
+01
+2c
+c2
+00
+01
+24
+18
+a2
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4b
+a0
+20
+60
+00
+00
+58
+00
+4b
+9a
+98
+a6
+7c
+00
+24
+62
+80
+00
+d8
+a0
+4b
+36
+20
+60
+00
+00
+68
+01
+4b
+9e
+68
+09
+4b
+a0
+20
+20
+01
+36
+68
+01
+4b
+9a
+68
+09
+4b
+9c
+98
+46
+7c
+00
+20
+22
+e9
+b1
+20
+20
+32
+0b
+1c
+42
+7e
+00
+60
+02
+4d
+47
+68
+08
+c7
+ef
+68
+00
+cd
+4a
+98
+46
+7c
+00
+24
+41
+01
+40
+20
+20
+7c
+06
+68
+0a
+4d
+47
+60
+0a
+47
+ec
+60
+0a
+4c
+59
+60
+0a
+4d
+4b
+20
+60
+00
+00
+da
+20
+47
+df
+20
+40
+7f
+9f
+20
+7a
+00
+00
+1f
+e2
+26
+00
+20
+40
+01
+4b
+20
+20
+3e
+a5
+c1
+0c
+00
+00
+c0
+0a
+06
+4f
+c0
+0a
+86
+54
+c0
+03
+66
+14
+c0
+01
+01
+51
+20
+20
+3e
+7d
+70
+42
+9d
+00
+68
+01
+47
+f4
+c2
+83
+bf
+08
+2f
+ec
+00
+01
+20
+40
+81
+57
+20
+20
+3f
+08
+68
+00
+84
+50
+c1
+01
+00
+00
+20
+20
+3e
+7b
+60
+08
+82
+59
+68
+00
+cc
+8d
+1f
+e0
+fe
+01
+60
+00
+cc
+8d
+68
+00
+82
+59
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+82
+59
+20
+40
+01
+7a
+20
+40
+01
+81
+20
+40
+01
+66
+20
+20
+01
+5e
+68
+00
+cc
+be
+24
+7a
+00
+00
+68
+00
+cc
+9a
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cc
+9a
+c1
+80
+80
+00
+70
+4c
+9a
+64
+68
+01
+47
+f4
+c4
+02
+80
+00
+68
+01
+4c
+9b
+20
+7a
+00
+00
+20
+40
+52
+7e
+24
+7a
+00
+00
+68
+01
+4c
+9b
+1f
+e2
+22
+00
+20
+40
+4b
+2c
+1a
+20
+f2
+02
+d8
+c0
+4c
+9d
+20
+20
+7e
+45
+68
+00
+c7
+f2
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+f2
+24
+7a
+00
+00
+20
+40
+3e
+bd
+20
+20
+4b
+22
+68
+00
+cc
+15
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cc
+15
+20
+60
+00
+00
+1a
+62
+7e
+00
+1f
+e1
+7e
+f0
+c1
+28
+00
+00
+20
+40
+01
+8e
+1a
+62
+7e
+00
+20
+7a
+00
+00
+60
+00
+cb
+a4
+20
+20
+01
+1d
+1a
+62
+7e
+00
+c0
+05
+81
+92
+c0
+01
+01
+9a
+20
+60
+00
+00
+70
+4c
+9a
+28
+58
+00
+00
+0a
+60
+01
+4c
+9b
+68
+01
+42
+b7
+e0
+a1
+00
+00
+58
+00
+01
+a1
+e0
+a1
+00
+00
+20
+60
+00
+00
+70
+4c
+9a
+00
+df
+20
+00
+14
+d8
+a0
+4c
+9b
+20
+20
+7e
+3f
+70
+41
+6e
+7f
+20
+40
+3c
+f3
+68
+00
+cc
+97
+20
+7a
+00
+00
+70
+4c
+97
+00
+1c
+42
+7e
+00
+60
+02
+4c
+59
+20
+60
+00
+00
+68
+00
+c2
+19
+24
+7a
+00
+00
+70
+80
+42
+06
+58
+00
+0f
+0c
+20
+40
+3d
+a7
+58
+03
+0d
+40
+20
+40
+3b
+f3
+37
+d9
+82
+00
+1e
+22
+60
+00
+20
+40
+3b
+36
+20
+00
+13
+88
+20
+20
+3d
+9d
+c6
+11
+80
+00
+68
+01
+47
+f4
+c2
+84
+bd
+1e
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+20
+40
+52
+7e
+24
+7a
+00
+00
+20
+40
+3d
+ca
+24
+7a
+00
+00
+20
+40
+3b
+36
+68
+00
+c7
+dc
+20
+3a
+3d
+25
+68
+00
+c7
+93
+20
+7a
+00
+00
+20
+20
+3d
+25
+20
+40
+01
+34
+24
+74
+00
+00
+20
+40
+01
+31
+24
+74
+00
+00
+70
+0b
+7f
+01
+70
+0b
+7e
+01
+20
+40
+01
+d1
+20
+20
+01
+34
+20
+40
+01
+c4
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+20
+3d
+2d
+68
+00
+8b
+7e
+20
+00
+00
+0a
+c0
+80
+01
+d1
+20
+60
+00
+00
+20
+40
+01
+c4
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+20
+3d
+4f
+20
+40
+01
+de
+20
+40
+3a
+af
+70
+89
+5c
+c0
+20
+60
+00
+00
+68
+00
+c2
+19
+24
+3a
+01
+e4
+20
+40
+3d
+91
+20
+00
+75
+30
+20
+00
+75
+30
+20
+00
+75
+30
+20
+40
+3b
+0a
+70
+80
+42
+04
+68
+10
+89
+6b
+1f
+e1
+7e
+cf
+60
+10
+89
+6b
+1f
+e1
+fe
+30
+60
+10
+89
+6b
+20
+60
+00
+00
+60
+08
+80
+17
+18
+40
+a2
+04
+20
+20
+3a
+86
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+20
+3a
+b6
+20
+40
+01
+ef
+58
+00
+05
+00
+20
+40
+3b
+f3
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+70
+89
+6d
+12
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7d
+68
+00
+cb
+ef
+c0
+ff
+82
+0a
+68
+02
+ca
+91
+e0
+a2
+80
+00
+e8
+c2
+80
+00
+e0
+a2
+80
+00
+70
+89
+56
+df
+20
+40
+02
+15
+70
+89
+55
+df
+20
+60
+00
+00
+68
+02
+ca
+87
+e0
+a2
+80
+00
+e8
+c2
+80
+00
+e0
+a2
+80
+00
+68
+00
+cc
+7d
+20
+5a
+02
+13
+60
+10
+89
+56
+70
+89
+55
+d0
+20
+60
+00
+00
+58
+00
+00
+c2
+20
+60
+00
+00
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d4
+20
+00
+00
+04
+20
+60
+00
+00
+70
+89
+55
+d4
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+70
+89
+55
+d0
+70
+89
+56
+c0
+20
+60
+00
+00
+20
+30
+ba
+6f
+20
+40
+02
+1d
+20
+20
+3a
+6f
+20
+40
+52
+7c
+24
+7a
+00
+00
+20
+20
+00
+5a
+78
+34
+7c
+00
+68
+12
+01
+38
+79
+34
+7e
+1a
+60
+12
+00
+4c
+20
+40
+3d
+b0
+70
+00
+a2
+01
+20
+60
+00
+00
+68
+00
+c4
+19
+1f
+e0
+fe
+02
+60
+00
+c3
+f9
+70
+0b
+7e
+00
+70
+01
+77
+06
+20
+40
+3f
+a4
+58
+00
+02
+29
+60
+01
+42
+8e
+58
+00
+02
+32
+60
+01
+42
+8a
+58
+00
+01
+86
+60
+01
+42
+92
+58
+00
+02
+aa
+60
+01
+42
+90
+58
+00
+00
+5a
+60
+01
+42
+8c
+58
+00
+02
+2c
+60
+01
+42
+88
+58
+00
+4a
+a0
+1f
+f0
+fe
+00
+60
+01
+4b
+9a
+60
+01
+4b
+9c
+20
+40
+3e
+0b
+58
+00
+4b
+36
+1f
+f0
+fe
+00
+60
+01
+4b
+9e
+60
+01
+4b
+a0
+68
+00
+cc
+97
+c0
+2d
+02
+66
+20
+35
+82
+64
+68
+01
+4c
+91
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+68
+01
+4c
+93
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+40
+02
+71
+68
+04
+02
+a0
+24
+3a
+02
+5e
+68
+01
+4a
+d4
+1f
+f0
+fe
+00
+20
+3a
+02
+5e
+60
+01
+4c
+93
+20
+40
+06
+5b
+70
+4b
+a4
+2f
+20
+40
+01
+1d
+70
+4c
+97
+00
+70
+82
+80
+03
+20
+60
+00
+00
+70
+4b
+a4
+30
+20
+20
+02
+60
+1c
+e2
+7e
+00
+20
+3a
+02
+b1
+20
+40
+5b
+63
+20
+40
+4d
+99
+58
+00
+00
+00
+60
+04
+40
+40
+60
+01
+47
+f4
+1c
+42
+7e
+00
+60
+02
+4c
+59
+70
+4b
+a4
+33
+20
+20
+02
+60
+20
+40
+68
+8a
+58
+00
+07
+e0
+da
+20
+02
+a0
+d8
+40
+00
+0e
+20
+40
+68
+d3
+20
+40
+68
+8d
+68
+00
+82
+a0
+c2
+80
+3b
+f1
+68
+04
+02
+a2
+20
+7a
+00
+00
+68
+00
+cc
+8f
+c2
+80
+02
+85
+c2
+80
+82
+93
+68
+01
+02
+a2
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+68
+01
+02
+a8
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+60
+00
+00
+68
+09
+02
+a6
+68
+01
+02
+ac
+18
+42
+24
+00
+1f
+e2
+22
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+1a
+22
+7e
+00
+98
+46
+26
+00
+1a
+63
+a6
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+20
+60
+00
+00
+68
+09
+02
+a4
+68
+01
+02
+aa
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+6b
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+1a
+63
+a6
+00
+1a
+22
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+60
+00
+00
+70
+00
+16
+27
+70
+89
+0f
+36
+70
+89
+0b
+5f
+20
+20
+53
+d4
+70
+89
+0f
+2e
+70
+89
+0b
+ff
+20
+20
+53
+d9
+20
+60
+00
+00
+68
+01
+4b
+a0
+60
+01
+4b
+9e
+68
+01
+4b
+9c
+60
+01
+4b
+9a
+70
+0b
+7e
+03
+20
+40
+01
+d1
+70
+4c
+97
+5a
+20
+40
+3d
+b8
+68
+12
+01
+38
+79
+3f
+fe
+0f
+60
+12
+00
+4c
+20
+40
+3d
+b0
+d8
+5f
+ff
+ff
+20
+20
+3c
+da
+ea
+2a
+80
+00
+18
+41
+7e
+ff
+24
+3a
+02
+be
+18
+4c
+fe
+00
+e2
+22
+80
+00
+1a
+20
+a2
+04
+ea
+20
+80
+00
+24
+7a
+00
+00
+20
+20
+7f
+9c
+20
+40
+7c
+20
+da
+20
+47
+e4
+20
+40
+7f
+9f
+1f
+e2
+04
+00
+20
+40
+7c
+24
+18
+42
+7e
+00
+20
+7a
+00
+00
+c0
+10
+82
+d4
+c0
+11
+02
+d6
+c0
+11
+86
+f5
+c0
+00
+83
+15
+c0
+06
+82
+f1
+c0
+16
+02
+f0
+c0
+15
+82
+fb
+c0
+01
+83
+19
+c0
+15
+03
+22
+c0
+09
+7c
+85
+20
+20
+7c
+5a
+70
+4b
+ef
+ff
+20
+20
+07
+28
+79
+3f
+80
+23
+70
+4b
+ef
+ff
+20
+20
+06
+e0
+70
+0b
+7d
+22
+20
+20
+56
+20
+68
+00
+80
+7c
+20
+3a
+02
+e0
+20
+40
+61
+d9
+68
+00
+80
+7c
+24
+3a
+7c
+8c
+68
+00
+8b
+7d
+c5
+84
+fc
+87
+c0
+02
+02
+e6
+c0
+08
+82
+d9
+c0
+14
+02
+ec
+20
+20
+7c
+7b
+68
+01
+47
+f4
+c3
+01
+82
+e9
+20
+20
+7c
+a4
+58
+00
+00
+0a
+60
+02
+00
+51
+20
+20
+7c
+a4
+70
+00
+7c
+37
+68
+01
+4c
+98
+60
+01
+00
+51
+20
+60
+00
+00
+20
+40
+03
+15
+20
+40
+3e
+ff
+70
+41
+31
+00
+18
+0a
+7e
+00
+60
+00
+c4
+f9
+70
+43
+dc
+05
+58
+18
+12
+03
+60
+01
+c3
+e2
+d8
+40
+00
+07
+20
+40
+03
+01
+20
+20
+7c
+ae
+70
+43
+dc
+04
+58
+00
+00
+ff
+60
+01
+c3
+e2
+d8
+40
+00
+00
+20
+40
+03
+01
+20
+20
+7c
+ae
+68
+00
+c3
+f9
+98
+40
+fe
+00
+1f
+e0
+fe
+0b
+1f
+e6
+7c
+1f
+24
+21
+03
+11
+60
+00
+c3
+d9
+d8
+a0
+43
+e5
+18
+42
+7e
+00
+24
+5a
+03
+0e
+68
+00
+c3
+f9
+1f
+e2
+72
+00
+d8
+c0
+43
+fa
+20
+20
+7e
+45
+1f
+e2
+72
+00
+d8
+c0
+4d
+6b
+20
+20
+7e
+45
+68
+00
+c3
+f9
+1f
+e0
+fe
+0b
+60
+00
+c3
+d9
+20
+60
+00
+00
+20
+40
+3e
+ff
+20
+40
+7c
+d5
+70
+01
+77
+06
+20
+20
+7c
+97
+20
+40
+3b
+fa
+20
+40
+4d
+98
+20
+40
+5b
+62
+70
+01
+77
+06
+68
+00
+c7
+dc
+c0
+00
+03
+20
+70
+01
+77
+17
+70
+42
+5e
+01
+20
+20
+7c
+a2
+68
+01
+47
+f4
+c2
+84
+bf
+90
+c2
+80
+03
+2b
+c2
+83
+fc
+d5
+c5
+11
+86
+e0
+70
+43
+d8
+00
+20
+40
+3f
+7e
+70
+0b
+7d
+37
+20
+20
+7c
+27
+20
+40
+3e
+ff
+20
+40
+7c
+d5
+20
+20
+3f
+77
+20
+40
+3b
+36
+20
+20
+3c
+dc
+20
+40
+03
+32
+20
+20
+30
+2c
+da
+60
+03
+34
+20
+20
+33
+01
+c3
+00
+b3
+07
+20
+40
+33
+3d
+20
+40
+03
+41
+98
+46
+7e
+00
+1f
+e0
+fe
+01
+20
+21
+03
+3b
+20
+20
+33
+25
+98
+00
+24
+00
+1a
+20
+8c
+02
+e8
+c1
+00
+00
+20
+3a
+33
+27
+20
+40
+33
+49
+20
+20
+03
+35
+1f
+f1
+16
+00
+19
+6c
+96
+00
+20
+22
+83
+4b
+29
+60
+1e
+0f
+24
+60
+80
+00
+18
+51
+16
+00
+19
+6c
+96
+00
+24
+62
+80
+00
+79
+20
+04
+1c
+20
+60
+00
+00
+18
+51
+16
+00
+19
+6c
+96
+00
+29
+60
+1e
+0f
+24
+60
+80
+00
+79
+20
+7e
+1c
+20
+60
+00
+00
+60
+0c
+02
+a0
+20
+40
+7e
+53
+68
+0c
+02
+a0
+20
+20
+30
+7c
+78
+54
+7c
+00
+68
+01
+00
+32
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+02
+00
+34
+20
+38
+03
+5e
+9d
+06
+7e
+00
+20
+20
+03
+5f
+9c
+46
+7e
+00
+1f
+e6
+7c
+04
+24
+61
+00
+00
+18
+00
+7e
+00
+60
+01
+00
+32
+20
+20
+34
+df
+70
+0b
+7d
+20
+20
+40
+7c
+27
+20
+20
+03
+68
+60
+0a
+00
+34
+70
+47
+48
+01
+58
+00
+ff
+ff
+60
+01
+00
+32
+70
+00
+73
+01
+20
+60
+00
+00
+20
+40
+3b
+aa
+20
+40
+03
+70
+20
+20
+32
+67
+1c
+40
+c2
+01
+20
+40
+3a
+54
+18
+00
+48
+03
+20
+40
+3a
+42
+20
+40
+3b
+ae
+20
+40
+3b
+b4
+20
+40
+3b
+c5
+20
+20
+37
+5c
+20
+40
+3e
+25
+20
+40
+6d
+ec
+20
+40
+35
+d6
+20
+20
+34
+80
+20
+40
+3d
+61
+20
+40
+3b
+e2
+20
+21
+34
+98
+20
+40
+32
+04
+24
+34
+34
+98
+20
+40
+38
+12
+24
+3a
+03
+79
+20
+60
+00
+00
+20
+40
+32
+df
+24
+22
+b5
+68
+68
+00
+80
+47
+c3
+01
+b5
+71
+68
+00
+c1
+65
+c0
+09
+b5
+62
+68
+01
+4c
+43
+1f
+e6
+7c
+14
+24
+21
+35
+62
+60
+01
+00
+91
+68
+00
+cc
+42
+60
+00
+80
+90
+58
+00
+4c
+45
+60
+01
+01
+79
+20
+20
+35
+62
+68
+01
+00
+91
+60
+01
+4c
+43
+1f
+e6
+7c
+14
+24
+21
+35
+8f
+98
+00
+72
+00
+68
+00
+80
+90
+60
+00
+cc
+42
+68
+01
+01
+79
+98
+00
+0c
+00
+d8
+a0
+4c
+45
+20
+40
+7e
+45
+20
+20
+35
+8f
+68
+01
+02
+cd
+20
+3a
+4d
+fc
+68
+00
+82
+cf
+c0
+00
+83
+a4
+20
+20
+4d
+bb
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+20
+4d
+c3
+e8
+c0
+80
+00
+c0
+05
+03
+aa
+20
+20
+4e
+14
+e8
+c0
+80
+00
+1f
+e2
+0e
+00
+e8
+c1
+00
+00
+1f
+e2
+22
+00
+1a
+62
+7e
+00
+9a
+26
+26
+00
+58
+00
+00
+0b
+e0
+a0
+80
+00
+18
+e2
+7e
+00
+e0
+a0
+80
+00
+e8
+c1
+00
+00
+c0
+01
+03
+b8
+c0
+01
+83
+bf
+20
+20
+3b
+f1
+58
+02
+00
+08
+e0
+a3
+00
+00
+58
+00
+02
+00
+e0
+a2
+00
+00
+18
+00
+7e
+0c
+9a
+40
+a4
+00
+20
+20
+4e
+20
+58
+03
+00
+0c
+e0
+a3
+00
+00
+58
+00
+00
+06
+e0
+a4
+00
+00
+18
+00
+7e
+10
+9a
+40
+a4
+00
+20
+20
+4e
+20
+20
+40
+52
+c4
+18
+00
+24
+00
+20
+40
+52
+d0
+1f
+e2
+0a
+00
+68
+01
+02
+cd
+1f
+e2
+26
+00
+68
+01
+02
+cb
+98
+00
+0c
+00
+20
+40
+03
+d0
+20
+20
+51
+10
+e8
+c0
+80
+00
+c0
+05
+03
+d3
+20
+20
+51
+16
+e8
+c0
+80
+00
+1f
+e2
+0e
+00
+e8
+c1
+00
+00
+1f
+e2
+22
+00
+e8
+c1
+00
+00
+60
+01
+02
+a0
+1a
+62
+7e
+00
+9a
+26
+26
+00
+20
+40
+52
+d0
+58
+00
+00
+0b
+e0
+a0
+80
+00
+18
+e2
+7e
+00
+e0
+a0
+80
+00
+68
+01
+02
+a0
+20
+20
+03
+b5
+da
+40
+00
+00
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+20
+52
+4d
+68
+01
+02
+cb
+1f
+e2
+0c
+00
+e8
+c0
+80
+00
+1f
+e1
+04
+0f
+1f
+f1
+fe
+00
+c0
+05
+03
+f9
+c0
+02
+83
+f7
+c0
+00
+83
+f0
+c0
+02
+4b
+18
+20
+20
+4a
+ff
+18
+42
+7e
+00
+c0
+02
+cb
+09
+70
+4c
+be
+01
+c0
+01
+cb
+18
+70
+4c
+be
+00
+c0
+02
+4b
+18
+20
+60
+00
+00
+20
+40
+03
+f9
+20
+20
+4b
+11
+e8
+c0
+80
+00
+c0
+00
+84
+52
+20
+60
+00
+00
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+40
+04
+00
+20
+20
+6d
+fd
+68
+00
+c1
+32
+c1
+00
+80
+00
+68
+00
+c3
+cd
+20
+7a
+00
+00
+1f
+e2
+22
+00
+70
+43
+cd
+00
+1a
+22
+7e
+00
+c0
+28
+4d
+dc
+20
+60
+00
+00
+68
+00
+80
+7d
+c0
+01
+84
+0d
+c0
+03
+84
+18
+20
+20
+5b
+92
+68
+00
+84
+df
+60
+00
+84
+45
+c0
+09
+83
+64
+c0
+19
+84
+12
+20
+20
+5c
+58
+68
+00
+84
+4d
+79
+20
+7e
+00
+60
+00
+84
+4d
+70
+0b
+7d
+01
+20
+40
+7c
+27
+20
+20
+5c
+83
+68
+00
+84
+df
+60
+00
+84
+46
+20
+20
+5c
+f3
+78
+54
+7c
+00
+20
+40
+61
+d9
+68
+00
+80
+48
+20
+7a
+00
+00
+c2
+83
+df
+10
+c0
+01
+04
+23
+c0
+03
+84
+30
+20
+20
+5e
+e0
+18
+00
+7e
+11
+20
+40
+61
+b5
+68
+00
+80
+49
+1f
+e2
+04
+00
+c0
+00
+04
+2b
+c0
+07
+04
+2b
+c0
+0e
+04
+2b
+20
+60
+00
+00
+e0
+a0
+80
+00
+68
+00
+c7
+02
+e0
+a0
+80
+00
+58
+00
+00
+0e
+20
+20
+5f
+a6
+20
+40
+60
+55
+70
+00
+72
+64
+20
+60
+00
+00
+68
+00
+80
+7c
+20
+3a
+04
+38
+20
+40
+61
+d9
+68
+00
+80
+7c
+24
+7a
+00
+00
+68
+00
+80
+55
+20
+7a
+00
+00
+c0
+03
+04
+47
+c0
+08
+04
+3d
+20
+20
+62
+3e
+68
+00
+c7
+48
+c1
+00
+00
+00
+c0
+00
+84
+45
+d8
+e0
+00
+0a
+20
+40
+7e
+53
+24
+7a
+00
+00
+70
+47
+48
+00
+20
+20
+62
+9b
+20
+74
+80
+00
+20
+20
+04
+47
+68
+00
+81
+77
+c2
+81
+62
+9b
+c2
+80
+04
+4a
+68
+00
+c2
+5e
+20
+3a
+62
+c7
+68
+00
+84
+4d
+c4
+01
+80
+00
+c4
+01
+00
+00
+68
+02
+04
+65
+d8
+40
+03
+20
+20
+20
+62
+c2
+e8
+c0
+80
+00
+60
+00
+cc
+b7
+20
+60
+00
+00
+20
+40
+54
+bd
+68
+08
+80
+17
+20
+40
+3a
+82
+20
+40
+3a
+87
+78
+28
+7c
+00
+d9
+60
+15
+7c
+20
+20
+54
+7f
+70
+44
+3e
+01
+70
+44
+3f
+00
+20
+20
+53
+4e
+20
+40
+53
+dd
+20
+40
+04
+62
+20
+20
+54
+c1
+20
+36
+81
+f5
+20
+40
+53
+ee
+20
+20
+3a
+91
+68
+00
+cc
+60
+60
+02
+46
+f9
+68
+00
+c4
+db
+c0
+00
+84
+6a
+20
+20
+54
+e0
+70
+44
+db
+00
+20
+20
+54
+ef
+68
+00
+83
+c0
+c4
+02
+80
+00
+68
+01
+03
+da
+68
+09
+03
+e0
+98
+46
+7e
+00
+24
+61
+00
+00
+20
+20
+55
+7e
+68
+00
+83
+d7
+c3
+82
+80
+00
+68
+00
+83
+41
+20
+3a
+56
+26
+20
+20
+58
+90
+68
+00
+c4
+40
+c0
+03
+84
+8f
+c0
+07
+84
+93
+c0
+03
+04
+82
+c0
+01
+04
+7f
+c0
+09
+84
+8f
+20
+20
+56
+3a
+58
+00
+00
+0a
+60
+01
+03
+ef
+20
+20
+56
+93
+70
+0b
+7d
+12
+20
+40
+7c
+33
+18
+00
+04
+01
+20
+34
+d8
+92
+70
+0b
+7d
+34
+20
+40
+7c
+27
+68
+00
+cc
+69
+c0
+01
+04
+8b
+20
+20
+04
+8d
+70
+0b
+7d
+46
+20
+40
+56
+20
+18
+00
+04
+01
+20
+20
+58
+92
+68
+00
+cc
+68
+e0
+a0
+80
+00
+18
+00
+04
+02
+20
+20
+58
+92
+18
+a0
+8b
+ff
+68
+04
+4c
+6c
+e0
+a4
+00
+00
+e8
+c4
+00
+00
+e0
+a4
+00
+00
+18
+00
+02
+02
+20
+20
+58
+8a
+68
+00
+c4
+44
+c0
+04
+d7
+19
+c0
+01
+04
+9f
+c0
+03
+d7
+0d
+20
+20
+56
+56
+59
+00
+03
+02
+60
+01
+c4
+b5
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+01
+00
+10
+20
+20
+56
+f0
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+20
+23
+37
+5c
+78
+36
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+20
+54
+af
+e8
+c1
+80
+00
+60
+01
+83
+f9
+c0
+29
+04
+b6
+c0
+01
+04
+cd
+c0
+09
+04
+bc
+20
+20
+59
+07
+70
+4d
+38
+01
+68
+01
+03
+fa
+c0
+10
+84
+ba
+20
+20
+59
+ed
+d8
+c0
+03
+49
+20
+20
+04
+52
+68
+01
+03
+fa
+1f
+e6
+7c
+21
+20
+42
+84
+ba
+68
+01
+03
+fa
+1f
+e6
+7c
+2d
+20
+42
+84
+cb
+68
+01
+03
+fa
+68
+09
+4c
+bc
+18
+40
+84
+01
+98
+46
+7c
+00
+20
+22
+84
+c8
+20
+20
+59
+ca
+70
+0b
+7d
+34
+20
+40
+7c
+27
+20
+20
+59
+ca
+70
+41
+31
+01
+20
+60
+00
+00
+70
+0b
+7d
+03
+20
+20
+56
+20
+68
+00
+c4
+44
+c0
+0d
+86
+09
+c0
+0e
+86
+09
+c0
+08
+85
+9f
+c0
+04
+85
+51
+c0
+02
+85
+3f
+c0
+03
+84
+f3
+c0
+09
+d8
+5c
+c0
+01
+84
+e0
+c0
+05
+84
+e3
+c0
+06
+84
+db
+20
+20
+56
+66
+68
+01
+03
+fa
+c0
+03
+84
+de
+20
+20
+57
+d6
+70
+03
+fc
+07
+20
+20
+57
+29
+68
+01
+4c
+6a
+e0
+a1
+00
+00
+20
+20
+58
+8a
+68
+01
+03
+fa
+c0
+16
+04
+e7
+c0
+07
+04
+ea
+20
+20
+57
+c6
+68
+00
+cd
+7e
+20
+3a
+57
+28
+20
+20
+57
+c6
+68
+00
+cc
+69
+c0
+80
+57
+c6
+68
+00
+cc
+7c
+c0
+01
+d7
+c6
+18
+a2
+04
+00
+70
+4c
+69
+01
+18
+42
+0a
+00
+70
+03
+fc
+05
+20
+20
+57
+29
+20
+40
+57
+7b
+20
+74
+00
+00
+68
+09
+44
+c0
+58
+00
+18
+12
+98
+46
+7c
+00
+20
+22
+85
+0c
+58
+00
+18
+0f
+98
+46
+7c
+00
+20
+22
+85
+0e
+58
+00
+18
+0a
+98
+46
+7c
+00
+20
+22
+85
+12
+58
+00
+18
+01
+98
+46
+7c
+00
+20
+22
+85
+10
+20
+20
+57
+54
+68
+00
+cc
+7f
+d8
+40
+00
+00
+f9
+20
+04
+00
+98
+41
+7e
+00
+c0
+80
+57
+28
+68
+00
+cc
+7f
+f9
+20
+7e
+00
+60
+00
+cc
+7f
+20
+20
+05
+14
+d8
+e0
+00
+00
+20
+20
+05
+03
+d8
+e0
+00
+01
+20
+20
+05
+03
+d8
+e0
+00
+03
+20
+20
+05
+03
+d8
+e0
+00
+02
+20
+20
+05
+03
+68
+01
+44
+c0
+1f
+e2
+22
+00
+68
+09
+44
+c4
+18
+42
+24
+00
+20
+40
+05
+1b
+20
+22
+85
+26
+20
+20
+57
+28
+d8
+c0
+45
+04
+e8
+c1
+00
+00
+20
+7a
+00
+00
+e8
+c1
+80
+00
+e8
+c1
+00
+00
+9a
+26
+7c
+00
+20
+62
+80
+00
+18
+c0
+8d
+fd
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+05
+1c
+18
+c0
+8d
+f9
+e8
+c1
+00
+00
+60
+01
+4c
+61
+20
+40
+05
+34
+20
+3a
+57
+28
+18
+c0
+8d
+fc
+e8
+c1
+00
+00
+1f
+e0
+ff
+ff
+60
+01
+4c
+63
+70
+44
+44
+07
+68
+02
+4c
+61
+60
+02
+44
+45
+18
+00
+04
+09
+20
+20
+58
+92
+e8
+c1
+00
+00
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+e8
+c1
+00
+00
+20
+7a
+00
+00
+e8
+c1
+00
+00
+9a
+46
+7c
+00
+20
+62
+80
+00
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+05
+37
+d9
+60
+00
+03
+18
+00
+7e
+01
+60
+00
+c4
+45
+20
+40
+5a
+74
+20
+40
+5a
+7d
+20
+3a
+57
+46
+24
+21
+05
+4f
+78
+54
+7c
+00
+e0
+a1
+00
+00
+e8
+c1
+00
+00
+e0
+a1
+00
+00
+19
+60
+97
+ff
+20
+22
+d7
+46
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+05
+43
+18
+c0
+8c
+02
+20
+20
+05
+4c
+68
+09
+44
+c0
+58
+00
+2a
+00
+98
+46
+7c
+00
+20
+22
+85
+91
+58
+00
+2a
+50
+98
+46
+7c
+00
+20
+22
+85
+9c
+58
+00
+28
+03
+98
+46
+7c
+00
+24
+22
+d7
+28
+68
+01
+44
+bc
+60
+01
+02
+a0
+78
+34
+7c
+00
+20
+40
+05
+e3
+24
+21
+05
+6d
+68
+09
+02
+a0
+20
+40
+05
+eb
+c0
+00
+85
+6d
+20
+40
+05
+e7
+24
+22
+85
+6b
+78
+54
+7c
+00
+20
+40
+05
+6f
+20
+40
+05
+d1
+20
+40
+05
+eb
+20
+40
+05
+77
+20
+20
+05
+6d
+20
+40
+05
+d1
+20
+20
+05
+5e
+20
+34
+57
+28
+20
+20
+06
+07
+68
+01
+02
+a0
+60
+01
+44
+46
+68
+00
+cc
+67
+1f
+e2
+72
+00
+20
+40
+06
+01
+d8
+a0
+44
+48
+20
+40
+7e
+45
+20
+20
+06
+04
+68
+09
+4c
+65
+18
+4c
+fe
+00
+c0
+82
+85
+89
+20
+40
+05
+fe
+68
+01
+02
+a0
+e0
+a1
+00
+00
+20
+40
+06
+04
+58
+00
+45
+04
+98
+40
+8c
+00
+e8
+c0
+80
+00
+18
+c2
+04
+00
+1f
+e2
+72
+00
+1f
+e0
+fe
+05
+60
+00
+c4
+45
+20
+40
+05
+fe
+18
+42
+0c
+00
+20
+40
+7e
+45
+20
+20
+06
+04
+20
+40
+05
+fe
+68
+01
+02
+a0
+e0
+a1
+00
+00
+68
+01
+4c
+65
+e0
+a1
+00
+00
+20
+40
+06
+04
+70
+44
+45
+07
+20
+60
+00
+00
+20
+40
+5b
+08
+e8
+c0
+80
+00
+1f
+e2
+72
+00
+1f
+e0
+fe
+02
+60
+00
+c4
+45
+18
+c0
+8d
+fb
+e8
+c1
+00
+00
+e0
+a1
+00
+00
+18
+c0
+8c
+03
+20
+40
+7e
+45
+20
+20
+58
+8a
+d8
+40
+2a
+50
+20
+40
+5b
+0c
+20
+20
+05
+92
+d9
+60
+00
+02
+68
+01
+44
+bc
+60
+01
+02
+a0
+70
+0d
+5c
+00
+78
+34
+7c
+00
+20
+40
+05
+e3
+24
+21
+05
+c7
+68
+09
+02
+a0
+20
+40
+05
+eb
+c0
+00
+85
+ca
+20
+40
+05
+e7
+24
+22
+85
+c3
+68
+00
+8d
+5c
+c0
+00
+85
+ca
+24
+34
+05
+b4
+78
+54
+7c
+00
+68
+00
+cc
+67
+1f
+e0
+fe
+04
+60
+00
+c4
+45
+20
+40
+06
+04
+20
+20
+05
+be
+68
+00
+cc
+67
+1f
+e6
+7c
+10
+20
+22
+85
+ca
+68
+00
+c4
+45
+1f
+e6
+7c
+10
+20
+22
+85
+ca
+68
+01
+02
+a0
+1f
+e0
+ff
+ff
+60
+01
+0d
+5a
+20
+40
+05
+da
+68
+01
+02
+a0
+60
+01
+0d
+58
+20
+40
+05
+d5
+19
+60
+97
+ff
+20
+22
+85
+c5
+20
+40
+05
+d1
+20
+20
+05
+a4
+70
+0d
+5c
+01
+20
+20
+05
+c3
+68
+01
+02
+a0
+60
+01
+0d
+5a
+20
+20
+05
+ce
+68
+01
+02
+a0
+1f
+e0
+ff
+ff
+60
+01
+0d
+5a
+20
+20
+05
+ce
+20
+34
+57
+28
+20
+40
+05
+da
+20
+20
+06
+07
+68
+09
+02
+a0
+18
+40
+84
+01
+60
+09
+02
+a0
+20
+60
+00
+00
+68
+00
+cc
+67
+60
+00
+81
+03
+1f
+e2
+72
+00
+20
+40
+06
+01
+20
+20
+7e
+45
+20
+40
+05
+fe
+68
+01
+0d
+58
+e0
+a1
+00
+00
+68
+01
+0d
+5a
+e0
+a1
+00
+00
+68
+00
+81
+03
+1f
+e2
+72
+00
+20
+40
+7e
+45
+20
+20
+06
+04
+68
+09
+02
+a0
+68
+01
+44
+be
+98
+46
+7c
+00
+20
+60
+00
+00
+68
+01
+44
+c0
+68
+09
+4c
+65
+98
+46
+7c
+00
+20
+60
+00
+00
+d8
+c0
+45
+04
+18
+42
+22
+00
+e8
+c1
+00
+00
+20
+3a
+05
+f6
+e8
+c9
+00
+00
+60
+09
+4c
+65
+9a
+26
+7c
+00
+20
+22
+85
+f8
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+05
+ed
+58
+00
+00
+01
+20
+60
+00
+00
+e8
+c0
+80
+00
+60
+00
+cc
+67
+18
+c2
+7e
+00
+60
+01
+02
+b7
+58
+00
+00
+00
+20
+60
+00
+00
+68
+01
+02
+b9
+1f
+e2
+0a
+00
+20
+60
+00
+00
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+60
+00
+00
+18
+a2
+7e
+00
+60
+01
+02
+b9
+20
+60
+00
+00
+20
+40
+05
+fe
+20
+20
+58
+8a
+68
+00
+cb
+ab
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+ab
+1f
+ef
+fe
+07
+d8
+c0
+4b
+ad
+98
+c0
+8c
+00
+68
+00
+cc
+82
+1f
+e0
+ff
+fb
+1f
+e2
+72
+00
+d8
+a0
+44
+45
+20
+40
+7e
+45
+68
+08
+cc
+82
+20
+20
+58
+92
+20
+40
+56
+1c
+20
+20
+58
+b0
+1a
+62
+7e
+00
+c0
+01
+86
+29
+c0
+05
+06
+2d
+c0
+00
+06
+24
+c0
+09
+06
+2b
+c0
+01
+06
+2f
+1f
+e6
+7c
+0d
+20
+21
+58
+c0
+60
+00
+cc
+68
+70
+0b
+7d
+27
+20
+20
+56
+20
+20
+40
+59
+24
+68
+01
+44
+37
+1f
+ef
+84
+04
+60
+09
+4d
+4f
+20
+60
+00
+00
+70
+4c
+7c
+00
+20
+20
+59
+38
+70
+0b
+7d
+33
+20
+20
+56
+20
+70
+0b
+7d
+2b
+20
+20
+56
+20
+58
+00
+00
+14
+60
+01
+03
+ef
+20
+60
+00
+00
+68
+00
+c4
+3e
+28
+20
+06
+01
+20
+20
+86
+36
+20
+20
+58
+a7
+68
+00
+c4
+3f
+20
+3a
+06
+39
+20
+20
+58
+a7
+68
+00
+c4
+3e
+79
+3f
+fe
+04
+60
+00
+c4
+3e
+20
+60
+00
+00
+e8
+c0
+80
+00
+c0
+00
+86
+44
+c0
+02
+06
+4a
+c0
+04
+86
+42
+20
+20
+58
+f8
+70
+4c
+69
+03
+20
+20
+59
+74
+70
+4d
+3d
+01
+60
+00
+c4
+ae
+e8
+c3
+00
+00
+e0
+a3
+00
+00
+70
+0b
+7d
+42
+20
+20
+56
+20
+20
+40
+74
+a8
+20
+22
+86
+4d
+20
+20
+59
+68
+70
+4c
+69
+02
+20
+20
+59
+6a
+70
+4c
+7d
+00
+20
+40
+3f
+86
+20
+40
+3f
+7e
+20
+40
+3f
+a4
+20
+20
+3e
+cc
+70
+42
+13
+00
+70
+44
+8b
+00
+70
+4c
+7c
+00
+70
+4c
+69
+00
+70
+4c
+7f
+00
+70
+4c
+7d
+00
+20
+20
+3e
+d0
+58
+00
+00
+00
+60
+02
+4b
+a9
+20
+60
+00
+00
+c6
+91
+80
+00
+68
+02
+4d
+40
+60
+02
+4d
+72
+20
+40
+06
+84
+24
+34
+06
+77
+70
+4c
+15
+0a
+20
+40
+06
+ad
+68
+00
+cb
+ef
+c1
+ff
+80
+00
+70
+4c
+3d
+02
+68
+00
+cd
+45
+24
+7a
+00
+00
+20
+40
+01
+c4
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+68
+01
+cd
+7a
+20
+40
+7e
+8a
+60
+0a
+41
+fc
+20
+20
+3c
+da
+20
+40
+01
+c4
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+68
+00
+cc
+15
+24
+3a
+06
+73
+68
+02
+4d
+72
+20
+20
+06
+74
+68
+00
+cb
+ef
+c0
+ff
+86
+fe
+20
+40
+06
+8b
+20
+54
+06
+a9
+20
+54
+07
+68
+70
+4b
+e6
+01
+20
+60
+00
+00
+78
+54
+7c
+00
+70
+4b
+e2
+02
+68
+00
+cd
+57
+c0
+02
+06
+97
+c0
+02
+86
+9a
+c0
+03
+86
+a0
+c0
+03
+06
+9d
+c0
+04
+06
+a4
+c0
+04
+86
+a6
+68
+00
+cd
+45
+24
+5a
+34
+df
+20
+60
+00
+00
+70
+4d
+57
+00
+70
+4b
+e1
+0a
+20
+20
+06
+a2
+70
+4d
+57
+03
+70
+4b
+e1
+04
+20
+20
+06
+a2
+70
+4d
+57
+02
+70
+4b
+e1
+03
+20
+20
+06
+a2
+70
+4b
+e2
+01
+70
+4b
+e1
+08
+70
+4b
+e7
+00
+20
+20
+34
+df
+70
+4d
+57
+04
+20
+20
+06
+a7
+70
+4d
+57
+05
+70
+4b
+e1
+09
+20
+20
+06
+a2
+df
+20
+00
+09
+d8
+c0
+4d
+57
+d8
+a0
+0c
+d5
+20
+20
+7e
+45
+70
+4b
+e8
+00
+20
+40
+06
+d2
+24
+37
+86
+bb
+20
+40
+06
+e3
+68
+00
+cb
+e0
+1f
+e0
+fe
+01
+60
+00
+cb
+e0
+70
+4d
+45
+00
+68
+00
+cb
+ef
+c0
+ff
+86
+d1
+20
+40
+06
+cd
+70
+4b
+e7
+00
+70
+4b
+e6
+00
+20
+60
+00
+00
+70
+4d
+45
+01
+68
+00
+cb
+e7
+1f
+e0
+fe
+01
+60
+00
+cb
+e7
+68
+00
+cb
+ef
+c0
+ff
+86
+de
+68
+00
+cb
+e7
+c0
+7f
+86
+e0
+68
+00
+cb
+e7
+d8
+40
+00
+10
+98
+46
+7c
+00
+20
+21
+07
+87
+68
+00
+cb
+e8
+1f
+e0
+fe
+01
+60
+00
+cb
+e8
+20
+00
+00
+0a
+c0
+82
+06
+ae
+20
+20
+07
+87
+58
+00
+00
+00
+60
+04
+8c
+d5
+60
+04
+cd
+57
+20
+60
+00
+00
+20
+20
+07
+18
+78
+57
+fc
+00
+20
+40
+07
+df
+20
+00
+04
+b0
+18
+00
+2a
+00
+68
+02
+4c
+00
+98
+00
+12
+00
+68
+08
+80
+17
+20
+40
+3a
+82
+20
+40
+3a
+87
+20
+40
+07
+9f
+20
+57
+87
+d9
+20
+60
+00
+00
+70
+4d
+45
+00
+20
+60
+00
+00
+70
+4d
+45
+00
+70
+0b
+7d
+32
+20
+20
+7c
+27
+20
+40
+07
+4d
+68
+00
+8c
+b3
+c1
+81
+00
+00
+68
+00
+cb
+df
+20
+7a
+00
+00
+98
+00
+72
+00
+d8
+c0
+0c
+b5
+d8
+a0
+0d
+17
+20
+40
+7e
+45
+68
+00
+8c
+b4
+2f
+e1
+f0
+08
+24
+60
+80
+00
+68
+00
+8c
+b5
+c0
+7f
+86
+f3
+60
+00
+cc
+b7
+20
+60
+00
+00
+70
+4d
+7d
+01
+20
+60
+00
+00
+79
+20
+00
+23
+20
+40
+06
+fa
+20
+40
+06
+b7
+70
+4b
+ef
+01
+20
+60
+00
+00
+70
+4b
+e0
+00
+70
+4b
+e9
+4e
+68
+02
+4b
+eb
+20
+20
+07
+5a
+20
+40
+06
+fa
+68
+00
+cb
+e6
+c0
+00
+b4
+df
+68
+00
+cb
+ef
+c0
+00
+87
+06
+c0
+01
+07
+09
+c0
+01
+87
+0c
+20
+20
+3b
+f1
+70
+4b
+ef
+11
+70
+0d
+37
+aa
+20
+20
+07
+0e
+70
+4b
+ef
+12
+70
+0d
+37
+55
+20
+20
+07
+0e
+70
+4b
+ef
+13
+70
+0d
+37
+22
+70
+0d
+38
+02
+68
+02
+4c
+06
+60
+02
+0d
+39
+70
+0d
+3d
+00
+da
+20
+0d
+37
+d8
+40
+00
+07
+20
+40
+07
+48
+20
+40
+07
+68
+20
+40
+06
+89
+20
+20
+34
+df
+68
+00
+cb
+ef
+c1
+7f
+80
+00
+c0
+08
+87
+1e
+c0
+09
+07
+20
+c0
+09
+87
+22
+20
+60
+00
+00
+70
+4b
+ef
+02
+20
+20
+06
+b7
+70
+4b
+ef
+03
+20
+20
+06
+b7
+70
+4b
+ef
+ff
+70
+0b
+7d
+31
+20
+40
+7c
+27
+68
+02
+0d
+19
+20
+40
+07
+5a
+20
+20
+06
+b7
+79
+20
+00
+23
+20
+40
+07
+5b
+20
+40
+07
+87
+68
+00
+cb
+ef
+c1
+ff
+80
+00
+20
+40
+07
+3a
+58
+00
+00
+00
+60
+01
+4c
+04
+20
+40
+3c
+ab
+20
+00
+07
+d0
+68
+00
+cc
+04
+c0
+7f
+86
+e0
+20
+40
+06
+d2
+24
+37
+87
+43
+20
+40
+06
+cd
+79
+20
+00
+23
+70
+0b
+7d
+3c
+20
+20
+7c
+27
+70
+0d
+37
+ff
+68
+00
+cb
+e2
+60
+00
+8d
+38
+68
+02
+4c
+06
+60
+02
+0d
+39
+d8
+40
+00
+06
+da
+20
+0d
+37
+20
+40
+07
+48
+20
+20
+07
+68
+68
+01
+4c
+04
+1f
+e0
+fe
+01
+60
+01
+4c
+04
+20
+40
+07
+87
+20
+20
+07
+30
+60
+08
+cb
+e1
+18
+42
+72
+00
+d8
+a0
+0c
+d5
+1a
+22
+0c
+00
+20
+20
+7e
+45
+68
+00
+8c
+b4
+1f
+e9
+7e
+00
+60
+00
+cb
+df
+20
+60
+00
+00
+68
+08
+cc
+3c
+58
+00
+4c
+2b
+98
+40
+8a
+00
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+cc
+3c
+20
+60
+00
+00
+60
+02
+4c
+00
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+4c
+00
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+07
+5e
+1a
+22
+7e
+00
+60
+01
+4c
+16
+68
+00
+cc
+16
+68
+08
+cc
+17
+98
+40
+fe
+00
+60
+00
+cc
+18
+20
+60
+00
+00
+68
+00
+cb
+e1
+1f
+e0
+fe
+02
+60
+00
+cb
+e3
+68
+00
+cb
+e2
+60
+00
+8c
+f5
+68
+00
+cb
+e1
+1f
+e9
+fe
+00
+68
+08
+cb
+e0
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+cc
+0a
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+cb
+ef
+c0
+ff
+87
+7a
+68
+00
+cb
+e2
+e0
+a0
+80
+00
+68
+00
+cb
+e1
+98
+00
+72
+00
+68
+00
+cb
+e2
+c0
+00
+87
+85
+d8
+c0
+0c
+d5
+20
+40
+7e
+45
+68
+00
+8c
+d5
+c0
+01
+87
+83
+20
+60
+00
+00
+70
+0c
+d5
+02
+20
+60
+00
+00
+d8
+c0
+0c
+d6
+20
+20
+7e
+45
+68
+08
+cb
+ea
+20
+40
+07
+8d
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+ea
+20
+60
+00
+00
+68
+00
+cc
+00
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+4b
+f0
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+cb
+e9
+20
+60
+00
+00
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+cb
+e9
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+07
+96
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+4b
+e4
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+07
+d9
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+cc
+19
+68
+08
+cc
+18
+98
+46
+7c
+00
+24
+22
+87
+d9
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+8c
+b3
+68
+00
+8c
+b3
+68
+08
+cb
+e2
+a8
+40
+0e
+00
+24
+20
+87
+d9
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+87
+c3
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+07
+bf
+18
+a2
+22
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+cc
+2a
+1a
+22
+0a
+00
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+23
+07
+d9
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+3a
+b6
+78
+46
+fc
+00
+20
+40
+3a
+7a
+68
+00
+cc
+2a
+1f
+e2
+22
+00
+20
+20
+07
+51
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+20
+37
+5c
+20
+40
+3a
+7a
+68
+08
+cb
+e9
+20
+20
+3a
+91
+20
+40
+53
+d2
+68
+02
+4c
+00
+98
+00
+12
+00
+20
+40
+07
+96
+20
+40
+07
+dc
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+cc
+18
+08
+00
+86
+08
+68
+00
+cb
+e3
+98
+00
+72
+00
+d8
+c0
+0c
+f5
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+07
+f5
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+20
+3a
+7a
+1e
+4d
+aa
+55
+1c
+3e
+02
+05
+df
+02
+02
+ab
+e8
+64
+80
+f8
+e9
+33
+e8
+33
+60
+11
+04
+60
+f0
+ed
+33
+ec
+33
+70
+09
+e8
+fc
+e9
+fd
+ea
+fe
+eb
+ff
+22
+04
+60
+de
+d3
+eb
+9f
+ea
+9e
+e9
+9d
+e8
+c2
+e7
+8c
+f0
+c2
+f7
+95
+f0
+40
+0c
+e8
+cc
+f8
+e9
+cd
+f9
+ea
+ce
+fa
+eb
+cf
+fb
+12
+02
+76
+85
+d0
+f0
+58
+04
+70
+03
+20
+d5
+b3
+e8
+04
+70
+07
+50
+02
+b2
+d5
+02
+02
+b5
+92
+d5
+ec
+04
+60
+f7
+e4
+cc
+c0
+e0
+c3
+98
+f8
+60
+3b
+94
+18
+60
+08
+40
+0d
+d0
+e0
+fb
+02
+02
+8d
+e4
+fb
+fa
+c9
+fc
+80
+28
+e8
+30
+e4
+06
+e4
+c9
+fb
+e4
+ca
+fc
+e8
+30
+e3
+05
+e4
+c9
+ca
+cb
+fc
+e8
+54
+07
+60
+10
+f8
+c3
+e9
+13
+f9
+ea
+13
+fa
+eb
+13
+fb
+ec
+13
+fc
+d8
+f1
+30
+f5
+2f
+c3
+e4
+9c
+fc
+ef
+9b
+ff
+ee
+9a
+fe
+ed
+99
+fd
+d0
+e0
+fb
+ef
+4e
+4d
+4c
+70
+12
+22
+db
+03
+02
+02
+b2
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ed
+30
+e7
+eb
+02
+02
+8d
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+d0
+e0
+fb
+50
+13
+0b
+bb
+00
+03
+02
+02
+b5
+ed
+13
+fd
+ee
+13
+fe
+ef
+13
+ff
+ec
+13
+fc
+02
+02
+8d
+ec
+4d
+60
+11
+e8
+49
+70
+17
+ed
+33
+ec
+33
+04
+60
+0d
+e4
+fc
+ff
+fe
+fd
+22
+e9
+33
+e8
+33
+04
+70
+f8
+02
+02
+ab
+12
+02
+76
+58
+04
+60
+09
+e4
+cc
+24
+81
+50
+06
+28
+50
+09
+02
+02
+b5
+28
+40
+03
+02
+02
+b2
+c0
+e0
+eb
+4a
+70
+44
+b9
+80
+06
+d0
+e0
+fb
+02
+02
+a1
+ef
+4e
+70
+1c
+bd
+80
+08
+eb
+ff
+ea
+fe
+e9
+fd
+80
+eb
+e9
+8d
+f0
+a4
+fe
+e5
+f0
+02
+01
+e4
+e9
+cd
+f9
+ea
+fe
+eb
+ff
+ef
+89
+f0
+a4
+fc
+e5
+f0
+ce
+89
+f0
+a4
+2e
+ff
+e4
+35
+f0
+cd
+89
+f0
+a4
+2d
+fe
+e4
+35
+f0
+80
+67
+ef
+4e
+70
+05
+bd
+80
+d7
+80
+c3
+ef
+8b
+f0
+a4
+ac
+f0
+ee
+8b
+f0
+a4
+2c
+fc
+e4
+35
+f0
+f8
+ef
+8a
+f0
+a4
+2c
+e5
+f0
+38
+fc
+e4
+33
+cb
+8d
+f0
+a4
+2c
+fc
+e5
+f0
+3b
+f8
+ee
+8a
+f0
+a4
+2c
+fc
+e5
+f0
+38
+f8
+e4
+33
+cf
+89
+f0
+a4
+2c
+fc
+e5
+f0
+38
+cf
+34
+00
+ce
+89
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+33
+c9
+8d
+f0
+a4
+2e
+fe
+e5
+f0
+39
+cd
+8a
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+3d
+fd
+33
+d0
+e0
+fb
+50
+07
+0b
+bb
+00
+0f
+02
+02
+b5
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+02
+02
+8d
+75
+f0
+20
+80
+0e
+75
+f0
+10
+80
+05
+75
+f0
+08
+7d
+00
+7e
+00
+7f
+00
+33
+92
+d5
+30
+d5
+03
+12
+05
+57
+ec
+33
+40
+10
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+d5
+f0
+ed
+22
+e5
+f0
+24
+7e
+a2
+d5
+13
+cc
+92
+e7
+cd
+ce
+ff
+22
+ed
+d2
+e7
+cd
+33
+ec
+33
+92
+d5
+24
+81
+40
+06
+e4
+ff
+fe
+fd
+fc
+22
+fc
+e4
+cf
+ce
+cd
+cc
+24
+e0
+50
+11
+74
+ff
+80
+ed
+c3
+cc
+13
+cc
+cd
+13
+cd
+ce
+13
+ce
+cf
+13
+cf
+04
+70
+f0
+30
+d5
+de
+02
+05
+57
+e9
+d2
+e7
+c9
+33
+e8
+33
+f8
+92
+d5
+ed
+d2
+e7
+cd
+33
+ec
+33
+fc
+50
+02
+b2
+d5
+22
+ec
+30
+e7
+10
+0f
+bf
+00
+0c
+0e
+be
+00
+08
+0d
+bd
+00
+04
+0b
+eb
+60
+14
+a2
+d5
+eb
+13
+fc
+ed
+92
+e7
+fd
+22
+74
+ff
+fc
+fd
+fe
+ff
+22
+e4
+80
+f8
+a2
+d5
+74
+ff
+13
+fc
+7d
+80
+e4
+80
+ef
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+03
+10
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+e8
+8f
+f0
+a4
+cc
+8b
+f0
+a4
+2c
+fc
+e9
+8e
+f0
+a4
+2c
+fc
+8a
+f0
+ed
+a4
+2c
+fc
+ea
+8e
+f0
+a4
+cd
+a8
+f0
+8b
+f0
+a4
+2d
+cc
+38
+25
+f0
+fd
+e9
+8f
+f0
+a4
+2c
+cd
+35
+f0
+fc
+eb
+8e
+f0
+a4
+fe
+a9
+f0
+eb
+8f
+f0
+a4
+cf
+c5
+f0
+2e
+cd
+39
+fe
+e4
+3c
+fc
+ea
+a4
+2d
+ce
+35
+f0
+fd
+e4
+3c
+fc
+22
+75
+f0
+08
+75
+82
+00
+ef
+2f
+ff
+ee
+33
+fe
+cd
+33
+cd
+cc
+33
+cc
+c5
+82
+33
+c5
+82
+9b
+ed
+9a
+ec
+99
+e5
+82
+98
+40
+0c
+f5
+82
+ee
+9b
+fe
+ed
+9a
+fd
+ec
+99
+fc
+0f
+d5
+f0
+d6
+e4
+ce
+fb
+e4
+cd
+fa
+e4
+cc
+f9
+a8
+82
+22
+b8
+00
+c1
+b9
+00
+59
+ba
+00
+2d
+ec
+8b
+f0
+84
+cf
+ce
+cd
+fc
+e5
+f0
+cb
+f9
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+eb
+33
+fb
+10
+d7
+03
+99
+40
+04
+eb
+99
+fb
+0f
+d8
+e5
+e4
+f9
+fa
+22
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+c9
+33
+c9
+10
+d7
+05
+9b
+e9
+9a
+40
+07
+ec
+9b
+fc
+e9
+9a
+f9
+0f
+d8
+e0
+e4
+c9
+fa
+e4
+cc
+fb
+22
+75
+f0
+10
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+cc
+33
+cc
+c8
+33
+c8
+10
+d7
+07
+9b
+ec
+9a
+e8
+99
+40
+0a
+ed
+9b
+fd
+ec
+9a
+fc
+e8
+99
+f8
+0f
+d5
+f0
+da
+e4
+cd
+fb
+e4
+cc
+fa
+e4
+c8
+f9
+22
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+e4
+9d
+fd
+e4
+9c
+fc
+22
+eb
+9f
+f5
+f0
+ea
+9e
+42
+f0
+e9
+9d
+42
+f0
+e8
+9c
+45
+f0
+22
+ec
+f0
+a3
+ed
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+22
+a8
+82
+85
+83
+f0
+d0
+83
+d0
+82
+12
+05
+99
+12
+05
+99
+12
+05
+99
+12
+05
+99
+e4
+73
+e4
+93
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+f0
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+06
+26
+02
+39
+7b
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+06
+6b
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+4e
+6a
+ff
+20
+fe
+00
+00
+00
+ff
+1f
+7d
+ff
+34
+9a
+00
+00
+00
+ff
+35
+cb
+00
+08
+09
+0a
+0b
+0c
+0d
+0e
+18
+19
+17
+15
+14
+13
+11
+16
+1b
+1c
+1d
+1a
+00
+00
+1d
+1e
+00
+00
+e6
+ed
+ff
+66
+06
+20
+00
+fb
+fa
+fe
+e4
+f3
+19
+22
+3e
+f6
+e2
+fc
+fd
+f5
+28
+23
+3f
+00
+00
+e1
+00
+00
+09
+3c
+48
+00
+00
+00
+e0
+f1
+87
+21
+2c
+e3
+d6
+00
+00
+00
+89
+3d
+04
+f4
+00
+00
+00
+e7
+40
+35
+16
+1c
+13
+24
+00
+00
+41
+2d
+2b
+18
+2f
+25
+0b
+11
+42
+2e
+07
+0c
+30
+26
+34
+7f
+44
+3a
+1a
+46
+4a
+4c
+49
+37
+04
+0f
+08
+47
+4d
+4b
+4e
+38
+43
+3b
+14
+12
+31
+27
+32
+36
+00
+33
+52
+53
+5f
+5c
+59
+64
+29
+0e
+50
+54
+60
+5d
+5a
+62
+15
+0d
+51
+55
+61
+5e
+5b
+63
+17
+2a
+4f
+56
+57
+00
+58
+39
+1b
+1f
+f2
+ee
+e8
+e5
+d5
+fd
+0a
+00
+00
+00
+00
+00
+05
+10
+00
+00
+00
+00
+00
+00
+01
+01
+00
+90
+4f
+26
+ef
+f0
+90
+4c
+f0
+e0
+70
+03
+02
+08
+5e
+90
+4c
+f0
+e0
+14
+f0
+e4
+90
+4d
+f8
+f0
+90
+4e
+69
+f0
+90
+4f
+26
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+64
+01
+70
+70
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+09
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+7b
+90
+4e
+ef
+74
+10
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+19
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+f9
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+7f
+2b
+12
+08
+5f
+90
+4d
+f8
+74
+01
+f0
+e4
+90
+4c
+f0
+f0
+90
+44
+8b
+04
+f0
+22
+90
+4f
+26
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+64
+02
+70
+46
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+09
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+62
+90
+4e
+ef
+74
+10
+f0
+12
+10
+ce
+7f
+03
+11
+5f
+90
+42
+5e
+74
+01
+f0
+22
+90
+4e
+69
+74
+01
+f0
+90
+44
+f9
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4d
+d3
+74
+01
+f0
+7f
+2b
+11
+5f
+90
+42
+5e
+74
+01
+f0
+22
+90
+4f
+02
+ef
+f0
+78
+03
+7c
+4f
+7d
+01
+7b
+ff
+7a
+07
+79
+34
+7e
+00
+7f
+03
+12
+03
+90
+90
+4f
+02
+e0
+90
+4f
+05
+f0
+7b
+01
+7a
+4f
+79
+03
+7d
+03
+90
+4e
+e4
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4b
+9c
+e0
+ff
+a3
+e0
+90
+4e
+e8
+cf
+f0
+a3
+ef
+f0
+90
+4b
+9a
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9c
+e0
+fc
+a3
+e0
+fd
+7b
+64
+12
+39
+7e
+90
+4e
+e7
+e0
+fe
+ef
+c3
+9e
+40
+e1
+90
+4e
+e7
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+4e
+e4
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+e8
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+4e
+e8
+e0
+fe
+a3
+e0
+ff
+be
+4b
+c6
+bf
+36
+c3
+90
+4e
+e8
+74
+4a
+f0
+a3
+74
+a0
+f0
+80
+b7
+90
+4e
+e8
+e0
+ff
+a3
+e0
+90
+4b
+9c
+cf
+f0
+a3
+ef
+f0
+22
+90
+4f
+29
+ef
+f0
+14
+b4
+0d
+00
+40
+02
+41
+e6
+90
+09
+37
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+09
+5e
+02
+09
+5e
+02
+09
+5e
+02
+0a
+e6
+02
+09
+a5
+02
+09
+e9
+02
+09
+f1
+02
+0a
+3c
+02
+0a
+3c
+02
+0a
+a3
+02
+0a
+e6
+02
+0a
+e6
+02
+09
+9d
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+0d
+7f
+22
+11
+5f
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+90
+4f
+29
+e0
+14
+90
+4d
+d6
+f0
+90
+42
+13
+74
+05
+f0
+90
+4c
+f0
+f0
+7f
+04
+11
+5f
+7f
+0a
+d1
+c0
+7f
+2a
+11
+5f
+e4
+90
+4c
+ed
+f0
+22
+7f
+0e
+11
+5f
+7f
+02
+01
+5f
+e4
+90
+4c
+f0
+f0
+91
+00
+ef
+70
+0a
+f1
+11
+ef
+70
+05
+f1
+e1
+ef
+60
+0f
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+90
+4d
+ff
+74
+03
+f0
+22
+7f
+1e
+11
+5f
+12
+1f
+c4
+e4
+90
+4d
+d4
+f0
+90
+4d
+d3
+f0
+90
+4e
+69
+f0
+12
+27
+e3
+7f
+2c
+11
+5f
+e4
+90
+4c
+ed
+f0
+22
+91
+00
+e4
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+12
+26
+1c
+90
+4c
+c0
+74
+ff
+f0
+a3
+f0
+7f
+c8
+d1
+c0
+c2
+01
+7f
+ff
+51
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c0
+7d
+01
+7c
+00
+7f
+bd
+7e
+7f
+d1
+12
+d2
+01
+7f
+ff
+51
+ec
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+f1
+11
+ef
+60
+09
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+4e
+7f
+0a
+d1
+c0
+e4
+90
+4e
+69
+f0
+90
+4c
+00
+e0
+f4
+70
+21
+a3
+e0
+b4
+ff
+1c
+a3
+e0
+b4
+ff
+17
+a3
+e0
+b4
+ff
+12
+90
+4c
+00
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+69
+74
+01
+f0
+7f
+21
+11
+5f
+90
+4c
+c5
+74
+02
+f0
+e4
+a3
+f0
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+91
+00
+ef
+70
+05
+f1
+11
+ef
+60
+09
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+90
+4c
+c5
+e0
+64
+01
+60
+1d
+e4
+90
+4e
+69
+f0
+7f
+23
+11
+5f
+90
+4c
+c5
+74
+01
+f0
+e4
+a3
+f0
+90
+4c
+ee
+74
+f0
+f0
+e4
+90
+4c
+e9
+f0
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+ed
+f0
+22
+ef
+f4
+60
+0d
+7b
+01
+7a
+80
+79
+74
+a2
+01
+92
+00
+12
+3d
+29
+22
+90
+4d
+fe
+e0
+64
+02
+60
+02
+61
+ff
+90
+4c
+e9
+e0
+60
+02
+61
+ff
+90
+4c
+ee
+e0
+60
+02
+61
+ff
+90
+4c
+d5
+e0
+b4
+02
+04
+f1
+cf
+80
+2e
+90
+4c
+d5
+e0
+b4
+01
+14
+90
+4c
+f7
+e0
+70
+21
+90
+4c
+e2
+74
+0c
+f0
+90
+4c
+f7
+74
+01
+f0
+80
+13
+90
+4c
+f7
+e0
+b4
+01
+0c
+e4
+f0
+90
+4c
+e2
+f0
+c2
+01
+7f
+0f
+51
+ec
+12
+18
+0e
+ef
+70
+02
+61
+db
+c3
+90
+4c
+e4
+e0
+94
+78
+90
+4c
+e3
+e0
+94
+00
+50
+4f
+90
+4c
+b7
+e0
+30
+e0
+0e
+90
+4c
+e2
+e0
+70
+08
+d2
+01
+7f
+0f
+51
+ec
+80
+12
+90
+4c
+e5
+e0
+70
+0c
+90
+4c
+e2
+e0
+70
+06
+c2
+01
+7f
+0f
+51
+ec
+90
+4c
+b7
+e0
+30
+e1
+08
+d2
+01
+7f
+10
+51
+ec
+80
+06
+c2
+01
+7f
+10
+51
+ec
+90
+4c
+b7
+e0
+30
+e2
+06
+d2
+01
+7f
+1f
+41
+ec
+c2
+01
+7f
+1f
+41
+ec
+c2
+01
+7f
+10
+51
+ec
+c2
+01
+7f
+1f
+51
+ec
+90
+4c
+e2
+e0
+70
+36
+90
+4c
+e5
+e0
+70
+30
+c2
+01
+7f
+0f
+51
+ec
+c2
+01
+7f
+0f
+41
+ec
+c2
+01
+7f
+10
+51
+ec
+c2
+01
+7f
+1f
+51
+ec
+90
+4c
+e2
+e0
+70
+12
+90
+4c
+e5
+e0
+70
+0c
+c2
+01
+7f
+0f
+51
+ec
+c2
+01
+7f
+0f
+51
+ec
+22
+90
+4c
+c9
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+07
+7f
+04
+11
+5f
+7f
+01
+22
+90
+4c
+c7
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+07
+7f
+11
+11
+5f
+7f
+01
+22
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+07
+7f
+22
+11
+5f
+7f
+01
+22
+7f
+00
+22
+90
+4c
+ce
+e0
+30
+e1
+3d
+90
+4c
+d0
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d0
+e0
+64
+b4
+70
+36
+90
+4d
+f6
+e0
+04
+f0
+e0
+d3
+94
+02
+50
+07
+e4
+90
+4c
+d0
+f0
+80
+23
+90
+4d
+f6
+e0
+b4
+03
+1c
+90
+4d
+ef
+74
+01
+f0
+e4
+90
+4c
+d0
+f0
+f1
+cf
+80
+0d
+e4
+90
+4d
+f6
+f0
+90
+4d
+ef
+f0
+90
+4c
+d0
+f0
+90
+4c
+ce
+e0
+30
+e4
+38
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d1
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d1
+e0
+64
+06
+70
+47
+90
+4c
+c3
+e0
+ff
+60
+04
+64
+fe
+70
+3c
+e4
+90
+4c
+cd
+f0
+91
+00
+d1
+d8
+7f
+0a
+d1
+c0
+7f
+0a
+31
+1c
+80
+29
+90
+4c
+cd
+e0
+60
+1e
+e4
+f0
+7f
+0d
+31
+1c
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+b1
+7b
+f1
+d8
+e4
+90
+4c
+d1
+f0
+90
+4c
+ce
+e0
+30
+e3
+46
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d2
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d2
+e0
+64
+06
+70
+61
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+7f
+05
+31
+1c
+d1
+d8
+e4
+90
+4c
+cc
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+c0
+e0
+90
+4c
+c4
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+22
+90
+4c
+cc
+e0
+60
+2a
+e4
+f0
+90
+4c
+c3
+e0
+ff
+90
+4c
+c0
+e0
+6f
+60
+1c
+90
+4c
+eb
+74
+01
+f0
+d1
+d8
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+91
+00
+b1
+7b
+f1
+d8
+e4
+90
+4c
+d2
+f0
+22
+90
+4c
+bf
+e0
+ff
+70
+02
+c1
+11
+64
+01
+60
+04
+7f
+c8
+d1
+c0
+c2
+01
+7f
+ff
+51
+ec
+90
+4c
+bf
+e0
+64
+02
+70
+31
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+fc
+7f
+52
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+7c
+00
+7f
+57
+7e
+7f
+d1
+12
+7b
+01
+7a
+4d
+79
+fa
+7d
+01
+7c
+00
+7f
+56
+7e
+7f
+d1
+12
+80
+17
+90
+4c
+bf
+e0
+b4
+03
+10
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c0
+7d
+01
+7c
+00
+7f
+bd
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+d1
+12
+d2
+01
+7f
+ff
+51
+ec
+7f
+0a
+d1
+c0
+e4
+90
+4c
+bf
+f0
+22
+90
+4e
+b8
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+ba
+e0
+70
+02
+a3
+e0
+70
+02
+c1
+bf
+90
+4e
+b8
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+4e
+bf
+f0
+a3
+ef
+f0
+90
+4e
+ba
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+4e
+bf
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+4e
+bf
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+4e
+bb
+e0
+9d
+f0
+90
+4e
+ba
+e0
+9c
+f0
+90
+4e
+b8
+e0
+fe
+a3
+e0
+ff
+90
+4e
+bc
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+3c
+8e
+7f
+0a
+d1
+c0
+90
+4e
+bf
+e0
+fe
+a3
+e0
+ff
+90
+4e
+bd
+ee
+8f
+f0
+12
+04
+0e
+90
+4e
+b9
+e0
+2f
+f0
+90
+4e
+b8
+e0
+3e
+f0
+c1
+29
+22
+ef
+d3
+94
+00
+40
+11
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+1f
+80
+e9
+22
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+10
+d1
+f4
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+1f
+ac
+07
+ec
+f4
+60
+16
+af
+04
+d2
+04
+12
+3d
+ca
+af
+04
+a2
+06
+92
+01
+51
+ec
+af
+04
+c2
+02
+12
+3d
+8a
+22
+90
+4c
+c9
+e0
+b4
+02
+07
+7f
+1e
+11
+5f
+7f
+01
+22
+90
+4c
+c7
+e0
+b4
+02
+07
+7f
+0e
+11
+5f
+7f
+01
+22
+7f
+00
+22
+12
+36
+7b
+12
+3a
+28
+12
+1f
+53
+b1
+7b
+51
+fe
+90
+4d
+7d
+e0
+60
+03
+12
+1b
+b9
+90
+0b
+7e
+e0
+14
+60
+0d
+24
+fe
+70
+e2
+12
+30
+ba
+d1
+d8
+f1
+95
+80
+fe
+90
+4c
+ea
+e0
+70
+1e
+90
+4c
+ec
+e0
+70
+18
+90
+4c
+e5
+e0
+70
+12
+90
+4d
+e9
+e0
+70
+0c
+90
+4d
+f5
+e0
+70
+06
+90
+4c
+f8
+e0
+60
+05
+12
+3c
+37
+80
+b0
+12
+30
+ba
+90
+4d
+01
+e0
+60
+02
+d1
+d8
+f1
+95
+80
+a1
+80
+9f
+22
+e4
+90
+0b
+7f
+f0
+90
+0b
+7e
+f0
+7f
+01
+c1
+c0
+90
+4c
+c3
+e0
+b4
+01
+06
+d2
+01
+7f
+ff
+41
+ec
+90
+4c
+c3
+e0
+b4
+02
+06
+d2
+01
+7f
+ff
+41
+ec
+90
+4c
+c3
+e0
+b4
+03
+06
+d2
+06
+7f
+ff
+c1
+f4
+d2
+06
+7f
+0f
+c1
+f4
+e4
+90
+4d
+38
+f0
+7f
+19
+01
+5f
+90
+80
+10
+74
+01
+f0
+80
+fe
+22
+90
+4c
+c0
+e0
+ff
+64
+fe
+60
+03
+ef
+70
+07
+7f
+22
+11
+5f
+7f
+01
+22
+7f
+00
+22
+90
+4f
+1f
+ed
+f0
+90
+4f
+1e
+ef
+f0
+64
+01
+70
+70
+a3
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+74
+01
+f0
+ef
+75
+f0
+1f
+a4
+24
+03
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+03
+79
+d0
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+09
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+44
+79
+7b
+90
+4e
+ef
+74
+10
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+19
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+44
+79
+f9
+90
+4e
+ef
+74
+06
+f0
+80
+59
+90
+4f
+1e
+e0
+64
+02
+70
+50
+a3
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+74
+02
+f0
+ef
+75
+f0
+1f
+a4
+24
+03
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+00
+79
+40
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+09
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+42
+79
+62
+90
+4e
+ef
+74
+10
+f0
+11
+ce
+22
+90
+4e
+ea
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+ef
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+4e
+ec
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+ea
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+4e
+8e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+12
+1a
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+7c
+00
+12
+1a
+f0
+90
+4c
+c5
+e0
+64
+03
+70
+65
+90
+4e
+94
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+05
+50
+57
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+64
+39
+60
+09
+ef
+64
+53
+60
+04
+ef
+b4
+47
+06
+90
+4d
+46
+74
+03
+f0
+ef
+b4
+7f
+06
+90
+4d
+f5
+74
+01
+f0
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+60
+06
+90
+4d
+e9
+74
+01
+f0
+90
+4e
+94
+e0
+04
+f0
+80
+9f
+7e
+4e
+7f
+99
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4d
+f5
+e0
+90
+4e
+93
+f0
+90
+4e
+99
+e0
+90
+4e
+91
+f0
+90
+4e
+93
+e0
+64
+7f
+70
+30
+90
+4e
+91
+e0
+ff
+64
+7f
+60
+27
+ef
+60
+24
+90
+4e
+9d
+e0
+a3
+f0
+90
+4e
+9c
+e0
+a3
+f0
+90
+4e
+9b
+e0
+a3
+f0
+90
+4e
+9a
+e0
+a3
+f0
+90
+4e
+99
+e0
+a3
+f0
+90
+4e
+99
+74
+7f
+f0
+90
+4e
+94
+74
+03
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+08
+50
+52
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4e
+91
+f0
+64
+7f
+70
+37
+90
+4e
+94
+e0
+a3
+f0
+90
+4e
+95
+e0
+c3
+94
+07
+50
+21
+e0
+ff
+24
+98
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fe
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+ee
+f0
+90
+4e
+95
+e0
+04
+f0
+80
+d6
+e4
+90
+4e
+9e
+f0
+80
+08
+90
+4e
+94
+e0
+04
+f0
+80
+a4
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+90
+4e
+97
+f0
+90
+4e
+99
+e0
+ff
+90
+4d
+f5
+f0
+90
+4e
+97
+e0
+fe
+90
+48
+01
+f0
+ef
+60
+0c
+90
+4e
+99
+e0
+64
+7f
+70
+46
+a3
+e0
+70
+42
+ee
+70
+3f
+90
+4d
+ed
+e0
+60
+19
+90
+48
+00
+74
+01
+f0
+fb
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+e4
+90
+4d
+ed
+f0
+90
+48
+00
+f0
+90
+4d
+ee
+e0
+60
+1a
+90
+4e
+60
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+e4
+90
+4d
+ee
+f0
+90
+4e
+60
+f0
+90
+4e
+99
+e0
+b4
+7f
+08
+90
+4e
+96
+74
+03
+f0
+80
+06
+90
+4e
+96
+74
+02
+f0
+90
+4e
+96
+e0
+90
+4e
+94
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+08
+40
+02
+81
+b1
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4e
+91
+f0
+70
+08
+90
+4e
+97
+e0
+70
+02
+81
+b1
+90
+4e
+91
+e0
+fb
+b4
+d6
+08
+7f
+23
+7e
+02
+91
+f6
+80
+26
+eb
+b4
+d5
+08
+7f
+21
+7e
+02
+91
+f6
+80
+1a
+90
+4e
+91
+e0
+fb
+b4
+fa
+08
+7f
+8a
+7e
+01
+91
+f6
+80
+0a
+eb
+b4
+fb
+06
+7f
+92
+7e
+01
+91
+f6
+90
+4e
+91
+e0
+b4
+29
+27
+90
+4e
+96
+e0
+b4
+03
+20
+90
+4d
+fa
+e0
+60
+0a
+e4
+f0
+90
+4c
+bf
+74
+02
+f0
+80
+0b
+90
+4d
+fa
+74
+01
+f0
+90
+4c
+bf
+04
+f0
+e4
+90
+4e
+91
+f0
+90
+4e
+96
+e0
+ff
+b4
+02
+06
+90
+4d
+fa
+e0
+60
+11
+ef
+64
+03
+60
+02
+81
+68
+90
+4d
+fa
+e0
+64
+01
+60
+02
+81
+68
+90
+4e
+91
+e0
+fb
+b4
+3a
+08
+7f
+70
+7e
+00
+91
+f6
+81
+68
+eb
+b4
+3b
+08
+7f
+6f
+7e
+00
+91
+f6
+81
+68
+90
+4e
+91
+e0
+ff
+b4
+3c
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+04
+f0
+81
+68
+ef
+b4
+3d
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+06
+f0
+80
+75
+ef
+b4
+3e
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+19
+f0
+80
+63
+ef
+b4
+3f
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+1b
+f0
+80
+51
+ef
+b4
+40
+08
+7f
+b6
+7e
+00
+91
+f6
+80
+45
+90
+4e
+91
+e0
+fb
+b4
+41
+08
+7f
+cd
+7e
+00
+91
+f6
+80
+35
+eb
+b4
+42
+08
+7f
+b5
+7e
+00
+91
+f6
+80
+29
+90
+4e
+91
+e0
+fb
+b4
+43
+08
+7f
+e2
+7e
+00
+91
+f6
+80
+19
+eb
+b4
+44
+08
+7f
+ea
+7e
+00
+91
+f6
+80
+0d
+90
+4e
+91
+e0
+b4
+45
+06
+7f
+e9
+7e
+00
+91
+f6
+90
+4d
+ee
+e0
+70
+3b
+90
+4e
+96
+e0
+b4
+03
+18
+90
+4e
+91
+e0
+ff
+60
+27
+90
+4e
+94
+e0
+24
+00
+f5
+82
+e4
+34
+48
+f5
+83
+ef
+f0
+80
+16
+90
+4e
+91
+e0
+ff
+60
+0f
+90
+4e
+94
+e0
+24
+01
+f5
+82
+e4
+34
+48
+f5
+83
+ef
+f0
+90
+4d
+ed
+74
+01
+f0
+90
+4e
+94
+e0
+04
+f0
+61
+07
+90
+4d
+ed
+e0
+60
+27
+90
+48
+00
+74
+01
+f0
+90
+4c
+c5
+e0
+b4
+03
+0a
+90
+4d
+46
+e0
+90
+48
+02
+f0
+80
+05
+e4
+90
+48
+02
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+90
+4d
+ee
+e0
+60
+11
+90
+4e
+60
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+22
+ad
+07
+ac
+06
+ef
+90
+4e
+61
+f0
+ee
+a3
+f0
+90
+4d
+ee
+74
+01
+f0
+22
+90
+4e
+fa
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+f0
+90
+4e
+fd
+e0
+ff
+c3
+94
+06
+40
+03
+02
+18
+0d
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+54
+f0
+64
+f0
+60
+0a
+ef
+54
+d0
+64
+d0
+60
+03
+02
+18
+04
+12
+03
+b6
+fb
+b4
+f1
+08
+7f
+83
+7e
+01
+91
+f6
+e1
+d9
+eb
+b4
+f2
+08
+7f
+cd
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f3
+06
+7f
+b7
+91
+f6
+e1
+d9
+eb
+b4
+f4
+08
+7f
+b6
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f5
+06
+7f
+b5
+91
+f6
+e1
+d9
+eb
+b4
+f6
+08
+7f
+ea
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f7
+06
+7f
+e9
+91
+f6
+e1
+d9
+eb
+b4
+f8
+08
+7f
+e2
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f9
+07
+7f
+94
+0e
+91
+f6
+e1
+d9
+eb
+b4
+fa
+08
+7f
+8a
+7e
+01
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+fb
+07
+7f
+92
+0e
+91
+f6
+e1
+d9
+eb
+b4
+d0
+08
+7f
+2a
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d1
+08
+7f
+25
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d3
+08
+7f
+26
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d2
+08
+7f
+24
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d4
+08
+7f
+27
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d5
+08
+7f
+21
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d6
+08
+7f
+23
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d7
+06
+7f
+70
+91
+f6
+e1
+d9
+eb
+b4
+d8
+08
+7f
+6f
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d9
+06
+7f
+b8
+91
+f6
+80
+7d
+eb
+b4
+da
+08
+7f
+30
+7e
+00
+91
+f6
+80
+71
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+db
+08
+7f
+06
+7e
+03
+91
+f6
+80
+49
+eb
+b4
+dc
+08
+7f
+07
+7e
+03
+91
+f6
+80
+3d
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fe
+b4
+dd
+07
+7f
+01
+12
+28
+26
+80
+16
+ee
+b4
+de
+07
+7f
+02
+12
+28
+26
+80
+0b
+12
+03
+b6
+b4
+df
+05
+7f
+04
+12
+28
+26
+90
+4e
+5f
+e0
+b4
+02
+24
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4e
+00
+f0
+e4
+12
+03
+fc
+90
+4e
+fd
+e0
+04
+f0
+02
+15
+18
+22
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+03
+7f
+01
+22
+7f
+00
+22
+e4
+90
+4f
+27
+f0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+06
+90
+4f
+27
+e0
+ff
+22
+90
+47
+f4
+e0
+54
+40
+fe
+a3
+e0
+54
+08
+ff
+be
+40
+09
+bf
+08
+06
+90
+4f
+27
+e0
+ff
+22
+90
+4c
+ee
+e0
+60
+06
+90
+4f
+27
+e0
+ff
+22
+90
+4c
+c9
+e0
+70
+45
+90
+4c
+c7
+e0
+70
+3f
+90
+4c
+c5
+e0
+64
+03
+60
+37
+90
+4c
+ef
+e0
+70
+3b
+74
+0a
+f0
+a3
+e0
+70
+34
+90
+4d
+fe
+e0
+64
+02
+70
+2c
+90
+4c
+c3
+e0
+ff
+c3
+94
+01
+40
+0b
+ef
+d3
+94
+03
+50
+05
+12
+09
+1c
+80
+17
+7f
+09
+12
+09
+1c
+90
+4f
+27
+74
+01
+f0
+80
+0a
+e4
+90
+4c
+eb
+f0
+90
+4f
+27
+04
+f0
+90
+4f
+27
+e0
+ff
+22
+90
+4e
+9f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+e4
+ff
+90
+4e
+a2
+e0
+fe
+ef
+c3
+9e
+50
+23
+90
+4e
+9f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+74
+a3
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+ee
+f0
+0f
+80
+d3
+11
+2b
+ef
+70
+02
+21
+f6
+90
+4c
+eb
+e0
+60
+02
+21
+f6
+90
+4c
+c9
+e0
+b4
+04
+0d
+7b
+01
+7a
+4e
+79
+a3
+90
+4e
+a2
+e0
+fd
+91
+0c
+90
+4c
+c5
+e0
+64
+03
+60
+02
+21
+f6
+90
+4e
+a3
+e0
+64
+01
+70
+23
+74
+04
+f0
+a3
+e0
+70
+14
+90
+4e
+a6
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+32
+90
+4d
+f0
+74
+01
+f0
+80
+2a
+90
+4e
+a3
+e0
+b4
+02
+19
+74
+05
+f0
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+12
+90
+4d
+f0
+74
+01
+f0
+80
+0a
+90
+4e
+a3
+e0
+b4
+03
+03
+74
+07
+f0
+90
+4e
+a3
+e0
+64
+10
+70
+2b
+74
+08
+f0
+a3
+e0
+70
+1e
+a3
+e0
+70
+1a
+a3
+e0
+70
+16
+a3
+e0
+70
+12
+a3
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+06
+90
+4d
+f0
+74
+01
+f0
+90
+4e
+a3
+e0
+64
+11
+70
+2b
+74
+09
+f0
+a3
+e0
+70
+1e
+a3
+e0
+70
+1a
+a3
+e0
+70
+16
+a3
+e0
+70
+12
+a3
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+06
+90
+4d
+f0
+74
+01
+f0
+7b
+01
+7a
+4e
+79
+a3
+90
+4e
+a2
+e0
+fd
+71
+df
+22
+90
+4d
+ec
+e0
+60
+0f
+e0
+14
+f0
+e0
+70
+09
+90
+41
+31
+04
+f0
+90
+4d
+eb
+f0
+90
+4c
+c9
+e0
+64
+04
+60
+08
+90
+4c
+c7
+e0
+64
+04
+70
+5b
+90
+4c
+c7
+e0
+64
+04
+70
+39
+90
+4d
+7e
+e0
+60
+33
+90
+4d
+eb
+e0
+70
+10
+90
+4c
+e3
+e0
+fe
+a3
+e0
+ff
+4e
+60
+22
+ef
+54
+1f
+70
+1d
+e4
+90
+4d
+eb
+f0
+90
+4e
+60
+74
+04
+f0
+90
+4c
+f9
+e0
+90
+4e
+61
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+02
+11
+c4
+90
+4c
+e3
+e0
+64
+02
+70
+04
+a3
+e0
+64
+58
+60
+02
+41
+ef
+12
+0c
+00
+90
+4c
+ec
+74
+01
+f0
+22
+90
+4c
+c5
+e0
+64
+03
+70
+39
+90
+4c
+e4
+e0
+54
+1f
+64
+10
+70
+1e
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+51
+f0
+e4
+90
+4e
+5f
+f0
+90
+48
+00
+04
+f0
+fb
+7a
+48
+79
+00
+7d
+09
+11
+c4
+c3
+90
+4c
+e4
+e0
+94
+58
+90
+4c
+e3
+e0
+94
+02
+40
+39
+61
+b9
+90
+4c
+c5
+e0
+b4
+01
+11
+c3
+90
+4c
+e4
+e0
+94
+78
+90
+4c
+e3
+e0
+94
+00
+40
+21
+61
+b9
+c3
+90
+4c
+e4
+e0
+94
+14
+90
+4c
+e3
+e0
+94
+00
+40
+10
+90
+4d
+f8
+e0
+60
+07
+e4
+f0
+7f
+0e
+12
+08
+5f
+12
+0f
+cf
+22
+90
+4f
+15
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+4f
+15
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+e4
+12
+03
+fc
+80
+e0
+22
+7b
+01
+7a
+4c
+79
+bf
+7d
+65
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+93
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+a8
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+09
+7c
+00
+51
+f0
+e4
+90
+4d
+f9
+f0
+90
+4d
+ff
+f0
+90
+4d
+ea
+f0
+90
+4d
+f4
+f0
+90
+4d
+f1
+f0
+90
+4d
+fe
+f0
+90
+4d
+f0
+f0
+90
+4d
+d5
+f0
+90
+4d
+f8
+f0
+90
+4d
+f6
+f0
+90
+4e
+5f
+f0
+90
+4d
+ef
+f0
+90
+4d
+f2
+f0
+90
+4d
+f5
+f0
+90
+4d
+fa
+f0
+90
+4e
+00
+f0
+90
+4c
+b7
+74
+f0
+f0
+90
+4d
+f3
+f0
+e4
+90
+4d
+38
+f0
+90
+4d
+d4
+f0
+22
+12
+0e
+d8
+90
+4b
+ef
+74
+ff
+f0
+90
+4d
+01
+74
+01
+f0
+90
+4c
+b7
+74
+f0
+f0
+90
+4d
+f3
+f0
+90
+4d
+40
+74
+ff
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
+90
+0b
+e7
+74
+06
+f0
+90
+4f
+2f
+ed
+f0
+e0
+fd
+90
+0b
+e8
+f0
+7e
+0b
+7f
+e9
+90
+4e
+ef
+ed
+f0
+12
+10
+ce
+7b
+01
+7a
+0b
+79
+e7
+90
+4f
+2f
+e0
+24
+02
+fd
+02
+08
+87
+90
+0b
+e7
+74
+03
+f0
+ed
+60
+02
+71
+e5
+22
+71
+1c
+12
+36
+8e
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+e5
+74
+1e
+f0
+e4
+90
+4c
+f0
+f0
+90
+4d
+1a
+74
+ff
+f0
+90
+44
+fc
+e0
+90
+4d
+d0
+f0
+90
+44
+fd
+e0
+90
+4d
+d1
+f0
+90
+44
+fe
+e0
+90
+4d
+d2
+f0
+22
+90
+4f
+20
+ef
+f0
+a3
+ed
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4f
+20
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+90
+4f
+21
+e0
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+01
+c4
+90
+4d
+46
+e0
+60
+4a
+90
+4d
+f0
+e0
+70
+44
+90
+4c
+c5
+e0
+64
+03
+70
+3c
+90
+4d
+f9
+e0
+ff
+90
+4e
+01
+e0
+6f
+60
+28
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+e4
+90
+4e
+5f
+f0
+90
+48
+00
+04
+f0
+90
+4d
+46
+e0
+90
+48
+02
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+11
+c4
+90
+4d
+f9
+e0
+90
+4e
+01
+f0
+22
+90
+4d
+09
+e0
+60
+59
+e4
+f0
+90
+4c
+c5
+e0
+b4
+03
+08
+90
+4d
+d8
+74
+10
+f0
+80
+06
+90
+4d
+d8
+74
+05
+f0
+90
+4d
+02
+e0
+90
+4d
+d9
+f0
+90
+4d
+03
+e0
+90
+4d
+da
+f0
+90
+4d
+04
+e0
+90
+4d
+db
+f0
+90
+4d
+05
+e0
+90
+4d
+dc
+f0
+90
+4d
+06
+e0
+90
+4d
+dd
+f0
+90
+4d
+07
+e0
+90
+4d
+de
+f0
+90
+4d
+08
+e0
+90
+4d
+df
+f0
+7b
+01
+7a
+4d
+79
+d8
+7d
+08
+11
+c4
+90
+4d
+11
+e0
+60
+59
+e4
+f0
+90
+4c
+c5
+e0
+b4
+03
+08
+90
+4d
+e0
+74
+11
+f0
+80
+06
+90
+4d
+e0
+74
+06
+f0
+90
+4d
+0a
+e0
+90
+4d
+e1
+f0
+90
+4d
+0b
+e0
+90
+4d
+e2
+f0
+90
+4d
+0c
+e0
+90
+4d
+e3
+f0
+90
+4d
+0d
+e0
+90
+4d
+e4
+f0
+90
+4d
+0e
+e0
+90
+4d
+e5
+f0
+90
+4d
+0f
+e0
+90
+4d
+e6
+f0
+90
+4d
+10
+e0
+90
+4d
+e7
+f0
+7b
+01
+7a
+4d
+79
+e0
+7d
+08
+11
+c4
+22
+e4
+90
+4e
+de
+f0
+a3
+f0
+a3
+f0
+f9
+a3
+c9
+f0
+a3
+f0
+a3
+e9
+f0
+f1
+65
+40
+02
+e1
+52
+12
+2a
+b3
+90
+4e
+e1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+07
+90
+4c
+b6
+04
+f0
+81
+87
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+03
+f0
+90
+4d
+f9
+74
+0a
+f0
+90
+4c
+d5
+e0
+ff
+b4
+01
+12
+e4
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+12
+f0
+e4
+a3
+f0
+80
+10
+e4
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+5d
+f0
+e4
+a3
+f0
+90
+4c
+b6
+74
+01
+f0
+90
+4d
+7d
+e0
+60
+08
+e4
+f0
+90
+4d
+46
+74
+03
+f0
+90
+4e
+e1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+fe
+90
+4e
+de
+f0
+90
+00
+02
+12
+03
+cf
+90
+4e
+df
+f0
+12
+03
+b6
+90
+4e
+e0
+f0
+be
+7f
+08
+90
+4d
+e8
+74
+01
+f0
+80
+05
+e4
+90
+4d
+e8
+f0
+ef
+64
+02
+70
+02
+e1
+3c
+90
+4e
+de
+e0
+64
+29
+70
+6a
+a3
+e0
+64
+14
+70
+58
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+ce
+e0
+54
+f7
+f0
+90
+4c
+c5
+e0
+64
+01
+60
+3b
+90
+4c
+ce
+e0
+44
+10
+f0
+90
+4c
+c3
+e0
+ff
+70
+02
+e1
+52
+64
+fe
+70
+02
+e1
+52
+90
+4b
+eb
+74
+20
+f0
+a3
+74
+15
+f0
+a3
+74
+10
+f0
+a3
+74
+05
+f0
+90
+4c
+ee
+74
+28
+f0
+12
+0c
+00
+7f
+0a
+12
+0e
+c0
+7f
+0a
+02
+09
+1c
+90
+4c
+ce
+e0
+54
+ef
+f0
+22
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+80
+0a
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+90
+4e
+de
+e0
+64
+7f
+70
+58
+a3
+e0
+fb
+b4
+17
+09
+7f
+70
+7e
+00
+12
+14
+f6
+80
+53
+eb
+b4
+1c
+09
+7f
+6f
+7e
+00
+12
+14
+f6
+80
+46
+90
+4e
+df
+e0
+fb
+b4
+18
+09
+7f
+83
+7e
+01
+12
+14
+f6
+80
+35
+eb
+b4
+0c
+09
+7f
+ea
+7e
+00
+12
+14
+f6
+80
+28
+90
+4e
+df
+e0
+fb
+b4
+12
+09
+7f
+e9
+7e
+00
+12
+14
+f6
+80
+17
+eb
+b4
+13
+13
+7f
+e2
+7e
+00
+12
+14
+f6
+80
+0a
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+90
+4e
+e1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+11
+11
+90
+4e
+69
+e0
+70
+02
+91
+d8
+22
+a1
+97
+90
+0b
+e7
+74
+04
+f0
+61
+e5
+90
+0b
+e7
+74
+05
+f0
+61
+e5
+90
+4b
+9c
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9a
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+12
+32
+52
+90
+4c
+e4
+e0
+04
+f0
+70
+06
+90
+4c
+e3
+e0
+04
+f0
+f1
+b2
+31
+f7
+12
+0c
+3f
+12
+35
+db
+12
+36
+2e
+90
+4c
+ca
+e0
+64
+02
+60
+07
+90
+4c
+c8
+e0
+b4
+02
+07
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+d3
+e0
+60
+0b
+14
+f0
+e0
+70
+06
+74
+05
+f0
+12
+37
+5a
+22
+e4
+90
+4c
+f0
+f0
+90
+4d
+f8
+f0
+22
+90
+4d
+fe
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+20
+4e
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+4e
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4d
+79
+fa
+7d
+01
+7c
+00
+7f
+56
+7e
+7f
+11
+4e
+7f
+0a
+12
+0e
+c0
+90
+4c
+c3
+e0
+ff
+d3
+94
+03
+50
+1e
+ef
+c3
+94
+01
+40
+18
+e0
+75
+f0
+1f
+a4
+24
+01
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4d
+fa
+f0
+12
+09
+1c
+80
+05
+7f
+08
+12
+09
+1c
+90
+4d
+fa
+e0
+d3
+94
+01
+40
+02
+e4
+f0
+22
+90
+4e
+f5
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+4e
+f5
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+f1
+db
+90
+4e
+f7
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+0b
+79
+83
+90
+4e
+f5
+e0
+a3
+e0
+90
+4e
+ef
+f0
+02
+10
+ce
+90
+4f
+2e
+ef
+f0
+12
+05
+b3
+23
+21
+01
+24
+3a
+02
+24
+2b
+04
+23
+43
+06
+23
+f3
+0a
+24
+2b
+13
+24
+f9
+14
+25
+d4
+15
+23
+a2
+18
+22
+1f
+27
+25
+9b
+29
+23
+e9
+2a
+21
+4c
+2f
+22
+1b
+30
+22
+72
+31
+22
+e2
+32
+21
+4c
+33
+25
+75
+34
+25
+b5
+35
+22
+6a
+37
+22
+1f
+39
+22
+72
+3c
+00
+00
+26
+1b
+f1
+a3
+12
+1c
+18
+7b
+01
+7a
+4c
+79
+ff
+7d
+01
+7c
+00
+7f
+c0
+7e
+7f
+11
+4e
+90
+4c
+ff
+e0
+64
+01
+70
+3f
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+05
+12
+0f
+95
+80
+e6
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+10
+90
+4c
+d5
+74
+02
+f0
+e4
+90
+4c
+e5
+f0
+7f
+19
+02
+08
+5f
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+7c
+00
+7f
+c1
+7e
+7f
+11
+4e
+7f
+0a
+12
+0e
+c0
+90
+4c
+c1
+e0
+d3
+94
+03
+40
+12
+e4
+f0
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+fc
+7f
+c1
+7e
+7f
+12
+0e
+12
+90
+4c
+c0
+e0
+90
+4c
+c3
+f0
+12
+0f
+a2
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+11
+4e
+90
+4c
+f2
+e0
+b4
+ff
+19
+a3
+e0
+b4
+ff
+14
+90
+4c
+93
+e0
+a3
+e0
+90
+4c
+f2
+f0
+90
+4c
+91
+e0
+a3
+e0
+90
+4c
+f3
+f0
+02
+1f
+ce
+f1
+aa
+e1
+79
+90
+4c
+c3
+e0
+d3
+94
+00
+50
+02
+c1
+1b
+e0
+94
+04
+40
+02
+c1
+1b
+e0
+75
+f0
+1f
+a4
+24
+e3
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1f
+7c
+00
+d1
+1c
+7f
+c8
+12
+0e
+c0
+c2
+01
+7f
+ff
+12
+0a
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+0e
+12
+d2
+01
+7f
+ff
+02
+0a
+ec
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+74
+03
+f0
+e4
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+ee
+f0
+90
+4c
+eb
+f0
+90
+4c
+c0
+74
+fe
+f0
+90
+4c
+c3
+f0
+90
+4d
+46
+74
+03
+f0
+90
+4d
+f9
+74
+0a
+f0
+90
+4f
+2e
+e0
+64
+31
+70
+34
+90
+4d
+fa
+f0
+90
+4e
+69
+f0
+90
+4c
+c1
+f0
+90
+4c
+e5
+74
+1e
+f0
+90
+4b
+eb
+e0
+b4
+0f
+12
+a3
+e0
+b4
+0f
+0d
+a3
+e0
+b4
+0f
+08
+a3
+e0
+64
+0f
+70
+02
+c1
+1b
+90
+4c
+bf
+74
+02
+f0
+02
+0d
+7b
+90
+4c
+e5
+e0
+60
+02
+c1
+1b
+22
+e4
+90
+4c
+c5
+f0
+a3
+f0
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+ed
+e0
+60
+0b
+12
+1f
+c4
+90
+4c
+ed
+e0
+ff
+02
+09
+1c
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+f0
+e0
+70
+02
+c1
+1b
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c9
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+47
+f4
+e0
+a3
+20
+e7
+02
+c1
+1b
+90
+4d
+ea
+74
+32
+f0
+22
+90
+4c
+c9
+74
+04
+f0
+e4
+a3
+f0
+7f
+0e
+12
+08
+5f
+7f
+02
+12
+08
+5f
+c2
+01
+7f
+ff
+12
+0a
+ec
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+e4
+90
+4c
+e3
+f0
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+eb
+f0
+90
+4d
+ea
+f0
+90
+42
+13
+74
+1a
+f0
+e4
+90
+4d
+f4
+f0
+90
+00
+40
+e0
+70
+14
+a3
+e0
+70
+10
+a3
+e0
+70
+0c
+a3
+e0
+70
+08
+a3
+e0
+70
+04
+a3
+e0
+60
+e6
+7f
+05
+02
+08
+5f
+90
+4c
+e9
+e0
+60
+2a
+e4
+90
+4d
+fa
+f0
+90
+4c
+c1
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+00
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+d1
+49
+90
+4c
+bf
+74
+03
+f0
+e4
+90
+4c
+e9
+f0
+90
+4c
+ea
+74
+0a
+f0
+90
+41
+31
+74
+01
+f0
+90
+4c
+e5
+e0
+60
+02
+c1
+1b
+02
+34
+35
+7f
+04
+12
+08
+5f
+7f
+0a
+02
+0e
+c0
+e4
+90
+05
+4f
+f0
+90
+4d
+f1
+04
+f0
+e4
+90
+4d
+ea
+f0
+90
+47
+f4
+e0
+a3
+30
+e7
+10
+90
+4d
+f4
+74
+01
+f0
+90
+05
+4f
+74
+04
+f0
+ff
+02
+08
+5f
+e4
+90
+4c
+f0
+f0
+90
+4c
+ca
+74
+02
+f0
+90
+4c
+c9
+04
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+08
+e4
+90
+4c
+c9
+f0
+a3
+f0
+22
+90
+4c
+c9
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c9
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+ea
+f0
+90
+4d
+f4
+e0
+64
+01
+70
+4c
+90
+4c
+c3
+e0
+d3
+94
+00
+40
+3e
+e0
+94
+04
+50
+39
+e0
+75
+f0
+1f
+a4
+24
+e3
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1f
+7c
+00
+d1
+1c
+7f
+c8
+12
+0e
+c0
+c2
+01
+7f
+ff
+12
+0a
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+0e
+12
+d2
+01
+7f
+ff
+12
+0a
+ec
+e4
+90
+4d
+f4
+f0
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+ed
+e0
+60
+04
+ff
+02
+09
+1c
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+e0
+64
+01
+70
+02
+c1
+1b
+90
+4f
+2e
+e0
+64
+13
+70
+02
+c1
+1b
+90
+4c
+cb
+e0
+64
+04
+60
+07
+7f
+05
+12
+09
+1c
+80
+03
+12
+0f
+cf
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+a3
+f0
+a3
+f0
+7f
+0e
+12
+08
+5f
+7f
+02
+12
+08
+5f
+c2
+01
+7f
+ff
+12
+0a
+ec
+90
+4c
+e9
+e0
+60
+35
+e4
+90
+4d
+fa
+f0
+90
+4c
+c1
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+00
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+90
+4d
+fa
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+01
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+90
+4d
+f8
+e0
+70
+06
+90
+4d
+d4
+74
+14
+f0
+90
+4c
+e5
+e0
+70
+03
+12
+34
+35
+e4
+90
+4c
+e9
+f0
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+eb
+f0
+90
+4d
+ec
+74
+0a
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4c
+c3
+e0
+14
+fd
+7f
+01
+12
+0f
+f7
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4d
+39
+12
+05
+82
+00
+00
+00
+00
+e4
+90
+4d
+d7
+f0
+90
+4d
+f1
+04
+f0
+90
+4c
+c8
+04
+f0
+90
+4c
+c7
+04
+f0
+22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+3d
+f0
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+ed
+e0
+60
+04
+ff
+02
+09
+1c
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+12
+0f
+cf
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4f
+18
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+4f
+18
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+74
+ff
+12
+03
+fc
+80
+df
+22
+90
+4c
+c3
+e0
+14
+90
+4f
+28
+f0
+e4
+90
+4d
+f1
+f0
+90
+4f
+28
+e0
+fd
+7f
+02
+12
+0f
+f7
+90
+4f
+28
+e0
+ff
+60
+3c
+90
+4e
+02
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+03
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+02
+7d
+1f
+7c
+00
+d1
+1c
+90
+4f
+28
+e0
+ff
+64
+01
+60
+3c
+90
+4e
+21
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+22
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+21
+7d
+1f
+7c
+00
+d1
+1c
+90
+4f
+28
+e0
+ff
+64
+02
+60
+3c
+90
+4e
+40
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+41
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+40
+7d
+1f
+7c
+00
+d1
+1c
+22
+90
+4e
+d0
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+4e
+d6
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+4e
+d3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+90
+4e
+d0
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+f1
+bd
+e4
+90
+4f
+2c
+f0
+f0
+90
+4f
+2c
+e0
+90
+06
+81
+93
+ff
+60
+0d
+c2
+05
+12
+3d
+9b
+90
+4f
+2c
+e0
+04
+f0
+80
+e8
+22
+f1
+aa
+f1
+79
+02
+0e
+d8
+90
+80
+91
+74
+0d
+f0
+a3
+04
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+14
+f0
+22
+e4
+90
+4f
+2b
+f0
+f0
+90
+4f
+2b
+e0
+ff
+c3
+94
+08
+50
+0d
+c2
+05
+12
+3d
+9b
+90
+4f
+2b
+e0
+04
+f0
+80
+e9
+22
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+11
+4e
+90
+4c
+f2
+e0
+04
+f0
+a3
+e0
+04
+f0
+90
+4c
+f2
+e0
+90
+44
+fa
+f0
+90
+4c
+f3
+e0
+90
+44
+fb
+f0
+90
+4d
+d0
+e0
+90
+44
+fc
+f0
+90
+4d
+d1
+e0
+90
+44
+fd
+f0
+90
+4d
+d2
+e0
+90
+44
+fe
+f0
+22
+90
+4e
+5f
+e0
+64
+02
+60
+12
+74
+04
+f0
+90
+4d
+fc
+74
+01
+f0
+90
+4e
+60
+74
+06
+f0
+a3
+ef
+f0
+22
+90
+4f
+06
+e4
+f0
+a3
+f0
+a3
+f0
+51
+b3
+90
+4f
+06
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+02
+41
+b2
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+70
+02
+41
+b2
+64
+28
+60
+05
+ef
+64
+58
+70
+32
+90
+4c
+c8
+e0
+b4
+02
+10
+7f
+29
+12
+08
+5f
+90
+4c
+c8
+74
+03
+f0
+e4
+90
+4d
+d7
+f0
+90
+4c
+ca
+e0
+64
+02
+60
+02
+41
+b2
+90
+42
+5e
+04
+f0
+7f
+0a
+12
+08
+5f
+90
+4c
+ca
+74
+03
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+62
+40
+02
+21
+7e
+ef
+c3
+94
+59
+50
+02
+21
+7e
+ef
+b4
+62
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+d8
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+a8
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+27
+40
+02
+41
+4f
+ef
+c3
+94
+1e
+50
+02
+41
+4f
+ef
+b4
+27
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+13
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+e3
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+64
+2a
+70
+40
+90
+05
+4f
+e0
+60
+10
+e0
+ff
+14
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+e4
+f0
+90
+4d
+d7
+e0
+60
+32
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+c5
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+14
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+11
+11
+22
+e4
+90
+4e
+ad
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+32
+d7
+7a
+4d
+79
+a8
+90
+4e
+d3
+74
+01
+f0
+a3
+74
+4d
+f0
+a3
+74
+a8
+f0
+a3
+74
+14
+f0
+7b
+01
+7a
+4d
+79
+bc
+12
+27
+2f
+ef
+60
+16
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+91
+e9
+ef
+70
+09
+90
+4c
+ce
+e0
+44
+02
+f0
+80
+0c
+90
+4c
+ce
+e0
+54
+fd
+f0
+e4
+90
+4c
+d0
+f0
+e4
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+90
+06
+81
+93
+70
+02
+61
+e5
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+b0
+f0
+e0
+ff
+91
+db
+90
+4e
+b7
+ef
+f0
+c3
+94
+02
+50
+02
+61
+ce
+e4
+90
+4e
+ae
+f0
+90
+4e
+ae
+e0
+ff
+c3
+94
+08
+50
+7b
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+90
+4e
+b0
+e0
+fd
+e4
+ef
+5d
+60
+58
+e4
+90
+4e
+af
+f0
+90
+4e
+af
+e0
+ff
+90
+06
+81
+93
+60
+48
+90
+4e
+ad
+e0
+fe
+ef
+6e
+60
+37
+90
+4e
+af
+e0
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+7c
+00
+90
+4e
+ae
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+60
+08
+90
+4e
+b6
+74
+01
+f0
+80
+08
+90
+4e
+af
+e0
+04
+f0
+80
+ad
+90
+4e
+ae
+e0
+04
+f0
+61
+49
+90
+4e
+b0
+e0
+ff
+60
+08
+91
+db
+90
+4e
+b4
+e0
+2f
+f0
+90
+4e
+ad
+e0
+04
+f0
+61
+18
+90
+4e
+b4
+e0
+90
+4d
+f7
+f0
+e4
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+90
+06
+81
+93
+70
+02
+81
+c7
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+90
+4e
+b0
+f0
+90
+4e
+ad
+e0
+ff
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+b3
+f0
+90
+4e
+b0
+e0
+70
+04
+81
+bf
+81
+bf
+90
+4e
+b6
+e0
+60
+07
+7b
+00
+7a
+00
+79
+00
+22
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ee
+f0
+e4
+90
+4e
+ae
+f0
+90
+4e
+ae
+e0
+ff
+c3
+94
+08
+50
+4d
+90
+4e
+b0
+e0
+30
+e0
+2e
+90
+4e
+ad
+e0
+fe
+33
+33
+33
+54
+f8
+fe
+ef
+4e
+90
+4e
+b2
+f0
+a3
+e0
+30
+e0
+0d
+90
+4e
+b2
+e0
+90
+06
+96
+93
+ff
+b1
+19
+80
+0b
+90
+4e
+b2
+e0
+90
+06
+96
+93
+ff
+b1
+db
+90
+4e
+b0
+e0
+ff
+c3
+13
+f0
+90
+4e
+b3
+e0
+ff
+c3
+13
+f0
+90
+4e
+ae
+e0
+04
+f0
+80
+a9
+90
+4e
+b1
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+61
+f2
+90
+4e
+b1
+e0
+60
+07
+7b
+01
+7a
+4e
+79
+c9
+22
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
+22
+90
+4f
+0f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+ef
+c3
+9d
+50
+1b
+90
+4f
+0f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+60
+03
+7f
+00
+22
+0f
+80
+e0
+7f
+01
+22
+e4
+fe
+ef
+c3
+94
+e0
+40
+20
+ef
+d3
+94
+e7
+50
+1a
+90
+4e
+c9
+e0
+fe
+ef
+54
+07
+ff
+74
+01
+a8
+07
+08
+80
+02
+c3
+33
+d8
+fc
+4e
+90
+4e
+c9
+f0
+22
+e4
+fe
+ee
+c3
+94
+06
+50
+21
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+6f
+70
+02
+a1
+da
+ed
+70
+75
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+22
+ef
+c3
+94
+38
+50
+32
+ef
+13
+13
+13
+54
+1f
+24
+02
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+4d
+d0
+82
+d0
+83
+f0
+90
+4d
+09
+74
+01
+f0
+80
+30
+ef
+13
+13
+13
+54
+1f
+24
+03
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+4d
+d0
+82
+d0
+83
+f0
+90
+4d
+11
+74
+01
+f0
+0e
+ee
+64
+18
+60
+02
+a1
+43
+22
+e4
+fe
+90
+4f
+2a
+f0
+ef
+c3
+94
+e0
+40
+21
+ef
+d3
+94
+e7
+50
+1b
+90
+4e
+c9
+e0
+fe
+ef
+54
+07
+ff
+74
+01
+a8
+07
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5e
+90
+4e
+c9
+f0
+22
+e4
+fe
+ee
+c3
+94
+06
+50
+67
+90
+4f
+2a
+e0
+70
+27
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+6f
+60
+02
+c1
+e1
+ee
+b4
+05
+0b
+24
+ca
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+90
+4f
+2a
+74
+01
+f0
+c1
+e1
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+74
+c9
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ed
+f0
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+70
+02
+c1
+e9
+ee
+64
+05
+70
+78
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+80
+6a
+ef
+c3
+94
+38
+50
+33
+ef
+13
+13
+13
+54
+1f
+24
+02
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+90
+4d
+09
+74
+01
+f0
+80
+31
+ef
+13
+13
+13
+54
+1f
+24
+03
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+90
+4d
+11
+74
+01
+f0
+0e
+ee
+64
+18
+60
+02
+c1
+0a
+22
+90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
+ef
+30
+e0
+12
+90
+4c
+f4
+e0
+b4
+03
+04
+74
+02
+f0
+22
+90
+4c
+f4
+74
+01
+f0
+22
+90
+4c
+f4
+74
+04
+f0
+22
+90
+4f
+0a
+ed
+f0
+90
+4f
+09
+ef
+f0
+e4
+90
+4f
+0b
+f0
+ef
+30
+e0
+05
+e4
+90
+4c
+f8
+f0
+90
+4f
+0a
+e0
+ff
+a3
+f0
+90
+4d
+f5
+e0
+64
+01
+70
+6c
+ef
+64
+04
+60
+08
+90
+4f
+0a
+e0
+64
+16
+70
+36
+90
+4f
+0a
+e0
+ff
+b4
+04
+08
+90
+4c
+c1
+74
+02
+f0
+80
+09
+ef
+b4
+16
+05
+e4
+90
+4c
+c1
+f0
+90
+4d
+1f
+74
+01
+f0
+e4
+90
+4f
+0b
+f0
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+fc
+7f
+c1
+7e
+7f
+12
+0e
+12
+80
+29
+90
+4f
+0a
+e0
+b4
+29
+22
+90
+4f
+09
+e0
+30
+e0
+16
+90
+4d
+fa
+e0
+60
+04
+e4
+f0
+80
+06
+90
+4d
+fa
+74
+01
+f0
+90
+4c
+bf
+74
+02
+f0
+e4
+90
+4f
+0b
+f0
+90
+4d
+f5
+e0
+64
+01
+60
+03
+02
+30
+66
+90
+4e
+69
+e0
+60
+03
+02
+30
+66
+90
+4f
+0a
+e0
+24
+d7
+60
+3c
+24
+ef
+b4
+0c
+00
+40
+03
+02
+30
+b4
+90
+2f
+d6
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+30
+03
+02
+30
+0c
+02
+30
+14
+02
+30
+1c
+02
+30
+24
+02
+30
+2c
+02
+30
+34
+02
+30
+3c
+02
+30
+44
+02
+30
+4c
+02
+30
+54
+02
+30
+5c
+90
+4f
+0b
+74
+35
+f0
+02
+30
+b4
+90
+4f
+0b
+74
+d7
+f0
+02
+30
+b4
+90
+4f
+0b
+74
+d8
+f0
+01
+b4
+90
+4f
+0b
+74
+3c
+f0
+01
+b4
+90
+4f
+0b
+74
+3d
+f0
+01
+b4
+90
+4f
+0b
+74
+3e
+f0
+01
+b4
+90
+4f
+0b
+74
+3f
+f0
+01
+b4
+90
+4f
+0b
+74
+f4
+f0
+80
+78
+90
+4f
+0b
+74
+f2
+f0
+80
+70
+90
+4f
+0b
+74
+f5
+f0
+80
+68
+90
+4f
+0b
+74
+f8
+f0
+80
+60
+90
+4f
+0b
+74
+f6
+f0
+80
+58
+90
+4f
+0b
+74
+f7
+f0
+80
+50
+80
+4e
+90
+4f
+0a
+e0
+b4
+4a
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+50
+7d
+08
+12
+2e
+ea
+90
+4f
+0a
+e0
+b4
+4b
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+52
+7d
+08
+12
+2e
+ea
+90
+4f
+0a
+e0
+b4
+4e
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+51
+7d
+08
+12
+2e
+ea
+90
+4f
+0b
+e0
+ff
+22
+e4
+ff
+90
+4f
+2d
+f0
+fe
+fd
+ef
+90
+06
+81
+93
+60
+49
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+0f
+80
+b0
+51
+a3
+90
+81
+1c
+e0
+90
+4f
+2d
+f0
+90
+4d
+ef
+e0
+60
+20
+e4
+ff
+31
+52
+7f
+01
+31
+52
+7f
+02
+31
+52
+7f
+03
+31
+52
+7f
+04
+31
+52
+7f
+05
+31
+52
+7f
+06
+31
+52
+7f
+07
+80
+10
+90
+4f
+2d
+e0
+ff
+90
+00
+a3
+f0
+ef
+f4
+90
+00
+a7
+f0
+22
+90
+4f
+31
+ef
+f0
+31
+f1
+92
+08
+90
+4f
+31
+e0
+ff
+a2
+08
+b3
+92
+07
+ef
+f4
+70
+02
+21
+f0
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+07
+43
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a3
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+4f
+30
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4f
+30
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+90
+4f
+32
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+31
+f7
+92
+09
+90
+4f
+32
+e0
+ff
+a2
+09
+b3
+92
+01
+02
+0a
+ec
+90
+4d
+fe
+e0
+64
+02
+70
+48
+90
+4c
+e9
+e0
+60
+38
+90
+4c
+cc
+e0
+64
+01
+60
+22
+90
+4c
+c3
+e0
+b4
+01
+04
+7f
+ff
+80
+c3
+90
+4c
+c3
+e0
+b4
+02
+04
+7f
+ff
+80
+b8
+90
+4c
+c3
+e0
+64
+03
+70
+1c
+7f
+ff
+80
+ac
+c2
+01
+7f
+ff
+12
+0a
+ec
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+ee
+e0
+60
+04
+7f
+0f
+51
+36
+22
+e4
+ff
+ef
+fd
+7c
+00
+24
+78
+fb
+ec
+34
+80
+8b
+82
+f5
+83
+e0
+fe
+ed
+24
+70
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+e0
+4e
+f4
+fe
+ef
+24
+7c
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+ee
+f0
+0f
+ef
+b4
+04
+cf
+22
+e4
+ff
+90
+4f
+0c
+f0
+fe
+fd
+a3
+f0
+a3
+f0
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+41
+e3
+e4
+ff
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+61
+68
+e4
+ff
+ef
+90
+06
+81
+93
+60
+40
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+60
+23
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+ee
+5d
+d0
+82
+d0
+83
+f0
+0f
+80
+b9
+22
+90
+4c
+c3
+e0
+b4
+01
+07
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+c3
+e0
+b4
+02
+07
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+c3
+e0
+b4
+03
+07
+c2
+06
+7f
+ff
+02
+0e
+f4
+c2
+06
+7f
+0f
+02
+0e
+f4
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+1c
+90
+4d
+20
+e0
+04
+f0
+e0
+b4
+01
+03
+12
+0f
+a2
+90
+4d
+20
+e0
+b4
+02
+08
+e4
+f0
+90
+4d
+1f
+f0
+91
+35
+22
+90
+4c
+ea
+e0
+60
+02
+14
+f0
+90
+4c
+ef
+e0
+60
+02
+14
+f0
+90
+4c
+f8
+e0
+60
+0b
+14
+f0
+e0
+70
+06
+90
+4c
+f4
+74
+06
+f0
+90
+4c
+e5
+e0
+60
+2c
+90
+4c
+ee
+e0
+70
+06
+90
+4c
+e9
+e0
+60
+06
+e4
+90
+4c
+e5
+f0
+22
+90
+4c
+e5
+e0
+14
+f0
+12
+0f
+a2
+90
+4c
+e5
+e0
+70
+57
+91
+35
+c2
+06
+7f
+ff
+12
+0e
+f4
+80
+4c
+90
+4c
+e9
+e0
+70
+46
+90
+4c
+ee
+e0
+70
+40
+90
+4c
+e2
+e0
+60
+3a
+14
+f0
+e0
+ff
+c3
+94
+08
+50
+1b
+e4
+90
+41
+31
+f0
+ef
+30
+e1
+09
+d2
+01
+7f
+0f
+12
+0a
+ec
+80
+16
+c2
+01
+7f
+0f
+12
+0a
+ec
+80
+0d
+90
+41
+31
+74
+01
+f0
+c2
+01
+7f
+0f
+12
+0a
+ec
+90
+4c
+e2
+e0
+70
+03
+74
+0c
+f0
+90
+4d
+ef
+e0
+70
+36
+90
+4d
+f0
+e0
+64
+01
+70
+2e
+90
+4c
+e3
+f0
+a3
+f0
+90
+4d
+f0
+f0
+90
+4e
+60
+e0
+60
+0d
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+80
+11
+90
+48
+00
+e0
+60
+0b
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+90
+4d
+ea
+e0
+60
+09
+e0
+14
+f0
+e0
+70
+03
+12
+0f
+d8
+90
+4d
+d4
+e0
+60
+11
+e0
+14
+f0
+e0
+70
+0b
+90
+4d
+3d
+e0
+70
+05
+7f
+1b
+12
+08
+5f
+90
+4d
+f9
+e0
+60
+29
+e0
+14
+f0
+e0
+70
+23
+90
+4d
+46
+e0
+60
+02
+e4
+f0
+90
+4c
+c7
+e0
+b4
+04
+07
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+3a
+f0
+22
+90
+4f
+22
+ed
+f0
+90
+00
+01
+12
+03
+cf
+90
+4f
+23
+f0
+22
+90
+4d
+ff
+e0
+60
+4c
+e0
+14
+f0
+e0
+70
+46
+90
+4c
+ed
+e0
+64
+05
+70
+3e
+90
+47
+f4
+e0
+54
+40
+fe
+a3
+e0
+54
+08
+64
+08
+70
+03
+ee
+64
+40
+60
+2a
+7f
+1e
+12
+08
+5f
+e4
+90
+4d
+d4
+f0
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+90
+4e
+69
+f0
+90
+4d
+d3
+f0
+12
+27
+e3
+7f
+2c
+12
+08
+5f
+e4
+90
+4c
+ed
+f0
+22
+90
+4c
+e9
+e0
+60
+28
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+fc
+f0
+90
+4c
+e9
+e0
+14
+f0
+e0
+70
+14
+90
+4c
+c4
+e0
+90
+4c
+c3
+f0
+90
+4c
+c0
+f0
+7f
+0d
+12
+09
+1c
+12
+0f
+cf
+90
+4c
+ee
+e0
+60
+18
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+ee
+e0
+14
+f0
+e0
+70
+08
+7f
+0a
+12
+0e
+c0
+12
+0f
+cf
+22
+7b
+01
+7a
+4e
+79
+6a
+78
+7c
+7c
+4e
+7d
+01
+7e
+00
+7f
+12
+02
+03
+90
+90
+4c
+d3
+74
+05
+f0
+e4
+a3
+f0
+ff
+ef
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+51
+f0
+a3
+f0
+0f
+ef
+b4
+04
+ea
+90
+4c
+93
+e0
+ff
+a3
+e0
+90
+4c
+fa
+cf
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+7b
+7a
+14
+79
+8e
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+b8
+7a
+1e
+79
+85
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4e
+f1
+12
+05
+82
+00
+00
+00
+00
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+03
+02
+39
+7a
+90
+4c
+95
+e0
+fe
+a3
+e0
+ff
+90
+4c
+d4
+e0
+fd
+04
+f0
+ed
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+ee
+f0
+a3
+ef
+f0
+90
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
+e4
+90
+4e
+f0
+f0
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+90
+4e
+f0
+e0
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+eb
+2f
+ff
+ea
+3e
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4e
+f1
+12
+05
+76
+90
+4e
+f0
+e0
+04
+f0
+e0
+b4
+04
+bf
+90
+4e
+f1
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+04
+fa
+f9
+f8
+12
+04
+c5
+90
+4e
+f1
+12
+05
+76
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+d3
+12
+05
+65
+50
+07
+e4
+90
+4c
+f9
+f0
+01
+b2
+90
+4c
+fa
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+40
+08
+90
+4c
+f9
+74
+64
+f0
+80
+5b
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+fb
+aa
+06
+e4
+90
+4e
+f1
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+c3
+9b
+ff
+ee
+9a
+fe
+ed
+94
+00
+fd
+ec
+94
+00
+fc
+e4
+7b
+64
+fa
+f9
+f8
+12
+04
+3a
+c0
+06
+c0
+07
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+fb
+e0
+9f
+ff
+90
+4c
+fa
+e0
+9e
+fe
+ab
+07
+fa
+e4
+f9
+f8
+d0
+07
+d0
+06
+12
+04
+c5
+90
+4c
+f9
+ef
+f0
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+27
+90
+4c
+d5
+74
+02
+f0
+90
+4d
+00
+e0
+64
+02
+70
+02
+21
+72
+90
+4c
+ff
+74
+01
+f0
+fb
+7a
+4c
+79
+ff
+fd
+7c
+00
+7f
+c0
+7e
+7f
+12
+0e
+12
+80
+7a
+90
+4d
+00
+e0
+64
+02
+60
+07
+90
+4c
+ff
+e0
+b4
+01
+15
+e4
+90
+4c
+ff
+f0
+7b
+01
+7a
+4c
+79
+ff
+7d
+01
+fc
+7f
+c0
+7e
+7f
+12
+0e
+12
+90
+4c
+de
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+1d
+90
+4c
+d5
+74
+01
+f0
+90
+4d
+01
+e0
+70
+2b
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+12
+f0
+e4
+a3
+f0
+80
+1a
+e4
+90
+4c
+d5
+f0
+90
+4d
+01
+e0
+70
+0f
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+5d
+f0
+e4
+a3
+f0
+90
+4c
+d5
+e0
+90
+4d
+00
+f0
+22
+02
+0f
+30
+90
+4e
+fe
+ee
+f0
+a3
+ef
+f0
+90
+4f
+00
+ec
+f0
+a3
+ed
+f0
+90
+4f
+00
+e0
+fe
+a3
+e0
+ff
+d3
+90
+4e
+ff
+e0
+9f
+90
+4e
+fe
+e0
+9e
+40
+16
+90
+4f
+00
+e0
+fe
+a3
+e0
+ff
+90
+4e
+ff
+e0
+9f
+ff
+90
+4e
+fe
+e0
+9e
+fe
+80
+1e
+90
+4e
+fe
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4f
+01
+e0
+9f
+ff
+90
+4f
+00
+e0
+9e
+fe
+ad
+03
+c3
+eb
+9f
+ff
+e4
+9e
+fe
+22
+90
+4f
+24
+ee
+f0
+a3
+ef
+f0
+a9
+05
+90
+4b
+9e
+e0
+fe
+a3
+e0
+ff
+ad
+01
+19
+ed
+60
+2f
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+4f
+24
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ed
+f0
+ad
+07
+ac
+06
+bc
+4b
+d4
+bd
+9a
+d1
+7e
+4b
+7f
+36
+80
+cb
+90
+4b
+9e
+ee
+f0
+a3
+ef
+f0
+22
+7a
+0c
+79
+4b
+90
+4f
+12
+74
+01
+f0
+a3
+74
+0c
+f0
+a3
+74
+4b
+f0
+90
+4b
+a0
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9e
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+61
+d7
+7e
+0c
+7f
+4b
+7d
+03
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+b4
+02
+2b
+90
+4f
+13
+e4
+75
+f0
+02
+12
+04
+0e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+90
+4e
+7c
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+05
+dd
+61
+d7
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+04
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+7f
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+61
+d7
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+05
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+88
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+6d
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+03
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+8b
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+02
+80
+fe
+90
+4b
+a5
+e0
+fe
+a3
+e0
+ff
+90
+4c
+5e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+22
+90
+4e
+82
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+37
+12
+05
+d9
+90
+4b
+a5
+e0
+ff
+a3
+e0
+90
+4c
+5e
+cf
+f0
+a3
+ef
+f0
+80
+ca
+90
+4c
+8d
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+4e
+85
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+05
+d9
+90
+4c
+8d
+e0
+a3
+f0
+80
+dd
+22
+90
+04
+46
+e0
+ff
+22
+90
+0b
+7f
+74
+01
+f0
+e4
+90
+0b
+7e
+f0
+22
+90
+82
+80
+74
+01
+f0
+22
+90
+4e
+c1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+c7
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+c4
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+c1
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4e
+d7
+ee
+f0
+a3
+ef
+f0
+90
+4e
+db
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+d9
+ec
+f0
+a3
+ed
+f0
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+90
+4e
+c4
+c9
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7b
+01
+7a
+0b
+79
+86
+91
+4a
+90
+0b
+83
+74
+a0
+f0
+90
+4e
+d7
+e0
+ff
+a3
+e0
+90
+0b
+84
+cf
+f0
+a3
+ef
+f0
+90
+4e
+da
+e0
+24
+03
+fd
+90
+4e
+d9
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+02
+27
+db
+90
+4f
+1b
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+00
+22
+90
+4f
+1b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+02
+03
+fc
+90
+4f
+1b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+78
+a2
+02
+92
+00
+b1
+29
+22
+ac
+07
+ec
+f4
+60
+17
+af
+04
+a2
+05
+92
+03
+b1
+b9
+af
+04
+a2
+05
+b3
+92
+02
+b1
+8a
+af
+04
+c2
+04
+b1
+ca
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+7c
+a2
+03
+92
+00
+b1
+29
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+70
+a2
+04
+92
+00
+b1
+29
+22
+ef
+f4
+60
+3a
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+b4
+fc
+aa
+55
+40
+00
+00
+40
+69
+04
+00
+00
+80
+09
+0a
+00
+0c
+00
+11
+00
+00
+00
+00
+00
+00
+00
+35
+00
+00
+00
+4f
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+09
+18
+00
+04
+c8
+00
+5c
+40
+00
+3a
+ce
+00
+00
+80
+e0
+00
+90
+00
+00
+00
+20
+00
+a0
+01
+00
+4c
+00
+00
+00
+aa
+55
+02
+00
+4f
+4d
+20
+00
+aa
+55
+01
+00
+31
+41
+01
+aa
+55
+02
+00
+13
+42
+40
+03
+aa
+55
+01
+00
+f7
+41
+0a
+aa
+55
+02
+00
+f5
+41
+10
+00
+aa
+55
+01
+00
+33
+41
+00
+aa
+55
+02
+00
+b1
+4c
+00
+00
+aa
+55
+03
+00
+4a
+41
+40
+25
+00
+aa
+55
+06
+00
+40
+41
+00
+00
+02
+6b
+46
+54
+aa
+55
+13
+00
+02
+47
+12
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+03
+00
+80
+42
+12
+00
+01
+aa
+55
+01
+00
+84
+42
+01
+aa
+55
+01
+00
+47
+47
+0a
+aa
+55
+01
+00
+dc
+47
+01
+aa
+55
+01
+00
+f6
+47
+01
+aa
+55
+01
+00
+72
+41
+01
+aa
+55
+0e
+00
+5b
+47
+06
+03
+11
+00
+00
+01
+02
+10
+24
+11
+00
+12
+01
+00
+aa
+55
+01
+00
+71
+47
+00
+aa
+55
+65
+02
+11
+48
+04
+00
+11
+01
+00
+10
+02
+11
+24
+00
+01
+00
+00
+36
+01
+a5
+09
+00
+00
+0a
+00
+01
+00
+00
+09
+00
+01
+35
+03
+19
+11
+24
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+11
+35
+03
+19
+00
+11
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+00
+09
+35
+08
+35
+06
+19
+11
+24
+09
+01
+00
+09
+00
+0d
+35
+0f
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+13
+35
+03
+19
+00
+11
+09
+01
+00
+25
+3d
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+57
+69
+72
+65
+6c
+65
+73
+73
+20
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+09
+01
+01
+25
+08
+4b
+65
+79
+62
+6f
+61
+72
+64
+09
+01
+02
+25
+10
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+43
+6f
+72
+70
+2e
+20
+20
+09
+02
+00
+09
+01
+00
+09
+02
+01
+09
+01
+11
+09
+02
+02
+08
+40
+09
+02
+03
+08
+21
+09
+02
+04
+28
+01
+09
+02
+05
+28
+01
+09
+02
+06
+35
+94
+35
+92
+08
+22
+25
+8e
+05
+01
+09
+06
+a1
+01
+85
+01
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+95
+01
+75
+08
+81
+01
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+01
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+02
+19
+00
+2a
+3c
+02
+15
+00
+26
+3c
+02
+95
+01
+75
+10
+81
+00
+c0
+05
+01
+09
+06
+a1
+01
+85
+05
+95
+38
+75
+01
+15
+00
+25
+01
+05
+07
+19
+00
+29
+37
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+06
+95
+38
+75
+01
+15
+00
+25
+01
+05
+07
+19
+38
+29
+6f
+81
+02
+c0
+09
+02
+07
+35
+08
+35
+06
+09
+04
+09
+09
+01
+00
+09
+02
+0b
+09
+01
+00
+09
+02
+0c
+09
+1f
+40
+09
+02
+0d
+28
+00
+09
+02
+0e
+28
+01
+09
+02
+0f
+09
+00
+12
+09
+02
+10
+09
+00
+00
+03
+10
+02
+12
+00
+00
+01
+00
+01
+00
+01
+36
+00
+a1
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+01
+00
+25
+2f
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+57
+69
+72
+65
+6c
+65
+73
+73
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+20
+50
+6e
+50
+20
+53
+65
+72
+76
+65
+72
+09
+01
+01
+25
+08
+4b
+65
+79
+62
+6f
+61
+72
+64
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+04
+e8
+09
+02
+02
+09
+70
+21
+09
+02
+03
+09
+00
+01
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+00
+aa
+55
+02
+00
+59
+47
+11
+48
+aa
+55
+01
+00
+32
+41
+43
+aa
+55
+01
+00
+fb
+41
+00
+aa
+55
+08
+00
+38
+41
+ff
+ff
+8f
+f8
+83
+9d
+59
+82
+aa
+55
+01
+00
+dc
+07
+00
+aa
+55
+01
+00
+a2
+00
+00
+aa
+55
+01
+00
+dd
+07
+00
+aa
+55
+01
+00
+16
+00
+27
+aa
+55
+01
+00
+fd
+47
+ff
+aa
+55
+01
+00
+f7
+47
+ff
+aa
+55
+01
+00
+6e
+41
+80
+aa
+55
+02
+00
+a2
+4b
+02
+01
+aa
+55
+c3
+01
+04
+45
+01
+00
+00
+28
+02
+01
+18
+02
+00
+03
+28
+01
+20
+03
+00
+05
+2a
+01
+00
+04
+00
+02
+29
+02
+00
+00
+05
+00
+00
+28
+02
+00
+18
+06
+00
+03
+28
+01
+02
+07
+00
+00
+2a
+0e
+42
+54
+35
+2e
+30
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+08
+00
+03
+28
+01
+02
+09
+00
+01
+2a
+02
+c1
+03
+0a
+00
+03
+28
+01
+02
+0b
+00
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+00
+28
+02
+0a
+18
+0d
+00
+03
+28
+01
+02
+0e
+00
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+03
+28
+01
+02
+10
+00
+50
+2a
+07
+02
+e8
+04
+21
+70
+01
+00
+11
+00
+00
+28
+02
+12
+18
+12
+00
+03
+28
+01
+06
+13
+00
+4e
+2a
+01
+01
+14
+00
+03
+28
+01
+12
+15
+00
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+29
+02
+00
+00
+17
+00
+08
+29
+02
+01
+01
+18
+00
+03
+28
+01
+12
+19
+00
+4d
+2a
+02
+00
+00
+1a
+00
+02
+29
+02
+00
+00
+1b
+00
+08
+29
+02
+03
+01
+1c
+00
+03
+28
+01
+12
+1d
+00
+4d
+2a
+02
+00
+00
+1e
+00
+02
+29
+02
+00
+00
+1f
+00
+08
+29
+02
+02
+01
+20
+00
+03
+28
+01
+0e
+21
+00
+4d
+2a
+02
+00
+00
+22
+00
+02
+29
+02
+00
+00
+23
+00
+08
+29
+02
+01
+02
+24
+00
+03
+28
+01
+02
+25
+00
+4b
+2a
+78
+05
+01
+09
+06
+a1
+01
+85
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+02
+19
+00
+2a
+ff
+03
+15
+00
+26
+ff
+03
+95
+01
+75
+10
+81
+00
+c0
+05
+01
+09
+80
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+26
+00
+03
+28
+01
+02
+27
+00
+4a
+2a
+04
+11
+01
+00
+01
+28
+00
+03
+28
+01
+04
+29
+00
+4c
+2a
+01
+00
+2a
+00
+00
+28
+02
+0f
+18
+2b
+00
+03
+28
+01
+12
+2c
+00
+19
+2a
+01
+64
+2d
+00
+02
+29
+02
+00
+00
+00
+00
+aa
+55
+01
+00
+6a
+4c
+17
+aa
+55
+01
+00
+f9
+46
+50
+aa
+55
+01
+00
+c2
+44
+14
+aa
+55
+06
+00
+f9
+44
+11
+46
+34
+54
+77
+dd
+aa
+55
+01
+00
+7e
+4c
+00
+aa
+55
+06
+00
+b8
+4c
+15
+00
+1d
+00
+19
+00
+aa
+55
+02
+00
+3e
+4d
+2c
+00
+aa
+55
+01
+00
+60
+4c
+50
+aa
+55
+10
+00
+6c
+4c
+0c
+00
+05
+00
+12
+b4
+08
+00
+08
+00
+08
+00
+00
+00
+2c
+01
+aa
+55
+0f
+00
+19
+44
+0e
+42
+54
+35
+2e
+30
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+01
+00
+e4
+44
+07
+aa
+55
+01
+00
+dd
+44
+01
+aa
+55
+0c
+00
+d9
+43
+1f
+02
+01
+05
+03
+19
+c1
+03
+03
+03
+12
+18
+aa
+55
+07
+00
+6b
+4d
+06
+ff
+06
+00
+03
+00
+80
+aa
+55
+11
+00
+f9
+43
+1f
+0f
+09
+42
+54
+35
+2e
+30
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+04
+00
+53
+4d
+20
+21
+12
+24
+aa
+55
+04
+00
+91
+4c
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+8f
+4c
+01
+aa
+55
+01
+00
+10
+4c
+01
+aa
+55
+01
+00
+e2
+4b
+02
+aa
+55
+01
+00
+0f
+4c
+40
+aa
+55
+01
+00
+0a
+4c
+00
+aa
+55
+02
+00
+e4
+4b
+c0
+12
+aa
+55
+10
+00
+f0
+4b
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+ef
+4b
+ff
+aa
+55
+04
+00
+eb
+4b
+20
+15
+10
+05
+aa
+55
+01
+00
+7d
+4c
+60
+aa
+55
+0a
+00
+37
+0d
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+04
+00
+40
+4d
+00
+48
+5d
+00
+aa
+55
+07
+00
+76
+4d
+ff
+ff
+ff
+ff
+e8
+fd
+00
+aa
+55
+08
+00
+16
+42
+8f
+10
+ce
+00
+0a
+0b
+ef
+0f
+aa
+55
+01
+00
+f8
+41
+00
+aa
+55
+08
+00
+a3
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+02
+00
+5d
+41
+02
+24
+aa
+55
+08
+00
+4d
+41
+12
+00
+00
+02
+12
+00
+00
+02
+aa
+55
+02
+00
+5b
+41
+20
+00
+aa
+55
+04
+00
+57
+41
+20
+00
+00
+20
+aa
+55
+04
+00
+5f
+41
+80
+03
+00
+06
+aa
+55
+02
+00
+98
+4c
+00
+13
+aa
+55
+02
+00
+9b
+42
+30
+3f
+aa
+55
+01
+00
+aa
+42
+20
+aa
+55
+7f
+00
+70
+4f
+07
+ff
+0a
+fb
+0b
+ff
+1a
+fb
+1b
+fb
+1c
+fb
+1d
+f6
+1e
+f2
+1f
+ee
+20
+ea
+21
+e6
+22
+e2
+23
+de
+24
+da
+25
+d6
+26
+d2
+27
+ce
+28
+ca
+29
+c6
+2a
+c2
+2b
+bd
+2c
+b9
+2d
+b5
+2e
+b1
+2f
+ad
+30
+a9
+31
+80
+32
+80
+33
+80
+34
+c0
+35
+c1
+36
+c2
+37
+c3
+38
+c4
+39
+c5
+3a
+c6
+3b
+c7
+3c
+06
+3d
+07
+3e
+46
+3f
+85
+40
+86
+41
+87
+42
+c6
+43
+c7
+44
+d6
+45
+d7
+46
+e6
+47
+f5
+48
+00
+49
+f8
+4a
+7f
+4e
+ec
+4f
+5e
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+68
+e4
+69
+00
+6a
+00
+6b
+30
+ff
+aa
+55
+02
+00
+63
+41
+70
+4f
+aa
+55
+0a
+00
+91
+4a
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+aa
+55
+0a
+00
+87
+4a
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+6e
+c0
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+1e
+bd
Index: output/fw.hex
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/fw.hex	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/fw.hex	(working copy)
@@ -0,0 +1,995 @@
+:100000000205DF0202ABE86480F8E933E8336011EF
+:100010000460F0ED33EC337009E8FCE9FDEAFEEB37
+:10002000FF220460DED3EB9FEA9EE99DE8C2E78CE5
+:10003000F0C2F795F0400CE8CCF8E9CDF9EACEFA39
+:10004000EBCFFB12027685D0F05804700320D5B3B5
+:10005000E80470075002B2D50202B592D5EC0460F4
+:10006000F7E4CCC0E0C398F8603B94186008400DFA
+:10007000D0E0FB02028DE4FBFAC9FC8028E830E402
+:1000800006E4C9FBE4CAFCE830E305E4C9CACBFCDA
+:10009000E854076010F8C3E913F9EA13FAEB13FB0D
+:1000A000EC13FCD8F130F52FC3E49CFCEF9BFFEE82
+:1000B0009AFEED99FDD0E0FBEF4E4D4C701222DB25
+:1000C000030202B2EC2CFCEF33FFEE33FEED33FD06
+:1000D000ED30E7EB02028DEF2BFFEE3AFEED39FD3E
+:1000E000D0E0FB50130BBB00030202B5ED13FDEE95
+:1000F00013FEEF13FFEC13FC02028DEC4D6011E8D0
+:10010000497017ED33EC3304600DE4FCFFFEFD2273
+:10011000E933E8330470F80202AB12027658046047
+:1001200009E4CC248150062850090202B528400376
+:100130000202B2C0E0EB4A7044B98006D0E0FB0294
+:1001400002A1EF4E701CBD8008EBFFEAFEE9FD80C6
+:10015000EBE98DF0A4FEE5F00201E4E9CDF9EAFE59
+:10016000EBFFEF89F0A4FCE5F0CE89F0A42EFFE4CC
+:1001700035F0CD89F0A42DFEE435F08067EF4E70A8
+:1001800005BD80D780C3EF8BF0A4ACF0EE8BF0A45C
+:100190002CFCE435F0F8EF8AF0A42CE5F038FCE410
+:1001A00033CB8DF0A42CFCE5F03BF8EE8AF0A42CC8
+:1001B000FCE5F038F8E433CF89F0A42CFCE5F03806
+:1001C000CF3400CE89F0A42FFFE5F03EFEE433C922
+:1001D0008DF0A42EFEE5F039CD8AF0A42FFFE5F0D6
+:1001E0003EFEE43DFD33D0E0FB50070BBB000F02A9
+:1001F00002B5EC2CFCEF33FFEE33FEED33FD0202D3
+:100200008D75F020800E75F010800575F0087D006A
+:100210007E007F003392D530D503120557EC334072
+:1002200010EF33FFEE33FEED33FDEC33FCD5F0ED94
+:1002300022E5F0247EA2D513CC92E7CDCEFF22EDAD
+:10024000D2E7CD33EC3392D524814006E4FFFEFDA6
+:10025000FC22FCE4CFCECDCC24E0501174FF80ED25
+:10026000C3CC13CCCD13CDCE13CECF13CF0470F0AF
+:1002700030D5DE020557E9D2E7C933E833F892D525
+:10028000EDD2E7CD33EC33FC5002B2D522EC30E7AF
+:10029000100FBF000C0EBE00080DBD00040BEB607C
+:1002A00014A2D5EB13FCED92E7FD2274FFFCFDFEDA
+:1002B000FF22E480F8A2D574FF13FC7D80E480EF78
+:1002C000E709F608DFFA8046E709F208DFFA803E20
+:1002D00088828C83E709F0A3DFFA8032E309F6080D
+:1002E000DFFA8078E309F208DFFA807088828C8375
+:1002F000E309F0A3DFFA806489828A83E0A3F60829
+:10030000DFFA805889828A83E0A3F208DFFA804C02
+:1003100080D280FA80C680D4806980F280338010D9
+:1003200080A680EA809A80A880DA80E280CA803342
+:1003300089828A83ECFAE493A3C8C582C8CCC583BA
+:10034000CCF0A3C8C582C8CCC583CCDFE9DEE7808A
+:100350000D89828A83E493A3F608DFF9ECFAA9F009
+:10036000EDFB2289828A83ECFAE0A3C8C582C8CC5F
+:10037000C583CCF0A3C8C582C8CCC583CCDFEADE78
+:10038000E880DB89828A83E493A3F208DFF980CCDA
+:1003900088F0EF60010E4E60C388F0ED2402B404D3
+:1003A0000050B9F582EB2402B4040050AF2323457A
+:1003B000822390031073BB010689828A83E0225056
+:1003C00002E722BBFE02E32289828A83E49322BBF6
+:1003D000010CE58229F582E5833AF583E022500697
+:1003E000E92582F8E622BBFE06E92582F8E222E54D
+:1003F0008229F582E5833AF583E49322BB010689DD
+:10040000828A83F0225002F722BBFE01F322C5F05C
+:10041000F8A3E028F0C5F0F8E58215827002158394
+:10042000E038F022A3F8E0C5F025F0F0E58215826F
+:1004300070021583E0C838F0E822E88FF0A4CC8B76
+:10044000F0A42CFCE98EF0A42CFC8AF0EDA42CFC8A
+:10045000EA8EF0A4CDA8F08BF0A42DCC3825F0FDC9
+:10046000E98FF0A42CCD35F0FCEB8EF0A4FEA9F0C2
+:10047000EB8FF0A4CFC5F02ECD39FEE43CFCEAA40E
+:100480002DCE35F0FDE43CFC2275F008758200EFBE
+:100490002FFFEE33FECD33CDCC33CCC58233C582B6
+:1004A0009BED9AEC99E58298400CF582EE9BFEED6F
+:1004B0009AFDEC99FC0FD5F0D6E4CEFBE4CDFAE43E
+:1004C000CCF9A88222B800C1B90059BA002DEC8B32
+:1004D000F084CFCECDFCE5F0CBF97818EF2FFFEE0E
+:1004E00033FEED33FDEC33FCEB33FB10D7039940C7
+:1004F00004EB99FB0FD8E5E4F9FA227818EF2FFF07
+:10050000EE33FEED33FDEC33FCC933C910D7059B48
+:10051000E99A4007EC9BFCE99AF90FD8E0E4C9FAA4
+:10052000E4CCFB2275F010EF2FFFEE33FEED33FD30
+:10053000CC33CCC833C810D7079BEC9AE899400A53
+:10054000ED9BFDEC9AFCE899F80FD5F0DAE4CDFBD1
+:10055000E4CCFAE4C8F922C3E49FFFE49EFEE49DE4
+:10056000FDE49CFC22EB9FF5F0EA9E42F0E99D42FF
+:10057000F0E89C45F022ECF0A3EDF0A3EEF0A3EF41
+:10058000F022A8828583F0D083D0821205991205CB
+:1005900099120599120599E473E493A3C583C5F0F4
+:1005A000C583C8C582C8F0A3C583C5F0C583C8C5C7
+:1005B00082C822D083D082F8E493701274019370C1
+:1005C0000DA3A393F8740193F5828883E4737402F6
+:1005D000936860EFA3A3A380DF8A838982E47378A2
+:1005E0007FE4F6D8FD7581CF02062602397BE493BD
+:1005F000A3F8E493A34003F68001F208DFF4802916
+:10060000E493A3F85407240CC8C333C4540F442004
+:10061000C8834004F456800146F6DFE4800B0102F3
+:1006200004081020408090066BE47E019360BCA318
+:10063000FF543F30E509541FFEE493A360010ECF41
+:1006400054C025E060A840B8E493A3FAE493A3F86B
+:10065000E493A3C8C582C8CAC583CAF0A3C8C5822B
+:10066000C8CAC583CADFE9DEE780BE524E6AFF20F2
+:10067000FE000000FF1F7DFF349A000000FF35CB15
+:100680000008090A0B0C0D0E181917151413111672
+:100690001B1C1D1A00001D1E0000E6EDFF66062053
+:1006A00000FBFAFEE4F319223EF6E2FCFDF52823F6
+:1006B0003F0000E10000093C48000000E0F1872114
+:1006C0002CE3D6000000893D04F4000000E740352B
+:1006D000161C13240000412D2B182F250B11422E20
+:1006E000070C3026347F443A1A464A4C4937040FE7
+:1006F00008474D4B4E38433B1412312732360033F6
+:1007000052535F5C5964290E5054605D5A62150D56
+:100710005155615E5B63172A4F56570058391B1FAE
+:10072000F2EEE8E5D5FD0A0000000000051000002B
+:1007300000000000010100904F26EFF0904CF0E027
+:10074000700302085E904CF0E014F0E4904DF8F075
+:10075000904E69F0904F26E0FF75F01FA42402F53B
+:1007600082E4344EF583E064017070EF75F01FA4ED
+:100770002403F9744E35F0FA7B017E427F74904E6B
+:10078000EF7406F01210CE904F26E075F01FA424EF
+:1007900009F9744E35F0FA7B017E447F7B904EEF71
+:1007A0007410F01210CE904F26E075F01FA424199B
+:1007B000F9744E35F0FA7B017E447FF9904EEF7468
+:1007C00006F01210CE7F2B12085F904DF87401F0E6
+:1007D000E4904CF0F090448B04F022904F26E0FF20
+:1007E00075F01FA42402F582E4344EF583E0640220
+:1007F0007046EF75F01FA42403F9744E35F0FA7BB0
+:10080000017E427F74904EEF7406F01210CE904F2E
+:1008100026E075F01FA42409F9744E35F0FA7B0127
+:100820007E427F62904EEF7410F01210CE7F031163
+:100830005F90425E7401F022904E697401F0904422
+:10084000F9740FF0A3F0A3F0A3F0A3F0A3F0904D80
+:10085000D37401F07F2B115F90425E7401F02290FF
+:100860004F02EFF078037C4F7D017BFF7A077934EC
+:100870007E007F03120390904F02E0904F05F07BC3
+:10088000017A4F79037D03904EE4EBF0A3EAF0A3E5
+:10089000E9F0A3EDF0904B9CE0FFA3E0904EE8CF91
+:1008A000F0A3EFF0904B9AE0FEA3E0FF904B9CE0AA
+:1008B000FCA3E0FD7B6412397E904EE7E0FEEFC3BF
+:1008C0009E40E1904EE7E0FF14F0EF603F904EE471
+:1008D000E0FBA3E475F001120424A9F0FA1203B6B8
+:1008E000FF904EE8E475F00112042485F082F58350
+:1008F000EFF0904EE8E0FEA3E0FFBE4BC6BF36C36C
+:10090000904EE8744AF0A374A0F080B7904EE8E0EF
+:10091000FFA3E0904B9CCFF0A3EFF022904F29EF84
+:10092000F014B40D00400241E690093775F003A4BD
+:10093000C58325F0C5837302095E02095E02095E64
+:10094000020AE60209A50209E90209F1020A3C02CB
+:100950000A3C020AA3020AE6020AE602099D904C3A
+:10096000C5E0FF64036004EFB4020D7F22115F90C5
+:100970004F29E0904CEDF022904F29E014904DD695
+:10098000F09042137405F0904CF0F07F04115F7FFB
+:100990000AD1C07F2A115FE4904CEDF0227F0E1146
+:1009A0005F7F02015FE4904CF0F09100EF700AF17C
+:1009B00011EF7005F1E1EF600F904F29E0904CEDE1
+:1009C000F0904DFF7403F0227F1E115F121FC4E4EC
+:1009D000904DD4F0904DD3F0904E69F01227E37F04
+:1009E0002C115FE4904CEDF0229100E4904CEDF07E
+:1009F000227B017A4E79027D5D7C0012261C904C90
+:100A0000C074FFF0A3F07FC8D1C0C2017FFF51ECDA
+:100A10007B017A4E79027D5D7C007F607E7FD11202
+:100A20007B017A4C79C07D017C007FBD7E7FD11235
+:100A3000D2017FFF51ECE4904CEDF022E4904CF0B9
+:100A4000F0F111EF6009904F29E0904CEDF0227B1E
+:100A5000017A4C79007D047C007F527E7F12204E0B
+:100A60007F0AD1C0E4904E69F0904C00E0F4702110
+:100A7000A3E0B4FF1CA3E0B4FF17A3E0B4FF1290FF
+:100A80004C00740FF0A3F0A3F0A3F0904E69740132
+:100A9000F07F21115F904CC57402F0E4A3F0904CFC
+:100AA000EDF022E4904CF0F09100EF7005F111EFC1
+:100AB0006009904F29E0904CEDF022904CC5E06425
+:100AC00001601DE4904E69F07F23115F904CC57466
+:100AD00001F0E4A3F0904CEE74F0F0E4904CE9F0F7
+:100AE000E4904CEDF022E4904CEDF022EFF4600D38
+:100AF0007B017A807974A2019200123D2922904DE7
+:100B0000FEE06402600261FF904CE9E0600261FF78
+:100B1000904CEEE0600261FF904CD5E0B40204F12D
+:100B2000CF802E904CD5E0B40114904CF7E07021AA
+:100B3000904CE2740CF0904CF77401F08013904CE0
+:100B4000F7E0B4010CE4F0904CE2F0C2017F0F51E9
+:100B5000EC12180EEF700261DBC3904CE4E0947865
+:100B6000904CE3E09400504F904CB7E030E00E9092
+:100B70004CE2E07008D2017F0F51EC8012904CE5FE
+:100B8000E0700C904CE2E07006C2017F0F51EC90D7
+:100B90004CB7E030E108D2017F1051EC8006C20171
+:100BA0007F1051EC904CB7E030E206D2017F1F413C
+:100BB000ECC2017F1F41ECC2017F1051ECC2017FEA
+:100BC0001F51EC904CE2E07036904CE5E07030C282
+:100BD000017F0F51ECC2017F0F41ECC2017F105128
+:100BE000ECC2017F1F51EC904CE2E07012904CE59A
+:100BF000E0700CC2017F0F51ECC2017F0F51EC225B
+:100C0000904CC9E0FF64046004EFB403077F041153
+:100C10005F7F0122904CC7E0FF64046004EFB403DF
+:100C2000077F11115F7F0122904CC5E0FF640360D4
+:100C300004EFB402077F22115F7F01227F00229020
+:100C40004CCEE030E13D904CD0E0C394FA5003E04C
+:100C500004F0904CD0E064B47036904DF6E004F0AF
+:100C6000E0D394025007E4904CD0F08023904DF6EE
+:100C7000E0B4031C904DEF7401F0E4904CD0F0F11F
+:100C8000CF800DE4904DF6F0904DEFF0904CD0F009
+:100C9000904CCEE030E438904CEA740AF0904CD19D
+:100CA000E0C394FA5003E004F0904CD1E064067085
+:100CB00047904CC3E0FF600464FE703CE4904CCD70
+:100CC000F09100D1D87F0AD1C07F0A311C802990D1
+:100CD0004CCDE0601EE4F07F0D311C904CEB7401B4
+:100CE000F0904CC3E0904CC0F0904CBF7401F0B158
+:100CF0007BF1D8E4904CD1F0904CCEE030E34690BC
+:100D00004CEA740AF0904CD2E0C394FA5003E00429
+:100D1000F0904CD2E064067061904CE974F0F0E41D
+:100D2000904CEEF07F05311CD1D8E4904CCCF09083
+:100D30004CEB04F0904CC0E0904CC4F0904CC3E0FD
+:100D4000904CC0F022904CCCE0602AE4F0904CC370
+:100D5000E0FF904CC0E06F601C904CEB7401F0D150
+:100D6000D8904CC3E0904CC0F0904CBF7401F0910F
+:100D700000B17BF1D8E4904CD2F022904CBFE0FF60
+:100D80007002C111640160047FC8D1C0C2017FFF3D
+:100D900051EC904CBFE0640270317B017A4C7900D9
+:100DA0007D04FC7F527E7FD1127B017A4C79C17D1C
+:100DB000017C007F577E7FD1127B017A4D79FA7DCD
+:100DC000017C007F567E7FD1128017904CBFE0B42B
+:100DD00003107B017A4E79027D5D7C007F607E7F0F
+:100DE000D1127B017A4C79C07D017C007FBD7E7F72
+:100DF000D1127B017A4C79F27D027C007FBE7E7F2E
+:100E0000D112D2017FFF51EC7F0AD1C0E4904CBFD8
+:100E1000F022904EB8EEF0A3EFF0A3ECF0A3EDF0CB
+:100E2000A3EBF0A3EAF0A3E9F0904EBAE07002A3BE
+:100E3000E07002C1BF904EB8E0FEA3E0FF440F2473
+:100E400001FDE43EFCC3ED9FFFEC9EFE904EBFF023
+:100E5000A3EFF0904EBAE0FCA3E0FDD39FEC9E40E0
+:100E60000A904EBFE0FEA3E0FF8004AE04AF059001
+:100E70004EBFEEF0FCA3EFF0FDC3904EBBE09DF043
+:100E8000904EBAE09CF0904EB8E0FEA3E0FF904E8A
+:100E9000BCE0FBA3E0FAA3E0F9123C8E7F0AD1C0CC
+:100EA000904EBFE0FEA3E0FF904EBDEE8FF0120427
+:100EB0000E904EB9E02FF0904EB8E03EF0C12922DE
+:100EC000EFD394004011E4FDFC0DBD00010CBC0407
+:100ED000F8BDA6F51F80E922C2067F0FD1F4C20635
+:100EE0007F10D1F4C2067F0FD1F4C2067F0FD1F478
+:100EF000C2067F1FAC07ECF46016AF04D204123DAB
+:100F0000CAAF04A206920151ECAF04C202123D8A9C
+:100F100022904CC9E0B402077F1E115F7F0122902E
+:100F20004CC7E0B402077F0E115F7F01227F0022D1
+:100F300012367B123A28121F53B17B51FE904D7D21
+:100F4000E06003121BB9900B7EE014600D24FE706C
+:100F5000E21230BAD1D8F19580FE904CEAE0701ED2
+:100F6000904CECE07018904CE5E07012904DE9E088
+:100F7000700C904DF5E07006904CF8E06005123C66
+:100F80003780B01230BA904D01E06002D1D8F195AF
+:100F900080A1809F22E4900B7FF0900B7EF07F0178
+:100FA000C1C0904CC3E0B40106D2017FFF41EC9078
+:100FB0004CC3E0B40206D2017FFF41EC904CC3E089
+:100FC000B40306D2067FFFC1F4D2067F0FC1F4E45A
+:100FD000904D38F07F19015F9080107401F080FE11
+:100FE00022904CC0E0FF64FE6003EF70077F221187
+:100FF0005F7F01227F0022904F1FEDF0904F1EEF88
+:10100000F064017070A3E0FF75F01FA42402F58264
+:10101000E4344EF5837401F0EF75F01FA42403F55A
+:1010200082E4344EAF82FE7B017A0379D0904EEF9A
+:101030007406F011CE904F1FE075F01FA42409F53F
+:1010400082E4344EAF82FE7B017A44797B904EEF8E
+:101050007410F011CE904F1FE075F01FA42419F505
+:1010600082E4344EAF82FE7B017A4479F9904EEFF0
+:101070007406F08059904F1EE064027050A3E0FFA8
+:1010800075F01FA42402F582E4344EF5837402F057
+:10109000EF75F01FA42403F582E4344EAF82FE7B8B
+:1010A000017A007940904EEF7406F011CE904F1FF8
+:1010B000E075F01FA42409F582E4344EAF82FE7B74
+:1010C000017A427962904EEF7410F011CE22904E68
+:1010D000EAEEF0A3EFF0A3EBF0A3EAF0A3E9F090BF
+:1010E0004EEFE0FF14F0EF6027904EECE0FBA3E43E
+:1010F00075F001120424A9F0FA1203B6FF904EEA2B
+:10110000E475F00112042485F082F583EFF080CFBE
+:1011100022904E8EEBF0A3EAF0A3E9F0E4A3F0A353
+:10112000F0A3F0A3F0A3F0A3F07B017A4879007D4F
+:1011300009FC121AF07B017A4E79607D037C001263
+:101140001AF0904CC5E064037065904E94F0904E98
+:1011500094E0FFC394055057904E8EE0FBA3E0FA55
+:10116000A3E02401F9E43AFA7E00E92FF9EE3AFA15
+:101170001203B6FF64396009EF64536004EFB447AB
+:1011800006904D467403F0EFB47F06904DF5740160
+:10119000F0904E8EE0FBA3E0FAA3E0F91203B660F4
+:1011A00006904DE97401F0904E94E004F0809F7E2B
+:1011B0004E7F99904E8EE0FBA3E0FAA3E02401F964
+:1011C000E43AFA904EEF7406F011CE904DF5E090AF
+:1011D0004E93F0904E99E0904E91F0904E93E064D3
+:1011E0007F7030904E91E0FF647F6027EF60249025
+:1011F0004E9DE0A3F0904E9CE0A3F0904E9BE0A3A8
+:10120000F0904E9AE0A3F0904E99E0A3F0904E99A2
+:10121000747FF0904E947403F0904E94E0FFC3946A
+:1012200008505274972FF582E4344EF583E0904EC7
+:1012300091F0647F7037904E94E0A3F0904E95E06B
+:10124000C394075021E0FF2498F582E4344EF583DF
+:10125000E0FE74972FF582E4344EF583EEF0904E65
+:1012600095E004F080D6E4904E9EF08008904E9475
+:10127000E004F080A4904E8EE0FBA3E0FAA3E0F936
+:101280001203B6904E97F0904E99E0FF904DF5F016
+:10129000904E97E0FE904801F0EF600C904E99E080
+:1012A000647F7046A3E07042EE703F904DEDE060C9
+:1012B000199048007401F0FB7A4879007D091218F2
+:1012C000C4E4904DEDF0904800F0904DEEE0601ACF
+:1012D000904E607402F07B017A4E79607D031218A3
+:1012E000C4E4904DEEF0904E60F0904E99E0B47FE3
+:1012F00008904E967403F08006904E967402F0901B
+:101300004E96E0904E94F0904E94E0FFC3940840C7
+:101310000281B174972FF582E4344EF583E0904E4C
+:1013200091F07008904E97E0700281B1904E91E07C
+:10133000FBB4D6087F237E0291F68026EBB4D50855
+:101340007F217E0291F6801A904E91E0FBB4FA085C
+:101350007F8A7E0191F6800AEBB4FB067F927E01C4
+:1013600091F6904E91E0B42927904E96E0B4032078
+:10137000904DFAE0600AE4F0904CBF7402F0800BEC
+:10138000904DFA7401F0904CBF04F0E4904E91F04F
+:10139000904E96E0FFB40206904DFAE06011EF64C3
+:1013A0000360028168904DFAE064016002816890F8
+:1013B0004E91E0FBB43A087F707E0091F68168EBB5
+:1013C000B43B087F6F7E0091F68168904E91E0FFFC
+:1013D000B43C0E9048017401F0904E917404F08179
+:1013E00068EFB43D0E9048017401F0904E91740680
+:1013F000F08075EFB43E0E9048017401F0904E916C
+:101400007419F08063EFB43F0E9048017401F090BE
+:101410004E91741BF08051EFB440087FB67E00916E
+:10142000F68045904E91E0FBB441087FCD7E00915F
+:10143000F68035EBB442087FB57E0091F6802990A6
+:101440004E91E0FBB443087FE27E0091F68019EBF9
+:10145000B444087FEA7E0091F6800D904E91E0B48E
+:1014600045067FE97E0091F6904DEEE0703B904E90
+:1014700096E0B40318904E91E0FF6027904E94E000
+:101480002400F582E43448F583EFF08016904E9105
+:10149000E0FF600F904E94E02401F582E43448F5BB
+:1014A00083EFF0904DED7401F0904E94E004F06104
+:1014B00007904DEDE060279048007401F0904CC516
+:1014C000E0B4030A904D46E0904802F08005E490B5
+:1014D0004802F07B017A4879007D091218C4904DCA
+:1014E000EEE06011904E607402F07B017A4E7960FC
+:1014F0007D031218C422AD07AC06EF904E61F0EEEA
+:10150000A3F0904DEE7401F022904EFAEBF0A3EAB6
+:10151000F0A3E9F0E4A3F0F0904EFDE0FFC39406E1
+:10152000400302180D904EFAE0FBA3E0FAA3E0247A
+:1015300001F9E43AFA7E00E92FF9EE3AFA1203B61D
+:10154000FF54F064F0600AEF54D064D060030218D6
+:10155000041203B6FBB4F1087F837E0191F6E1D952
+:10156000EBB4F2087FCD7E0091F6E1D9904EFAE01F
+:10157000FBA3E0FAA3E02401F9E43AFAA3E07E0039
+:1015800029F9EE3AFA1203B6FBB4F3067FB791F6E7
+:10159000E1D9EBB4F4087FB67E0091F6E1D9904E24
+:1015A000FAE0FBA3E0FAA3E02401F9E43AFAA3E0AD
+:1015B0007E0029F9EE3AFA1203B6FBB4F5067FB5C0
+:1015C00091F6E1D9EBB4F6087FEA7E0091F6E1D915
+:1015D000904EFAE0FBA3E0FAA3E02401F9E43AFA22
+:1015E000A3E07E0029F9EE3AFA1203B6FBB4F7063F
+:1015F0007FE991F6E1D9EBB4F8087FE27E0091F63D
+:10160000E1D9904EFAE0FBA3E0FAA3E02401F9E46B
+:101610003AFAA3E07E0029F9EE3AFA1203B6FBB4D7
+:10162000F9077F940E91F6E1D9EBB4FA087F8A7E30
+:101630000191F6E1D9904EFAE0FBA3E0FAA3E02491
+:1016400001F9E43AFAA3E07E0029F9EE3AFA12032E
+:10165000B6FBB4FB077F920E91F6E1D9EBB4D0084C
+:101660007F2A7E0291F6E1D9904EFAE0FBA3E0FAE0
+:10167000A3E02401F9E43AFAA3E07E0029F9EE3A66
+:10168000FA1203B6FBB4D1087F257E0291F6E1D9A8
+:10169000EBB4D3087F267E0291F6E1D9904EFAE0B2
+:1016A000FBA3E0FAA3E02401F9E43AFAA3E07E0008
+:1016B00029F9EE3AFA1203B6FBB4D2087F247E026F
+:1016C00091F6E1D9EBB4D4087F277E0291F6E1D9F7
+:1016D000904EFAE0FBA3E0FAA3E02401F9E43AFA21
+:1016E000A3E07E0029F9EE3AFA1203B6FBB4D5085E
+:1016F0007F217E0291F6E1D9EBB4D6087F237E02EA
+:1017000091F6E1D9904EFAE0FBA3E0FAA3E02401C0
+:10171000F9E43AFAA3E07E0029F9EE3AFA1203B6A8
+:10172000FBB4D7067F7091F6E1D9EBB4D8087F6F90
+:101730007E0091F6E1D9904EFAE0FBA3E0FAA3E037
+:101740002401F9E43AFAA3E07E0029F9EE3AFA120C
+:1017500003B6FBB4D9067FB891F6807DEBB4DA0806
+:101760007F307E0091F68071904EFAE0FBA3E0FAA4
+:10177000A3E02401F9E43AFAA3E07E0029F9EE3A65
+:10178000FA1203B6FBB4DB087F067E0391F68049AC
+:10179000EBB4DC087F077E0391F6803D904EFAE0C3
+:1017A000FBA3E0FAA3E02401F9E43AFAA3E07E0007
+:1017B00029F9EE3AFA1203B6FEB4DD077F011228CA
+:1017C000268016EEB4DE077F02122826800B120355
+:1017D000B6B4DF057F04122826904E5FE0B40224E1
+:1017E000904EFAE0FBA3E0FAA3E02401F9E43AFA10
+:1017F000A3E07E0029F9EE3AFA1203B6904E00F00B
+:10180000E41203FC904EFDE004F002151822904C07
+:10181000C9E06404600F904CC7E064046007904C1A
+:10182000C5E0B403037F01227F0022E4904F27F03C
+:10183000904CC8E064026007904CCAE0B402069085
+:101840004F27E0FF229047F4E05440FEA3E0540805
+:10185000FFBE4009BF0806904F27E0FF22904CEEE4
+:10186000E06006904F27E0FF22904CC9E070459061
+:101870004CC7E0703F904CC5E064036037904CEF7C
+:10188000E0703B740AF0A3E07034904DFEE0640217
+:10189000702C904CC3E0FFC39401400BEFD3940332
+:1018A000500512091C80177F0912091C904F2774DC
+:1018B00001F0800AE4904CEBF0904F2704F0904F39
+:1018C00027E0FF22904E9FEBF0A3EAF0A3E9F0A3FC
+:1018D000EDF0E4FF904EA2E0FEEFC39E5023904E49
+:1018E0009FE0FBA3E0FAA3E0F98F82758300120367
+:1018F000CFFE74A32FF582E4344EF583EEF00F8013
+:10190000D3112BEF700221F6904CEBE0600221F630
+:10191000904CC9E0B4040D7B017A4E79A3904EA29D
+:10192000E0FD910C904CC5E06403600221F6904EFE
+:10193000A3E0640170237404F0A3E07014904EA639
+:10194000E0700EA3E0700AA3E07006904DF0F08006
+:1019500032904DF07401F0802A904EA3E0B4021949
+:101960007405F0A3E0700AA3E07006904DF0F080DB
+:1019700012904DF07401F0800A904EA3E0B403037E
+:101980007407F0904EA3E06410702B7408F0A3E08D
+:10199000701EA3E0701AA3E07016A3E07012A3E01B
+:1019A000700EA3E0700AA3E07006904DF0F0800680
+:1019B000904DF07401F0904EA3E06411702B740907
+:1019C000F0A3E0701EA3E0701AA3E07016A3E0700D
+:1019D00012A3E0700EA3E0700AA3E07006904DF031
+:1019E000F08006904DF07401F07B017A4E79A3905F
+:1019F0004EA2E0FD71DF22904DECE0600FE014F0AC
+:101A0000E0700990413104F0904DEBF0904CC9E04A
+:101A100064046008904CC7E06404705B904CC7E0BD
+:101A200064047039904D7EE06033904DEBE07010AF
+:101A3000904CE3E0FEA3E0FF4E6022EF541F701DC8
+:101A4000E4904DEBF0904E607404F0904CF9E0900F
+:101A50004E61F07B017A4E79607D0211C4904CE3B7
+:101A6000E064027004A3E06458600241EF120C00CD
+:101A7000904CEC7401F022904CC5E06403703990F6
+:101A80004CE4E0541F6410701E7B017A4879007D9D
+:101A900009FC51F0E4904E5FF090480004F0FB7AAE
+:101AA0004879007D0911C4C3904CE4E09458904CEF
+:101AB000E3E09402403961B9904CC5E0B40111C330
+:101AC000904CE4E09478904CE3E09400402161B9BC
+:101AD000C3904CE4E09414904CE3E09400401090E8
+:101AE0004DF8E06007E4F07F0E12085F120FCF227E
+:101AF000904F15EBF0A3EAF0A3E9F0ED1DAE0470F2
+:101B0000011C4E6016904F15E0FBA3E475F0011226
+:101B10000424A9F0FAE41203FC80E0227B017A4C51
+:101B200079BF7D657C0051F07B017A4D79937D14FE
+:101B30007C0051F07B017A4D79A87D147C0051F036
+:101B40007B017A4D79BC7D147C0051F07B017A4891
+:101B500079007D097C0051F07B017A4E79607D0926
+:101B60007C0051F0E4904DF9F0904DFFF0904DEA7B
+:101B7000F0904DF4F0904DF1F0904DFEF0904DF05E
+:101B8000F0904DD5F0904DF8F0904DF6F0904E5FFE
+:101B9000F0904DEFF0904DF2F0904DF5F0904DFA41
+:101BA000F0904E00F0904CB774F0F0904DF3F0E4EC
+:101BB000904D38F0904DD4F022120ED8904BEF7427
+:101BC000FFF0904D017401F0904CB774F0F0904D1F
+:101BD000F3F0904D4074FFF0A3F0A3F0A3F0229037
+:101BE0000BE77406F0904F2FEDF0E0FD900BE8F05E
+:101BF0007E0B7FE9904EEFEDF01210CE7B017A0B59
+:101C000079E7904F2FE02402FD020887900BE774DC
+:101C100003F0ED600271E522711C12368E904CEBE0
+:101C20007401F0904CE5741EF0E4904CF0F0904D8F
+:101C30001A74FFF09044FCE0904DD0F09044FDE029
+:101C4000904DD1F09044FEE0904DD2F022904F2084
+:101C5000EFF0A3EDF07B017A4879007D097C00511B
+:101C6000F09048007401F0A3E0FF904F20E0FEEFF9
+:101C70004E904801F0904F21E0904803F07B017AAC
+:101C80004879007D0901C4904D46E0604A904DF0CE
+:101C9000E07044904CC5E06403703C904DF9E0FF67
+:101CA000904E01E06F60287B017A4879007D097CC5
+:101CB0000051F0E4904E5FF090480004F0904D46E3
+:101CC000E0904802F07B017A4879007D0911C490C8
+:101CD0004DF9E0904E01F022904D09E06059E4F09A
+:101CE000904CC5E0B40308904DD87410F080069075
+:101CF0004DD87405F0904D02E0904DD9F0904D0311
+:101D0000E0904DDAF0904D04E0904DDBF0904D0501
+:101D1000E0904DDCF0904D06E0904DDDF0904D07E9
+:101D2000E0904DDEF0904D08E0904DDFF07B017AC1
+:101D30004D79D87D0811C4904D11E06059E4F090C0
+:101D40004CC5E0B40308904DE07411F08006904D4E
+:101D5000E07406F0904D0AE0904DE1F0904D0BE0FC
+:101D6000904DE2F0904D0CE0904DE3F0904D0DE081
+:101D7000904DE4F0904D0EE0904DE5F0904D0FE069
+:101D8000904DE6F0904D10E0904DE7F07B017A4DDC
+:101D900079E07D0811C422E4904EDEF0A3F0A3F0B8
+:101DA000F9A3C9F0A3F0A3E9F0F1654002E15212F2
+:101DB0002AB3904EE1EBF0A3EAF0A3E9F04A7007F2
+:101DC000904CB604F08187904CC9E0B40406904270
+:101DD000137403F0904DF9740AF0904CD5E0FFB401
+:101DE0000112E4904D40F0A37448F0A37412F0E4A3
+:101DF000A3F08010E4904D40F0A37448F0A3745D0C
+:101E0000F0E4A3F0904CB67401F0904D7DE06008D2
+:101E1000E4F0904D467403F0904EE1E0FBA3E0FA4D
+:101E2000A3E0F99000011203CFFE904EDEF0900087
+:101E3000021203CF904EDFF01203B6904EE0F0BED8
+:101E40007F08904DE87401F08005E4904DE8F0EFD4
+:101E500064027002E13C904EDEE06429706AA3E007
+:101E600064147058904CEA740AF0904CCEE054F729
+:101E7000F0904CC5E06401603B904CCEE04410F023
+:101E8000904CC3E0FF7002E15264FE7002E1529098
+:101E90004BEB7420F0A37415F0A37410F0A3740539
+:101EA000F0904CEE7428F0120C007F0A120EC07FE6
+:101EB0000A02091C904CCEE054EFF022904CCEE088
+:101EC00054F7F054EFF0800A904CCEE054F7F05401
+:101ED000EFF0904EDEE0647F7058A3E0FBB417098A
+:101EE0007F707E001214F68053EBB41C097F6F7E66
+:101EF000001214F68046904EDFE0FBB418097F8391
+:101F00007E011214F68035EBB40C097FEA7E0012D4
+:101F100014F68028904EDFE0FBB412097FE97E00C2
+:101F20001214F68017EBB413137FE27E001214F63E
+:101F3000800A904CCEE054F7F054EFF0904EE1E080
+:101F4000FBA3E0FAA3E0F9121111904E69E07002D0
+:101F500091D822A197900BE77404F061E5900BE70C
+:101F60007405F061E5904B9CE0FEA3E0FF904B9A76
+:101F7000E0B50607A3E0B50702D322C3221232520E
+:101F8000904CE4E004F07006904CE3E004F0F1B211
+:101F900031F7120C3F1235DB12362E904CCAE0643A
+:101FA000026007904CC8E0B40207E4904CE3F0A351
+:101FB000F022904CD3E0600B14F0E070067405F052
+:101FC00012375A22E4904CF0F0904DF8F022904DE8
+:101FD000FE7402F07B017A4E79027D5D7C007F60A9
+:101FE0007E7F12204E7F0A120EC07B017A4C790050
+:101FF0007D047C007F527E7F12204E7F0A120EC02D
+:102000007B017A4D79FA7D017C007F567E7F114EEF
+:102010007F0A120EC0904CC3E0FFD39403501EEF12
+:10202000C394014018E075F01FA42401F582E43444
+:102030004EF583E0904DFAF012091C80057F0812DE
+:10204000091C904DFAE0D394014002E4F022904E36
+:10205000F5ECF0A3EDF0A3EBF0A3EAF0A3E9F09028
+:1020600080987404F0A3E4F0900CAF74A0F0A3EE99
+:10207000F0A3EFF0900CB274A1F07A0C79AF7E0C63
+:102080007FAF74AFFC740CFFECFEEF90809AEEF023
+:10209000A3EFF0904EF5E0FCA3E0FAECFFEAFEEFD0
+:1020A00090809EEEF0A3EFF07A0B79837E0B7F8316
+:1020B0007483FC740BFFECFEEF90809CEEF0A3EFBA
+:1020C000F09080907402F090809CA3E020E707904D
+:1020D0008090E04401F0908006E04404F0F1DB9051
+:1020E0004EF7E0A3E0FAA3E0AE02FF7B017A0B79A2
+:1020F00083904EF5E0A3E0904EEFF00210CE904FAB
+:102100002EEFF01205B3232101243A02242B0423DD
+:10211000430623F30A242B1324F91425D41523A2F0
+:1021200018221F27259B2923E92A214C2F221B3007
+:1021300022723122E232214C3325753425B5352205
+:102140006A37221F3922723C0000261BF1A3121CA1
+:10215000187B017A4C79FF7D017C007FC07E7F1166
+:102160004E904CFFE06401703F904C91E0FEA3E084
+:10217000FFC3904C96E09F904C95E09E5005120F47
+:102180009580E6904CE0E0FEA3E0FFC3904C96E023
+:102190009F904C95E09E5010904CD57402F0E490C6
+:1021A0004CE5F07F1902085F7B017A4C79C17D0113
+:1021B0007C007FC17E7F114E7F0A120EC0904CC101
+:1021C000E0D394034012E4F07B017A4C79C17D01A5
+:1021D000FC7FC17E7F120E12904CC0E0904CC3F089
+:1021E000120FA27F0A120EC07B017A4C79F27D0297
+:1021F0007C007FBE7E7F114E904CF2E0B4FF19A3AD
+:10220000E0B4FF14904C93E0A3E0904CF2F0904CBB
+:1022100091E0A3E0904CF3F0021FCEF1AAE1799097
+:102220004CC3E0D394005002C11BE094044002C1AF
+:102230001BE075F01FA424E3F9744D35F0FA7B011F
+:102240007D1F7C00D11C7FC8120EC0C2017FFF120F
+:102250000AEC7B017A4E79027D5D7C007F607E7F97
+:10226000120E12D2017FFF020AEC904DD6E0FF025F
+:102270000737904CC57403F0E4A3F0121FC4E49038
+:102280004CEEF0904CEBF0904CC074FEF0904CC3D0
+:10229000F0904D467403F0904DF9740AF0904F2E73
+:1022A000E064317034904DFAF0904E69F0904CC17A
+:1022B000F0904CE5741EF0904BEBE0B40F12A3E0ED
+:1022C000B40F0DA3E0B40F08A3E0640F7002C11BAC
+:1022D000904CBF7402F0020D7B904CE5E06002C1AF
+:1022E0001B22E4904CC5F0A3F0904CE3F0A3F090D7
+:1022F0004CEB04F0904CEDE0600B121FC4904CEDE1
+:10230000E0FF02091C904CECE0B40105E4F0020F80
+:10231000CF904CF0E07002C11B904DD6E0FF020759
+:1023200037904CC97403F0A37401F0E4904CC7F0EB
+:10233000A3F09047F4E0A320E702C11B904DEA749C
+:1023400032F022904CC97404F0E4A3F07F0E12081E
+:102350005F7F0212085FC2017FFF120AEC904CC33C
+:10236000E0904CC0F0E4904CE3F0A3F0121FC4E402
+:10237000904CEBF0904DEAF0904213741AF0E49018
+:102380004DF4F0900040E07014A3E07010A3E070F2
+:102390000CA3E07008A3E07004A3E060E67F0502F0
+:1023A000085F904CE9E0602AE4904DFAF0904CC14F
+:1023B000E0FF904CC3E075F01FA42400F582E434E4
+:1023C0004EF583EFF0D149904CBF7403F0E4904C8C
+:1023D000E9F0904CEA740AF09041317401F0904CAD
+:1023E000E5E06002C11B0234357F0412085F7F0AFA
+:1023F000020EC0E490054FF0904DF104F0E4904DD2
+:10240000EAF09047F4E0A330E710904DF47401F047
+:1024100090054F7404F0FF02085FE4904CF0F090D8
+:102420004CCA7402F0904CC904F022904CC5E0B440
+:102430000308E4904CC9F0A3F022904CC9E0904C02
+:10244000CBF0E4904CC9F0A3F0904CEB04F0E49096
+:102450004DEAF0904DF4E06401704C904CC3E0D331
+:102460009400403EE094045039E075F01FA424E34A
+:10247000F9744D35F0FA7B017D1F7C00D11C7FC8BB
+:10248000120EC0C2017FFF120AEC7B017A4E790264
+:102490007D5D7C007F607E7F120E12D2017FFF1275
+:1024A0000AECE4904DF4F0904CECE0B40105E4F05B
+:1024B000020FCF904CEDE06004FF02091C904CF03D
+:1024C000E06008904DD6E0FF020737904CC5E0640D
+:1024D000017002C11B904F2EE064137002C11B906B
+:1024E0004CCBE0640460077F0512091C8003120FC7
+:1024F000CFE4904CE3F0A3F022904CC77403F0A318
+:102500007401F0E4A3F0A3F07F0E12085F7F0212C3
+:10251000085FC2017FFF120AEC904CE9E06035E4ED
+:10252000904DFAF0904CC1E0FF904CC3E075F01F65
+:10253000A42400F582E4344EF583EFF0904DFAE0E8
+:10254000FF904CC3E075F01FA42401F582E4344EE3
+:10255000F583EFF0904DF8E07006904DD47414F0D0
+:10256000904CE5E07003123435E4904CE9F0904C67
+:10257000E3F0A3F022904CC77404F0E4A3F0121F20
+:10258000C4E4904CEBF0904DEC740AF0904CC3E036
+:10259000904CC0F0904CBF7403F022904CC3E014F8
+:1025A000FD7F01120FF7904CC3E0904CC0F0904CAF
+:1025B000BF7403F022904D3912058200000000E440
+:1025C000904DD7F0904DF104F0904CC804F0904C31
+:1025D000C704F022904CC7E0904CCBF0E4904CC77D
+:1025E000F0A3F0904CEB04F0E4904D3DF0904CECF7
+:1025F000E0B40105E4F0020FCF904CEDE06004FF81
+:1026000002091C904CF0E06008904DD6E0FF0207F4
+:1026100037120FCFE4904CE3F0A3F022904F18EB69
+:10262000F0A3EAF0A3E9F0ED1DAE0470011C4E60CA
+:1026300017904F18E0FBA3E475F001120424A9F0F1
+:10264000FA74FF1203FC80DF22904CC3E014904F19
+:1026500028F0E4904DF1F0904F28E0FD7F02120F3A
+:10266000F7904F28E0FF603C904E02E06402703427
+:10267000EF75F01FA42403F9744E35F0FA904ED391
+:102680007401F0A3EAF0A3E9F0A37406F07B017AE9
+:102690004E7903F12FEF600C7B017A4E79027D1F9A
+:1026A0007C00D11C904F28E0FF6401603C904E21DB
+:1026B000E064027034EF75F01FA42403F9744E3502
+:1026C000F0FA904ED37401F0A3EAF0A3E9F0A374FA
+:1026D00006F07B017A4E7922F12FEF600C7B017AB4
+:1026E0004E79217D1F7C00D11C904F28E0FF6402B1
+:1026F000603C904E40E064027034EF75F01FA424FB
+:1027000003F9744E35F0FA904ED37401F0A3EAF059
+:10271000A3E9F0A37406F07B017A4E7941F12FEF23
+:10272000600C7B017A4E79407D1F7C00D11C229089
+:102730004ED0EBF0A3EAF0A3E9F0E4FF904ED6E030
+:10274000FEEFC39E5030904ED3E0FBA3E0FAA3E02F
+:10275000F98F827583001203CFFE904ED0E0FBA369
+:10276000E0FAA3E0F98F827583001203CF6E600355
+:102770007F00220F80C67F0122908080E4F0A3F0CA
+:10278000A3F0F1BDE4904F2CF0F0904F2CE09006B8
+:102790008193FF600DC205123D9B904F2CE004F029
+:1027A00080E822F1AAF179020ED8908091740DF0A0
+:1027B000A304F0A3F0A3F0A3F0A314F022E4904F3D
+:1027C0002BF0F0904F2BE0FFC39408500DC2051280
+:1027D0003D9B904F2BE004F080E92290812CE0306B
+:1027E000E5F9227B017A4C79F27D027C007FBE7E86
+:1027F0007F114E904CF2E004F0A3E004F0904CF214
+:10280000E09044FAF0904CF3E09044FBF0904DD00F
+:10281000E09044FCF0904DD1E09044FDF0904DD21A
+:10282000E09044FEF022904E5FE064026012740477
+:10283000F0904DFC7401F0904E607406F0A3EFF040
+:1028400022904F06E4F0A3F0A3F051B3904F06EBB3
+:10285000F0A3EAF0A3E9F04A700241B2904F06E01B
+:10286000FBA3E0FAA3E0F99000011203CFFF70028E
+:1028700041B264286005EF64587032904CC8E0B4EF
+:1028800002107F2912085F904CC87403F0E4904D49
+:10289000D7F0904CCAE06402600241B290425E04FC
+:1028A000F07F0A12085F904CCA7403F022904F0622
+:1028B000E0FBA3E0FAA3E0F99000011203CFFFD3FD
+:1028C00094624002217EEFC394595002217EEFB4FE
+:1028D000623890054FE0FF04F074502FF582E43425
+:1028E00005F5837430F0904D39E0FCA3E0FDA3E0E2
+:1028F000FEA3E0FFE47B0AFAF9F812043A904D399E
+:10290000120576904DD7E004F022904F06E0FBA32D
+:10291000E0FAA3E0F99000011203CF24D8FF90055C
+:102920004FE0FE04F074502EF582E43405F583EF99
+:10293000F09000011203CF24A8FFE434FFFEE4FC72
+:10294000FDC004C005C006C0077F0AFE904D39E0F7
+:10295000F8A3E0F9A3E0FAA3E0FB12043AD003D015
+:1029600002D001D000EF2BFFEE3AFEED39FDEC383E
+:10297000FC904D39120576904DD7E004F022904F2F
+:1029800006E0FBA3E0FAA3E0F99000011203CFFFF9
+:10299000D394274002414FEFC3941E5002414FEFA2
+:1029A000B4273890054FE0FF04F074502FF582E40F
+:1029B0003405F5837430F0904D39E0FCA3E0FDA3BD
+:1029C000E0FEA3E0FFE47B0AFAF9F812043A904D26
+:1029D00039120576904DD7E004F022904F06E0FBC7
+:1029E000A3E0FAA3E0F99000011203CF2413FF90B3
+:1029F000054FE0FE04F074502EF582E43405F583B3
+:102A0000EFF09000011203CF24E3FFE434FFFEE473
+:102A1000FCFDC004C005C006C0077F0AFE904D390A
+:102A2000E0F8A3E0F9A3E0FAA3E0FB12043AD00334
+:102A3000D002D001D000EF2BFFEE3AFEED39FDECD5
+:102A400038FC904D39120576904DD7E004F0229075
+:102A50004F06E0FBA3E0FAA3E0F99000011203CFD8
+:102A6000642A704090054FE06010E0FF14F074504D
+:102A70002FF582E43405F583E4F0904DD7E0603221
+:102A8000904D39E0FCA3E0FDA3E0FEA3E0FFE47B72
+:102A90000AFAF9F81204C5904D39120576904DD70F
+:102AA000E014F022904F06E0FBA3E0FAA3E0F91255
+:102AB000111122E4904EADF0A3F0A3F0A3F0A3F027
+:102AC000A3F0A3F0A3F0A3F0A3F0A3F01232D77AFF
+:102AD0004D79A8904ED37401F0A3744DF0A374A85F
+:102AE000F0A37414F07B017A4D79BC12272FEF60AC
+:102AF000167B017A4D79BC7D1491E9EF7009904CF9
+:102B0000CEE04402F0800C904CCEE054FDF0E49016
+:102B10004CD0F0E4904EADF0904EADE0FF900681C9
+:102B200093700261E574BC2FF582E4344DF583E0C7
+:102B3000904EB0F0E0FF91DB904EB7EFF0C39402FF
+:102B4000500261CEE4904EAEF0904EAEE0FFC394E2
+:102B500008507B74017E00A807088005C333CE337C
+:102B6000CED8F9FF904EB0E0FDE4EF5D6058E49000
+:102B70004EAFF0904EAFE0FF900681936048904ECC
+:102B8000ADE0FEEF6E6037904EAFE024BCF582E41E
+:102B9000344DF583E0FD7C00904EAEE0FF74017E85
+:102BA00000A807088005C333CE33CED8F9FFEE5C0A
+:102BB000FEEF5D4E6008904EB67401F08008904EB6
+:102BC000AFE004F080AD904EAEE004F06149904E6D
+:102BD000B0E0FF600891DB904EB4E02FF0904EAD76
+:102BE000E004F06118904EB4E0904DF7F0E4904EA0
+:102BF000ADF0904EADE0FF90068193700281C774F6
+:102C0000932FF582E4344DF583E0FE74BC2FF582FA
+:102C1000E4344DF583E06E904EB0F0904EADE0FFA1
+:102C200024BCF582E4344DF583E0904EB3F0904E31
+:102C3000B0E0700481BF81BF904EB6E060077B00BA
+:102C40007A0079002274BC2FF582E4344DF583E0DC
+:102C5000FE74932FF582E4344DF583EEF0E4904E4C
+:102C6000AEF0904EAEE0FFC39408504D904EB0E0F1
+:102C700030E02E904EADE0FE33333354F8FEEF4E8D
+:102C8000904EB2F0A3E030E00D904EB2E090069688
+:102C900093FFB119800B904EB2E090069693FFB16E
+:102CA000DB904EB0E0FFC313F0904EB3E0FFC313D0
+:102CB000F0904EAEE004F080A9904EB17401F09017
+:102CC0004EADE004F061F2904EB1E060077B017A16
+:102CD0004E79C9227B007A00790022E4FEEF60067B
+:102CE000145FFF0E80F7AF0622904F0FEBF0A3EAC0
+:102CF000F0A3E9F0E4FFEFC39D501B904F0FE0FB02
+:102D0000A3E0FAA3E0F98F827583001203CF60037A
+:102D10007F00220F80E07F0122E4FEEFC394E040B9
+:102D200020EFD394E7501A904EC9E0FEEF5407FF0E
+:102D30007401A807088002C333D8FC4E904EC9F036
+:102D400022E4FEEEC39406502174CA2EF582E434C8
+:102D50004EF583E0FD6F7002A1DAED707574CA2E36
+:102D6000F582E4344EF583EFF022EFC3943850320D
+:102D7000EF131313541F2402F582E4344DF583C07E
+:102D800083C082E0FDEF5407FC7401A804088002B0
+:102D9000C333D8FC4DD082D083F0904D097401F03C
+:102DA0008030EF131313541F2403F582E4344DF5E0
+:102DB00083C083C082E0FDEF5407FC7401A80408BF
+:102DC0008002C333D8FC4DD082D083F0904D117473
+:102DD00001F00EEE64186002A14322E4FE904F2A37
+:102DE000F0EFC394E04021EFD394E7501B904EC91D
+:102DF000E0FEEF5407FF7401A807088002C333D830
+:102E0000FCF45E904EC9F022E4FEEEC394065067D7
+:102E1000904F2AE0702774CA2EF582E4344EF58371
+:102E2000E06F6002C1E1EEB4050B24CAF582E43420
+:102E30004EF583E4F0904F2A7401F0C1E174CA2E7C
+:102E4000F582E4344EF583E0FD74C92EF582E43456
+:102E50004EF583EDF074CA2EF582E4344EF583E02E
+:102E60007002C1E9EE6405707874CA2EF582E4340C
+:102E70004EF583E4F0806AEFC394385033EF1313B8
+:102E800013541F2402F582E4344DF583C083C082BD
+:102E9000E0FDEF5407FC7401A804088002C333D896
+:102EA000FCF45DD082D083F0904D097401F0803144
+:102EB000EF131313541F2403F582E4344DF583C03C
+:102EC00083C082E0FDEF5407FC7401A8040880026F
+:102ED000C333D8FCF45DD082D083F0904D117401DF
+:102EE000F00EEE64186002C10A22904CF5EDF0A3DA
+:102EF000EBF0EF30E012904CF4E0B403047402F015
+:102F000022904CF47401F022904CF47404F022905E
+:102F10004F0AEDF0904F09EFF0E4904F0BF0EF30D7
+:102F2000E005E4904CF8F0904F0AE0FFA3F0904DDC
+:102F3000F5E06401706CEF64046008904F0AE0648F
+:102F4000167036904F0AE0FFB40408904CC174022A
+:102F5000F08009EFB41605E4904CC1F0904D1F7459
+:102F600001F0E4904F0BF07B017A4C79C17D01FCBC
+:102F70007FC17E7F120E128029904F0AE0B4292271
+:102F8000904F09E030E016904DFAE06004E4F080E4
+:102F900006904DFA7401F0904CBF7402F0E4904F2B
+:102FA0000BF0904DF5E064016003023066904E69CD
+:102FB000E06003023066904F0AE024D7603C24EFC3
+:102FC000B40C0040030230B4902FD675F003A4C5B2
+:102FD0008325F0C5837302300302300C02301402E3
+:102FE000301C02302402302C02303402303C0230DB
+:102FF0004402304C02305402305C904F0B7435F078
+:103000000230B4904F0B74D7F00230B4904F0B7471
+:10301000D8F001B4904F0B743CF001B4904F0B7496
+:103020003DF001B4904F0B743EF001B4904F0B741F
+:103030003FF001B4904F0B74F4F08078904F0B7414
+:10304000F2F08070904F0B74F5F08068904F0B7425
+:10305000F8F08060904F0B74F6F08058904F0B742E
+:10306000F7F08050804E904F0AE0B44A13904CC164
+:10307000E0B4020C904F09E0FF7B507D08122EEA6D
+:10308000904F0AE0B44B13904CC1E0B4020C904F47
+:1030900009E0FF7B527D08122EEA904F0AE0B44E01
+:1030A00013904CC1E0B4020C904F09E0FF7B517DBE
+:1030B00008122EEA904F0BE0FF22E4FF904F2DF014
+:1030C000FEFDEF900681936049EF93FD13131354B7
+:1030D0001FFEED5407FD7401A805088002C333D814
+:1030E000FCFDEE2478FBE434808B82F583E0FCED7C
+:1030F000F4FBEC5BF0EE2470F582E43480F583E0C1
+:103100004DF0EE2474F582E43480F583E05BF00F3B
+:1031100080B051A390811CE0904F2DF0904DEFE0D6
+:103120006020E4FF31527F0131527F0231527F0330
+:1031300031527F0431527F0531527F0631527F0771
+:103140008010904F2DE0FF9000A3F0EFF49000A7C7
+:10315000F022904F31EFF031F19208904F31E0FFC3
+:10316000A208B39207EFF4700221F0EF5407FEEFCC
+:103170001313135403FF30074324A3F582E43400F0
+:10318000F583C083C082E0FD7401A806088002C3F5
+:1031900033D8FCF45DD082D083F074A72FF582E49D
+:1031A0003400F583C083C082E0FF7401A806088064
+:1031B00002C333D8FC4FD082D083F02274A32FF502
+:1031C00082E43400F583C083C082E0FD7401A80668
+:1031D000088002C333D8FCFC4DD082D083F074A7A2
+:1031E0002FF582E43400F583E0FFECF4FEEF5EF0AF
+:1031F000227B017A81791CAD07E4904F30F0FEEF1D
+:103200005407F0EF1313135403FEF5827583001275
+:1032100003CFFD3395E0FC904F30E0FF74017E005A
+:10322000A807088005C333CE33CED8F9FFEE5CFE85
+:10323000EF5D4E24FF22904F32EFF07B017A8079D0
+:103240007431F79209904F32E0FFA209B392010264
+:103250000AEC904DFEE064027048904CE9E0603862
+:10326000904CCCE064016022904CC3E0B401047F38
+:10327000FF80C3904CC3E0B402047FFF80B8904C41
+:10328000C3E06403701C7FFF80ACC2017FFF120AA1
+:10329000ECC2017FFF020AEC904CEEE060047F0F6D
+:1032A000513622E4FFEFFD7C002478FBEC34808B68
+:1032B00082F583E0FEED2470FDEC34808D82F58391
+:1032C000E04EF4FEEF247CFDEC34808D82F583EE3D
+:1032D000F00FEFB404CF22E4FF904F0CF0FEFDA3FB
+:1032E000F0A3F0EF90068193607CEF93FD1313132E
+:1032F000541FFEED5407FD7401A805088002C33376
+:10330000D8FCFDEE2478FBE434808B82F583E0FC6E
+:10331000EDF4FBEC5BF0EE2470F582E43480F58391
+:10332000E04DF0EE2474F582E43480F583E05BF048
+:1033300090811CE0F4FC74BC2FF582E4344DF583DD
+:10334000ECF0EE2478FBE434808B82F583E04DF0E2
+:10335000EE2470FBE434808B82F583E0FCEDF4FB1B
+:10336000EC5BF00F41E3E4FFEF90068193607CEFAC
+:1033700093FD131313541FFEED5407FD7401A805AC
+:10338000088002C333D8FCFDEE2478FBE434808B44
+:1033900082F583E0FCEDF4FBEC5BF0EE2470F5824B
+:1033A000E43480F583E04DF0EE2474F582E434805B
+:1033B000F583E05BF090811CE0F4FC74A82FF582AB
+:1033C000E4344DF583ECF0EE2478FBE434808B821A
+:1033D000F583E04DF0EE2470FBE434808B82F583BE
+:1033E000E0FCEDF4FBEC5BF00F6168E4FFEF9006AE
+:1033F0008193604074BC2FF582E4344DF583E0FE88
+:1034000074A82FF582E4344DF583E06E602374BC1C
+:103410002FF582E4344DF583C083C082E0FE74A8AA
+:103420002FF582E4344DF583E0FDEE5DD082D0834C
+:10343000F00F80B922904CC3E0B40107C2017FFFB6
+:10344000020AEC904CC3E0B40207C2017FFF020AFB
+:10345000EC904CC3E0B40307C2067FFF020EF4C237
+:10346000067F0F020EF4904CC9E06404600F904C8C
+:10347000C7E064046007904CC5E0B4031C904D2085
+:10348000E004F0E0B40103120FA2904D20E0B4027A
+:1034900008E4F0904D1FF0913522904CEAE0600274
+:1034A00014F0904CEFE0600214F0904CF8E0600BE8
+:1034B00014F0E07006904CF47406F0904CE5E06077
+:1034C0002C904CEEE07006904CE9E06006E4904CE5
+:1034D000E5F022904CE5E014F0120FA2904CE5E0EC
+:1034E00070579135C2067FFF120EF4804C904CE964
+:1034F000E07046904CEEE07040904CE2E0603A1490
+:10350000F0E0FFC39408501BE4904131F0EF30E14C
+:1035100009D2017F0F120AEC8016C2017F0F120A36
+:10352000EC800D9041317401F0C2017F0F120AEC62
+:10353000904CE2E07003740CF0904DEFE070369028
+:103540004DF0E06401702E904CE3F0A3F0904DF04C
+:10355000F0904E60E0600D7B017A4E79607D031241
+:1035600018C48011904800E0600B7B017A48790014
+:103570007D091218C4904DEAE06009E014F0E07093
+:1035800003120FD8904DD4E06011E014F0E0700BFE
+:10359000904D3DE070057F1B12085F904DF9E06093
+:1035A00029E014F0E07023904D46E06002E4F090D2
+:1035B0004CC7E0B40407904213740CF022904CC93D
+:1035C000E0B40406904213743AF022904F22EDF0DA
+:1035D0009000011203CF904F23F022904DFFE06046
+:1035E0004CE014F0E07046904CEDE06405703E90C5
+:1035F00047F4E05440FEA3E0540864087003EE640E
+:1036000040602A7F1E12085FE4904DD4F0904CE990
+:1036100074F0F0E4904CEEF0904E69F0904DD3F0E1
+:103620001227E37F2C12085FE4904CEDF022904CBF
+:10363000E9E06028E4904CE3F0A3F0904CFCF090BB
+:103640004CE9E014F0E07014904CC4E0904CC3F0EE
+:10365000904CC0F07F0D12091C120FCF904CEEE081
+:103660006018E4904CE3F0A3F0904CEEE014F0E02E
+:1036700070087F0A120EC0120FCF227B017A4E799A
+:103680006A787C7C4E7D017E007F12020390904C14
+:10369000D37405F0E4A3F0FFEF25E024D6F582E42F
+:1036A000344CF5837451F0A3F00FEFB404EA904C5E
+:1036B00093E0FFA3E0904CFACFF0A3EFF0904C9191
+:1036C000E0FEA3E0FFC3904C94E09FFD904C93E09C
+:1036D0009EFCE41202067B7B7A14798E783F1200FE
+:1036E000FBC004C005C006C007904C91E0FCA3E0FD
+:1036F000FDE4120206D003D002D001D00012000A6D
+:1037000012023F904CDEEEF0A3EFF0904C91E0FE01
+:10371000A3E0FFC3904C94E09FFD904C93E09EFC8F
+:10372000E41202067BB87A1E7985783F1200FBC04E
+:1037300004C005C006C007904C91E0FCA3E0FDE486
+:10374000120206D003D002D001D00012000A1202E9
+:103750003F904CE0EEF0A3EFF022904EF112058284
+:1037600000000000904C91E0FEA3E0FFC3904C9657
+:10377000E09F904C95E09E500302397A904C95E082
+:10378000FEA3E0FF904CD4E0FD04F0ED25E024D64C
+:10379000F582E4344CF583EEF0A3EFF0904CD4E0E6
+:1037A000C394044002E4F0E4904EF0F0904EF1E057
+:1037B000F8A3E0F9A3E0FAA3E0FB904EF0E025E0E7
+:1037C00024D6F582E4344CF583E0FEA3E0FFE4FC6C
+:1037D000FDEB2FFFEA3EFEED39FDEC38FC904EF19B
+:1037E000120576904EF0E004F0E0B404BF904EF184
+:1037F000E0FCA3E0FDA3E0FEA3E0FFE47B04FAF914
+:10380000F81204C5904EF1120576904CE0E0FEA34C
+:10381000E0FFE4FCFD904EF1E0F8A3E0F9A3E0FA4C
+:10382000A3E0FBD31205655007E4904CF9F001B218
+:10383000904CFAE0FEA3E0FFE4FCFD904EF1E0F8CE
+:10384000A3E0F9A3E0FAA3E0FBC3120565400890EA
+:103850004CF97464F0805B904CE0E0FEA3E0FFFB69
+:10386000AA06E4904EF1E0FCA3E0FDA3E0FEA3E095
+:10387000C39BFFEE9AFEED9400FDEC9400FCE47B0C
+:1038800064FAF9F812043AC006C007904CE0E0FE72
+:10389000A3E0FFC3904CFBE09FFF904CFAE09EFE3C
+:1038A000AB07FAE4F9F8D007D0061204C5904CF93A
+:1038B000EFF0904CE0E0FEA3E0FFE4FCFD904EF161
+:1038C000E0F8A3E0F9A3E0FAA3E0FBC3120565501A
+:1038D00027904CD57402F0904D00E06402700221F4
+:1038E00072904CFF7401F0FB7A4C79FFFD7C007FF5
+:1038F000C07E7F120E12807A904D00E06402600755
+:10390000904CFFE0B40115E4904CFFF07B017A4C41
+:1039100079FF7D01FC7FC07E7F120E12904CDEE0AD
+:10392000FEA3E0FFE4FCFD904EF1E0F8A3E0F9A374
+:10393000E0FAA3E0FBC3120565501D904CD574015D
+:10394000F0904D01E0702B904D40F0A37448F0A32F
+:103950007412F0E4A3F0801AE4904CD5F0904D017D
+:10396000E0700F904D40F0A37448F0A3745DF0E454
+:10397000A3F0904CD5E0904D00F022020F30904E15
+:10398000FEEEF0A3EFF0904F00ECF0A3EDF0904FBF
+:1039900000E0FEA3E0FFD3904EFFE09F904EFEE0DC
+:1039A0009E4016904F00E0FEA3E0FF904EFFE09F88
+:1039B000FF904EFEE09EFE801E904EFEE0FEA3E0D5
+:1039C000FFC3904F01E09FFF904F00E09EFEAD03CC
+:1039D000C3EB9FFFE49EFE22904F24EEF0A3EFF096
+:1039E000A905904B9EE0FEA3E0FFAD0119ED602F0D
+:1039F0000FEFAC0670010E14F5828C83E0FD904F42
+:103A000024E475F00112042485F082F583EDF0AD15
+:103A100007AC06BC4BD4BD9AD17E4B7F3680CB9091
+:103A20004B9EEEF0A3EFF0227A0C794B904F12747C
+:103A300001F0A3740CF0A3744BF0904BA0E0FEA334
+:103A4000E0FF904B9EE06E7003A3E06F700261D7C1
+:103A50007E0C7F4B7D0331D8904F12E0FBA3E0FA40
+:103A6000A3E0F91203B6B4022B904F13E475F002F1
+:103A700012040E904F12E0FBA3E0FAA3E0F9120348
+:103A8000B6FF904E7CE0A3E0FAA3E0F5828A8312B1
+:103A900005DD61D7904F12E0FBA3E0FAA3E0F91235
+:103AA00003B664047059904F1375F00112040E7E32
+:103AB0000C7F4E904F12E0FBA3E0FAA3E0F9120353
+:103AC000B614FD31D8904F12E0FBA3E0FAA3E02436
+:103AD00001F9E43AFAC002C001904F12E0A3E0FA03
+:103AE000A3E0F91203B6FD7C00904E7FE0A3E0FA5C
+:103AF000A3E0F5828A83D001D0021205DD61D79060
+:103B00004F12E0FBA3E0FAA3E0F91203B6640570DC
+:103B100059904F1375F00112040E7E0C7F4E904F9A
+:103B200012E0FBA3E0FAA3E0F91203B614FD31D8CA
+:103B3000904F12E0FBA3E0FAA3E02401F9E43AFA83
+:103B4000C002C001904F12E0A3E0FAA3E0F9120313
+:103B5000B6FD7C00904E88E0A3E0FAA3E0F5828AEF
+:103B600083D001D0021205DD806D904F12E0FBA3DF
+:103B7000E0FAA3E0F91203B664037059904F13758D
+:103B8000F00112040E7E0C7F4E904F12E0FBA3E07A
+:103B9000FAA3E0F91203B614FD31D8904F12E0FBFE
+:103BA000A3E0FAA3E02401F9E43AFAC002C00190CC
+:103BB0004F12E0A3E0FAA3E0F91203B6FD7C0090F7
+:103BC0004E8BE0A3E0FAA3E0F5828A83D001D00215
+:103BD0001205DD800280FE904BA5E0FEA3E0FF9081
+:103BE0004C5EE06E7003A3E06F6022904E82E0FBBB
+:103BF000A3E0FAA3E0F94A60371205D9904BA5E09B
+:103C0000FFA3E0904C5ECFF0A3EFF080CA904C8D04
+:103C1000E0FFA3E06F6019904E85E0FBA3E0FAA3FC
+:103C2000E0F94A600B1205D9904C8DE0A3F080DDDD
+:103C300022900446E0FF22900B7F7401F0E4900B89
+:103C40007EF0229082807401F022904EC1EBF0A3AE
+:103C5000EAF0A3E9F0904EC774FFF5F01204244592
+:103C6000F0602A904EC4E0FBA3E475F00112042436
+:103C7000A9F0FA1203B6FF904EC1E0FBA3E475F081
+:103C800001120424A9F0FAEF1203FC80C822904E1E
+:103C9000D7EEF0A3EFF0904EDBEBF0A3EAF0A3E950
+:103CA000F0904ED9ECF0A3EDF0A3E0F9A3E0FAA375
+:103CB000E0904EC4C9F0A3EAF0A3E9F0A3ECF0A3AE
+:103CC000EDF07B017A0B7986914A900B8374A0F01A
+:103CD000904ED7E0FFA3E0900B84CFF0A3EFF090DD
+:103CE0004EDAE02403FD904ED9E03400FCEDFAEC0E
+:103CF000FFEAFEEF908098EEF0A3EFF07A0B798365
+:103D00007E0B7F837483FC740BFFECFEEFA3EEF05D
+:103D1000A3EFF090809EE4F0A3F090809004F090E8
+:103D20008006E04404F00227DB904F1BEBF0A3EA8F
+:103D3000F0A3E9F0E4FEFDEF5407FEEF1313135474
+:103D400003FD300022904F1BE0FBA3E0FAA3E02D1F
+:103D5000F9E43AFA1203B6FF7401A806088002C318
+:103D600033D8FC4F0203FC904F1BE0FBA3E0FAA307
+:103D7000E02DF9E43AFA1203B6FF7401A8060880B0
+:103D800002C333D8FCF45F0203FCEFF4600C7B0148
+:103D90007A807978A2029200B12922AC07ECF46013
+:103DA00017AF04A2059203B1B9AF04A205B3920202
+:103DB000B18AAF04C204B1CA22EFF4600C7B017A6D
+:103DC00080797CA2039200B12922EFF4600C7B0180
+:103DD0007A807970A2049200B12922EFF4603AEF60
+:103DE0005407FEEF1313135403FF24A3F582E434A6
+:103DF00000F583C083C082E0FD7401A8060880023C
+:103E0000C333D8FCF4FC5DD082D083F074A72FF5C7
+:0A3E100082E43400F583E05CF02248
+:00000001FF
Index: output/fwram.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/fwram.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/fwram.rom	(working copy)
@@ -0,0 +1,15898 @@
+02
+05
+df
+02
+02
+ab
+e8
+64
+80
+f8
+e9
+33
+e8
+33
+60
+11
+04
+60
+f0
+ed
+33
+ec
+33
+70
+09
+e8
+fc
+e9
+fd
+ea
+fe
+eb
+ff
+22
+04
+60
+de
+d3
+eb
+9f
+ea
+9e
+e9
+9d
+e8
+c2
+e7
+8c
+f0
+c2
+f7
+95
+f0
+40
+0c
+e8
+cc
+f8
+e9
+cd
+f9
+ea
+ce
+fa
+eb
+cf
+fb
+12
+02
+76
+85
+d0
+f0
+58
+04
+70
+03
+20
+d5
+b3
+e8
+04
+70
+07
+50
+02
+b2
+d5
+02
+02
+b5
+92
+d5
+ec
+04
+60
+f7
+e4
+cc
+c0
+e0
+c3
+98
+f8
+60
+3b
+94
+18
+60
+08
+40
+0d
+d0
+e0
+fb
+02
+02
+8d
+e4
+fb
+fa
+c9
+fc
+80
+28
+e8
+30
+e4
+06
+e4
+c9
+fb
+e4
+ca
+fc
+e8
+30
+e3
+05
+e4
+c9
+ca
+cb
+fc
+e8
+54
+07
+60
+10
+f8
+c3
+e9
+13
+f9
+ea
+13
+fa
+eb
+13
+fb
+ec
+13
+fc
+d8
+f1
+30
+f5
+2f
+c3
+e4
+9c
+fc
+ef
+9b
+ff
+ee
+9a
+fe
+ed
+99
+fd
+d0
+e0
+fb
+ef
+4e
+4d
+4c
+70
+12
+22
+db
+03
+02
+02
+b2
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ed
+30
+e7
+eb
+02
+02
+8d
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+d0
+e0
+fb
+50
+13
+0b
+bb
+00
+03
+02
+02
+b5
+ed
+13
+fd
+ee
+13
+fe
+ef
+13
+ff
+ec
+13
+fc
+02
+02
+8d
+ec
+4d
+60
+11
+e8
+49
+70
+17
+ed
+33
+ec
+33
+04
+60
+0d
+e4
+fc
+ff
+fe
+fd
+22
+e9
+33
+e8
+33
+04
+70
+f8
+02
+02
+ab
+12
+02
+76
+58
+04
+60
+09
+e4
+cc
+24
+81
+50
+06
+28
+50
+09
+02
+02
+b5
+28
+40
+03
+02
+02
+b2
+c0
+e0
+eb
+4a
+70
+44
+b9
+80
+06
+d0
+e0
+fb
+02
+02
+a1
+ef
+4e
+70
+1c
+bd
+80
+08
+eb
+ff
+ea
+fe
+e9
+fd
+80
+eb
+e9
+8d
+f0
+a4
+fe
+e5
+f0
+02
+01
+e4
+e9
+cd
+f9
+ea
+fe
+eb
+ff
+ef
+89
+f0
+a4
+fc
+e5
+f0
+ce
+89
+f0
+a4
+2e
+ff
+e4
+35
+f0
+cd
+89
+f0
+a4
+2d
+fe
+e4
+35
+f0
+80
+67
+ef
+4e
+70
+05
+bd
+80
+d7
+80
+c3
+ef
+8b
+f0
+a4
+ac
+f0
+ee
+8b
+f0
+a4
+2c
+fc
+e4
+35
+f0
+f8
+ef
+8a
+f0
+a4
+2c
+e5
+f0
+38
+fc
+e4
+33
+cb
+8d
+f0
+a4
+2c
+fc
+e5
+f0
+3b
+f8
+ee
+8a
+f0
+a4
+2c
+fc
+e5
+f0
+38
+f8
+e4
+33
+cf
+89
+f0
+a4
+2c
+fc
+e5
+f0
+38
+cf
+34
+00
+ce
+89
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+33
+c9
+8d
+f0
+a4
+2e
+fe
+e5
+f0
+39
+cd
+8a
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+3d
+fd
+33
+d0
+e0
+fb
+50
+07
+0b
+bb
+00
+0f
+02
+02
+b5
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+02
+02
+8d
+75
+f0
+20
+80
+0e
+75
+f0
+10
+80
+05
+75
+f0
+08
+7d
+00
+7e
+00
+7f
+00
+33
+92
+d5
+30
+d5
+03
+12
+05
+57
+ec
+33
+40
+10
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+d5
+f0
+ed
+22
+e5
+f0
+24
+7e
+a2
+d5
+13
+cc
+92
+e7
+cd
+ce
+ff
+22
+ed
+d2
+e7
+cd
+33
+ec
+33
+92
+d5
+24
+81
+40
+06
+e4
+ff
+fe
+fd
+fc
+22
+fc
+e4
+cf
+ce
+cd
+cc
+24
+e0
+50
+11
+74
+ff
+80
+ed
+c3
+cc
+13
+cc
+cd
+13
+cd
+ce
+13
+ce
+cf
+13
+cf
+04
+70
+f0
+30
+d5
+de
+02
+05
+57
+e9
+d2
+e7
+c9
+33
+e8
+33
+f8
+92
+d5
+ed
+d2
+e7
+cd
+33
+ec
+33
+fc
+50
+02
+b2
+d5
+22
+ec
+30
+e7
+10
+0f
+bf
+00
+0c
+0e
+be
+00
+08
+0d
+bd
+00
+04
+0b
+eb
+60
+14
+a2
+d5
+eb
+13
+fc
+ed
+92
+e7
+fd
+22
+74
+ff
+fc
+fd
+fe
+ff
+22
+e4
+80
+f8
+a2
+d5
+74
+ff
+13
+fc
+7d
+80
+e4
+80
+ef
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+03
+10
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+e8
+8f
+f0
+a4
+cc
+8b
+f0
+a4
+2c
+fc
+e9
+8e
+f0
+a4
+2c
+fc
+8a
+f0
+ed
+a4
+2c
+fc
+ea
+8e
+f0
+a4
+cd
+a8
+f0
+8b
+f0
+a4
+2d
+cc
+38
+25
+f0
+fd
+e9
+8f
+f0
+a4
+2c
+cd
+35
+f0
+fc
+eb
+8e
+f0
+a4
+fe
+a9
+f0
+eb
+8f
+f0
+a4
+cf
+c5
+f0
+2e
+cd
+39
+fe
+e4
+3c
+fc
+ea
+a4
+2d
+ce
+35
+f0
+fd
+e4
+3c
+fc
+22
+75
+f0
+08
+75
+82
+00
+ef
+2f
+ff
+ee
+33
+fe
+cd
+33
+cd
+cc
+33
+cc
+c5
+82
+33
+c5
+82
+9b
+ed
+9a
+ec
+99
+e5
+82
+98
+40
+0c
+f5
+82
+ee
+9b
+fe
+ed
+9a
+fd
+ec
+99
+fc
+0f
+d5
+f0
+d6
+e4
+ce
+fb
+e4
+cd
+fa
+e4
+cc
+f9
+a8
+82
+22
+b8
+00
+c1
+b9
+00
+59
+ba
+00
+2d
+ec
+8b
+f0
+84
+cf
+ce
+cd
+fc
+e5
+f0
+cb
+f9
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+eb
+33
+fb
+10
+d7
+03
+99
+40
+04
+eb
+99
+fb
+0f
+d8
+e5
+e4
+f9
+fa
+22
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+c9
+33
+c9
+10
+d7
+05
+9b
+e9
+9a
+40
+07
+ec
+9b
+fc
+e9
+9a
+f9
+0f
+d8
+e0
+e4
+c9
+fa
+e4
+cc
+fb
+22
+75
+f0
+10
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+cc
+33
+cc
+c8
+33
+c8
+10
+d7
+07
+9b
+ec
+9a
+e8
+99
+40
+0a
+ed
+9b
+fd
+ec
+9a
+fc
+e8
+99
+f8
+0f
+d5
+f0
+da
+e4
+cd
+fb
+e4
+cc
+fa
+e4
+c8
+f9
+22
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+e4
+9d
+fd
+e4
+9c
+fc
+22
+eb
+9f
+f5
+f0
+ea
+9e
+42
+f0
+e9
+9d
+42
+f0
+e8
+9c
+45
+f0
+22
+ec
+f0
+a3
+ed
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+22
+a8
+82
+85
+83
+f0
+d0
+83
+d0
+82
+12
+05
+99
+12
+05
+99
+12
+05
+99
+12
+05
+99
+e4
+73
+e4
+93
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+f0
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+06
+26
+02
+39
+7b
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+06
+6b
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+4e
+6a
+ff
+20
+fe
+00
+00
+00
+ff
+1f
+7d
+ff
+34
+9a
+00
+00
+00
+ff
+35
+cb
+00
+08
+09
+0a
+0b
+0c
+0d
+0e
+18
+19
+17
+15
+14
+13
+11
+16
+1b
+1c
+1d
+1a
+00
+00
+1d
+1e
+00
+00
+e6
+ed
+ff
+66
+06
+20
+00
+fb
+fa
+fe
+e4
+f3
+19
+22
+3e
+f6
+e2
+fc
+fd
+f5
+28
+23
+3f
+00
+00
+e1
+00
+00
+09
+3c
+48
+00
+00
+00
+e0
+f1
+87
+21
+2c
+e3
+d6
+00
+00
+00
+89
+3d
+04
+f4
+00
+00
+00
+e7
+40
+35
+16
+1c
+13
+24
+00
+00
+41
+2d
+2b
+18
+2f
+25
+0b
+11
+42
+2e
+07
+0c
+30
+26
+34
+7f
+44
+3a
+1a
+46
+4a
+4c
+49
+37
+04
+0f
+08
+47
+4d
+4b
+4e
+38
+43
+3b
+14
+12
+31
+27
+32
+36
+00
+33
+52
+53
+5f
+5c
+59
+64
+29
+0e
+50
+54
+60
+5d
+5a
+62
+15
+0d
+51
+55
+61
+5e
+5b
+63
+17
+2a
+4f
+56
+57
+00
+58
+39
+1b
+1f
+f2
+ee
+e8
+e5
+d5
+fd
+0a
+00
+00
+00
+00
+00
+05
+10
+00
+00
+00
+00
+00
+00
+01
+01
+00
+90
+4f
+26
+ef
+f0
+90
+4c
+f0
+e0
+70
+03
+02
+08
+5e
+90
+4c
+f0
+e0
+14
+f0
+e4
+90
+4d
+f8
+f0
+90
+4e
+69
+f0
+90
+4f
+26
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+64
+01
+70
+70
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+09
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+7b
+90
+4e
+ef
+74
+10
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+19
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+f9
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+7f
+2b
+12
+08
+5f
+90
+4d
+f8
+74
+01
+f0
+e4
+90
+4c
+f0
+f0
+90
+44
+8b
+04
+f0
+22
+90
+4f
+26
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+64
+02
+70
+46
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+ef
+74
+06
+f0
+12
+10
+ce
+90
+4f
+26
+e0
+75
+f0
+1f
+a4
+24
+09
+f9
+74
+4e
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+62
+90
+4e
+ef
+74
+10
+f0
+12
+10
+ce
+7f
+03
+11
+5f
+90
+42
+5e
+74
+01
+f0
+22
+90
+4e
+69
+74
+01
+f0
+90
+44
+f9
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4d
+d3
+74
+01
+f0
+7f
+2b
+11
+5f
+90
+42
+5e
+74
+01
+f0
+22
+90
+4f
+02
+ef
+f0
+78
+03
+7c
+4f
+7d
+01
+7b
+ff
+7a
+07
+79
+34
+7e
+00
+7f
+03
+12
+03
+90
+90
+4f
+02
+e0
+90
+4f
+05
+f0
+7b
+01
+7a
+4f
+79
+03
+7d
+03
+90
+4e
+e4
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4b
+9c
+e0
+ff
+a3
+e0
+90
+4e
+e8
+cf
+f0
+a3
+ef
+f0
+90
+4b
+9a
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9c
+e0
+fc
+a3
+e0
+fd
+7b
+64
+12
+39
+7e
+90
+4e
+e7
+e0
+fe
+ef
+c3
+9e
+40
+e1
+90
+4e
+e7
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+4e
+e4
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+e8
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+4e
+e8
+e0
+fe
+a3
+e0
+ff
+be
+4b
+c6
+bf
+36
+c3
+90
+4e
+e8
+74
+4a
+f0
+a3
+74
+a0
+f0
+80
+b7
+90
+4e
+e8
+e0
+ff
+a3
+e0
+90
+4b
+9c
+cf
+f0
+a3
+ef
+f0
+22
+90
+4f
+29
+ef
+f0
+14
+b4
+0d
+00
+40
+02
+41
+e6
+90
+09
+37
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+09
+5e
+02
+09
+5e
+02
+09
+5e
+02
+0a
+e6
+02
+09
+a5
+02
+09
+e9
+02
+09
+f1
+02
+0a
+3c
+02
+0a
+3c
+02
+0a
+a3
+02
+0a
+e6
+02
+0a
+e6
+02
+09
+9d
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+0d
+7f
+22
+11
+5f
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+90
+4f
+29
+e0
+14
+90
+4d
+d6
+f0
+90
+42
+13
+74
+05
+f0
+90
+4c
+f0
+f0
+7f
+04
+11
+5f
+7f
+0a
+d1
+c0
+7f
+2a
+11
+5f
+e4
+90
+4c
+ed
+f0
+22
+7f
+0e
+11
+5f
+7f
+02
+01
+5f
+e4
+90
+4c
+f0
+f0
+91
+00
+ef
+70
+0a
+f1
+11
+ef
+70
+05
+f1
+e1
+ef
+60
+0f
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+90
+4d
+ff
+74
+03
+f0
+22
+7f
+1e
+11
+5f
+12
+1f
+c4
+e4
+90
+4d
+d4
+f0
+90
+4d
+d3
+f0
+90
+4e
+69
+f0
+12
+27
+e3
+7f
+2c
+11
+5f
+e4
+90
+4c
+ed
+f0
+22
+91
+00
+e4
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+12
+26
+1c
+90
+4c
+c0
+74
+ff
+f0
+a3
+f0
+7f
+c8
+d1
+c0
+c2
+01
+7f
+ff
+51
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c0
+7d
+01
+7c
+00
+7f
+bd
+7e
+7f
+d1
+12
+d2
+01
+7f
+ff
+51
+ec
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+f1
+11
+ef
+60
+09
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+4e
+7f
+0a
+d1
+c0
+e4
+90
+4e
+69
+f0
+90
+4c
+00
+e0
+f4
+70
+21
+a3
+e0
+b4
+ff
+1c
+a3
+e0
+b4
+ff
+17
+a3
+e0
+b4
+ff
+12
+90
+4c
+00
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+69
+74
+01
+f0
+7f
+21
+11
+5f
+90
+4c
+c5
+74
+02
+f0
+e4
+a3
+f0
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+91
+00
+ef
+70
+05
+f1
+11
+ef
+60
+09
+90
+4f
+29
+e0
+90
+4c
+ed
+f0
+22
+90
+4c
+c5
+e0
+64
+01
+60
+1d
+e4
+90
+4e
+69
+f0
+7f
+23
+11
+5f
+90
+4c
+c5
+74
+01
+f0
+e4
+a3
+f0
+90
+4c
+ee
+74
+f0
+f0
+e4
+90
+4c
+e9
+f0
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+ed
+f0
+22
+ef
+f4
+60
+0d
+7b
+01
+7a
+80
+79
+74
+a2
+01
+92
+00
+12
+3d
+29
+22
+90
+4d
+fe
+e0
+64
+02
+60
+02
+61
+ff
+90
+4c
+e9
+e0
+60
+02
+61
+ff
+90
+4c
+ee
+e0
+60
+02
+61
+ff
+90
+4c
+d5
+e0
+b4
+02
+04
+f1
+cf
+80
+2e
+90
+4c
+d5
+e0
+b4
+01
+14
+90
+4c
+f7
+e0
+70
+21
+90
+4c
+e2
+74
+0c
+f0
+90
+4c
+f7
+74
+01
+f0
+80
+13
+90
+4c
+f7
+e0
+b4
+01
+0c
+e4
+f0
+90
+4c
+e2
+f0
+c2
+01
+7f
+0f
+51
+ec
+12
+18
+0e
+ef
+70
+02
+61
+db
+c3
+90
+4c
+e4
+e0
+94
+78
+90
+4c
+e3
+e0
+94
+00
+50
+4f
+90
+4c
+b7
+e0
+30
+e0
+0e
+90
+4c
+e2
+e0
+70
+08
+d2
+01
+7f
+0f
+51
+ec
+80
+12
+90
+4c
+e5
+e0
+70
+0c
+90
+4c
+e2
+e0
+70
+06
+c2
+01
+7f
+0f
+51
+ec
+90
+4c
+b7
+e0
+30
+e1
+08
+d2
+01
+7f
+10
+51
+ec
+80
+06
+c2
+01
+7f
+10
+51
+ec
+90
+4c
+b7
+e0
+30
+e2
+06
+d2
+01
+7f
+1f
+41
+ec
+c2
+01
+7f
+1f
+41
+ec
+c2
+01
+7f
+10
+51
+ec
+c2
+01
+7f
+1f
+51
+ec
+90
+4c
+e2
+e0
+70
+36
+90
+4c
+e5
+e0
+70
+30
+c2
+01
+7f
+0f
+51
+ec
+c2
+01
+7f
+0f
+41
+ec
+c2
+01
+7f
+10
+51
+ec
+c2
+01
+7f
+1f
+51
+ec
+90
+4c
+e2
+e0
+70
+12
+90
+4c
+e5
+e0
+70
+0c
+c2
+01
+7f
+0f
+51
+ec
+c2
+01
+7f
+0f
+51
+ec
+22
+90
+4c
+c9
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+07
+7f
+04
+11
+5f
+7f
+01
+22
+90
+4c
+c7
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+07
+7f
+11
+11
+5f
+7f
+01
+22
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+07
+7f
+22
+11
+5f
+7f
+01
+22
+7f
+00
+22
+90
+4c
+ce
+e0
+30
+e1
+3d
+90
+4c
+d0
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d0
+e0
+64
+b4
+70
+36
+90
+4d
+f6
+e0
+04
+f0
+e0
+d3
+94
+02
+50
+07
+e4
+90
+4c
+d0
+f0
+80
+23
+90
+4d
+f6
+e0
+b4
+03
+1c
+90
+4d
+ef
+74
+01
+f0
+e4
+90
+4c
+d0
+f0
+f1
+cf
+80
+0d
+e4
+90
+4d
+f6
+f0
+90
+4d
+ef
+f0
+90
+4c
+d0
+f0
+90
+4c
+ce
+e0
+30
+e4
+38
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d1
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d1
+e0
+64
+06
+70
+47
+90
+4c
+c3
+e0
+ff
+60
+04
+64
+fe
+70
+3c
+e4
+90
+4c
+cd
+f0
+91
+00
+d1
+d8
+7f
+0a
+d1
+c0
+7f
+0a
+31
+1c
+80
+29
+90
+4c
+cd
+e0
+60
+1e
+e4
+f0
+7f
+0d
+31
+1c
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+b1
+7b
+f1
+d8
+e4
+90
+4c
+d1
+f0
+90
+4c
+ce
+e0
+30
+e3
+46
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d2
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d2
+e0
+64
+06
+70
+61
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+7f
+05
+31
+1c
+d1
+d8
+e4
+90
+4c
+cc
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+c0
+e0
+90
+4c
+c4
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+22
+90
+4c
+cc
+e0
+60
+2a
+e4
+f0
+90
+4c
+c3
+e0
+ff
+90
+4c
+c0
+e0
+6f
+60
+1c
+90
+4c
+eb
+74
+01
+f0
+d1
+d8
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+91
+00
+b1
+7b
+f1
+d8
+e4
+90
+4c
+d2
+f0
+22
+90
+4c
+bf
+e0
+ff
+70
+02
+c1
+11
+64
+01
+60
+04
+7f
+c8
+d1
+c0
+c2
+01
+7f
+ff
+51
+ec
+90
+4c
+bf
+e0
+64
+02
+70
+31
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+fc
+7f
+52
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+7c
+00
+7f
+57
+7e
+7f
+d1
+12
+7b
+01
+7a
+4d
+79
+fa
+7d
+01
+7c
+00
+7f
+56
+7e
+7f
+d1
+12
+80
+17
+90
+4c
+bf
+e0
+b4
+03
+10
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+c0
+7d
+01
+7c
+00
+7f
+bd
+7e
+7f
+d1
+12
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+d1
+12
+d2
+01
+7f
+ff
+51
+ec
+7f
+0a
+d1
+c0
+e4
+90
+4c
+bf
+f0
+22
+90
+4e
+b8
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+ba
+e0
+70
+02
+a3
+e0
+70
+02
+c1
+bf
+90
+4e
+b8
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+4e
+bf
+f0
+a3
+ef
+f0
+90
+4e
+ba
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+4e
+bf
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+4e
+bf
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+4e
+bb
+e0
+9d
+f0
+90
+4e
+ba
+e0
+9c
+f0
+90
+4e
+b8
+e0
+fe
+a3
+e0
+ff
+90
+4e
+bc
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+3c
+8e
+7f
+0a
+d1
+c0
+90
+4e
+bf
+e0
+fe
+a3
+e0
+ff
+90
+4e
+bd
+ee
+8f
+f0
+12
+04
+0e
+90
+4e
+b9
+e0
+2f
+f0
+90
+4e
+b8
+e0
+3e
+f0
+c1
+29
+22
+ef
+d3
+94
+00
+40
+11
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+1f
+80
+e9
+22
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+10
+d1
+f4
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+0f
+d1
+f4
+c2
+06
+7f
+1f
+ac
+07
+ec
+f4
+60
+16
+af
+04
+d2
+04
+12
+3d
+ca
+af
+04
+a2
+06
+92
+01
+51
+ec
+af
+04
+c2
+02
+12
+3d
+8a
+22
+90
+4c
+c9
+e0
+b4
+02
+07
+7f
+1e
+11
+5f
+7f
+01
+22
+90
+4c
+c7
+e0
+b4
+02
+07
+7f
+0e
+11
+5f
+7f
+01
+22
+7f
+00
+22
+12
+36
+7b
+12
+3a
+28
+12
+1f
+53
+b1
+7b
+51
+fe
+90
+4d
+7d
+e0
+60
+03
+12
+1b
+b9
+90
+0b
+7e
+e0
+14
+60
+0d
+24
+fe
+70
+e2
+12
+30
+ba
+d1
+d8
+f1
+95
+80
+fe
+90
+4c
+ea
+e0
+70
+1e
+90
+4c
+ec
+e0
+70
+18
+90
+4c
+e5
+e0
+70
+12
+90
+4d
+e9
+e0
+70
+0c
+90
+4d
+f5
+e0
+70
+06
+90
+4c
+f8
+e0
+60
+05
+12
+3c
+37
+80
+b0
+12
+30
+ba
+90
+4d
+01
+e0
+60
+02
+d1
+d8
+f1
+95
+80
+a1
+80
+9f
+22
+e4
+90
+0b
+7f
+f0
+90
+0b
+7e
+f0
+7f
+01
+c1
+c0
+90
+4c
+c3
+e0
+b4
+01
+06
+d2
+01
+7f
+ff
+41
+ec
+90
+4c
+c3
+e0
+b4
+02
+06
+d2
+01
+7f
+ff
+41
+ec
+90
+4c
+c3
+e0
+b4
+03
+06
+d2
+06
+7f
+ff
+c1
+f4
+d2
+06
+7f
+0f
+c1
+f4
+e4
+90
+4d
+38
+f0
+7f
+19
+01
+5f
+90
+80
+10
+74
+01
+f0
+80
+fe
+22
+90
+4c
+c0
+e0
+ff
+64
+fe
+60
+03
+ef
+70
+07
+7f
+22
+11
+5f
+7f
+01
+22
+7f
+00
+22
+90
+4f
+1f
+ed
+f0
+90
+4f
+1e
+ef
+f0
+64
+01
+70
+70
+a3
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+74
+01
+f0
+ef
+75
+f0
+1f
+a4
+24
+03
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+03
+79
+d0
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+09
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+44
+79
+7b
+90
+4e
+ef
+74
+10
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+19
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+44
+79
+f9
+90
+4e
+ef
+74
+06
+f0
+80
+59
+90
+4f
+1e
+e0
+64
+02
+70
+50
+a3
+e0
+ff
+75
+f0
+1f
+a4
+24
+02
+f5
+82
+e4
+34
+4e
+f5
+83
+74
+02
+f0
+ef
+75
+f0
+1f
+a4
+24
+03
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+00
+79
+40
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4f
+1f
+e0
+75
+f0
+1f
+a4
+24
+09
+f5
+82
+e4
+34
+4e
+af
+82
+fe
+7b
+01
+7a
+42
+79
+62
+90
+4e
+ef
+74
+10
+f0
+11
+ce
+22
+90
+4e
+ea
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+ef
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+4e
+ec
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+ea
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+4e
+8e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+12
+1a
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+7c
+00
+12
+1a
+f0
+90
+4c
+c5
+e0
+64
+03
+70
+65
+90
+4e
+94
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+05
+50
+57
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+64
+39
+60
+09
+ef
+64
+53
+60
+04
+ef
+b4
+47
+06
+90
+4d
+46
+74
+03
+f0
+ef
+b4
+7f
+06
+90
+4d
+f5
+74
+01
+f0
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+60
+06
+90
+4d
+e9
+74
+01
+f0
+90
+4e
+94
+e0
+04
+f0
+80
+9f
+7e
+4e
+7f
+99
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+ef
+74
+06
+f0
+11
+ce
+90
+4d
+f5
+e0
+90
+4e
+93
+f0
+90
+4e
+99
+e0
+90
+4e
+91
+f0
+90
+4e
+93
+e0
+64
+7f
+70
+30
+90
+4e
+91
+e0
+ff
+64
+7f
+60
+27
+ef
+60
+24
+90
+4e
+9d
+e0
+a3
+f0
+90
+4e
+9c
+e0
+a3
+f0
+90
+4e
+9b
+e0
+a3
+f0
+90
+4e
+9a
+e0
+a3
+f0
+90
+4e
+99
+e0
+a3
+f0
+90
+4e
+99
+74
+7f
+f0
+90
+4e
+94
+74
+03
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+08
+50
+52
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4e
+91
+f0
+64
+7f
+70
+37
+90
+4e
+94
+e0
+a3
+f0
+90
+4e
+95
+e0
+c3
+94
+07
+50
+21
+e0
+ff
+24
+98
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fe
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+ee
+f0
+90
+4e
+95
+e0
+04
+f0
+80
+d6
+e4
+90
+4e
+9e
+f0
+80
+08
+90
+4e
+94
+e0
+04
+f0
+80
+a4
+90
+4e
+8e
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+90
+4e
+97
+f0
+90
+4e
+99
+e0
+ff
+90
+4d
+f5
+f0
+90
+4e
+97
+e0
+fe
+90
+48
+01
+f0
+ef
+60
+0c
+90
+4e
+99
+e0
+64
+7f
+70
+46
+a3
+e0
+70
+42
+ee
+70
+3f
+90
+4d
+ed
+e0
+60
+19
+90
+48
+00
+74
+01
+f0
+fb
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+e4
+90
+4d
+ed
+f0
+90
+48
+00
+f0
+90
+4d
+ee
+e0
+60
+1a
+90
+4e
+60
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+e4
+90
+4d
+ee
+f0
+90
+4e
+60
+f0
+90
+4e
+99
+e0
+b4
+7f
+08
+90
+4e
+96
+74
+03
+f0
+80
+06
+90
+4e
+96
+74
+02
+f0
+90
+4e
+96
+e0
+90
+4e
+94
+f0
+90
+4e
+94
+e0
+ff
+c3
+94
+08
+40
+02
+81
+b1
+74
+97
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4e
+91
+f0
+70
+08
+90
+4e
+97
+e0
+70
+02
+81
+b1
+90
+4e
+91
+e0
+fb
+b4
+d6
+08
+7f
+23
+7e
+02
+91
+f6
+80
+26
+eb
+b4
+d5
+08
+7f
+21
+7e
+02
+91
+f6
+80
+1a
+90
+4e
+91
+e0
+fb
+b4
+fa
+08
+7f
+8a
+7e
+01
+91
+f6
+80
+0a
+eb
+b4
+fb
+06
+7f
+92
+7e
+01
+91
+f6
+90
+4e
+91
+e0
+b4
+29
+27
+90
+4e
+96
+e0
+b4
+03
+20
+90
+4d
+fa
+e0
+60
+0a
+e4
+f0
+90
+4c
+bf
+74
+02
+f0
+80
+0b
+90
+4d
+fa
+74
+01
+f0
+90
+4c
+bf
+04
+f0
+e4
+90
+4e
+91
+f0
+90
+4e
+96
+e0
+ff
+b4
+02
+06
+90
+4d
+fa
+e0
+60
+11
+ef
+64
+03
+60
+02
+81
+68
+90
+4d
+fa
+e0
+64
+01
+60
+02
+81
+68
+90
+4e
+91
+e0
+fb
+b4
+3a
+08
+7f
+70
+7e
+00
+91
+f6
+81
+68
+eb
+b4
+3b
+08
+7f
+6f
+7e
+00
+91
+f6
+81
+68
+90
+4e
+91
+e0
+ff
+b4
+3c
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+04
+f0
+81
+68
+ef
+b4
+3d
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+06
+f0
+80
+75
+ef
+b4
+3e
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+19
+f0
+80
+63
+ef
+b4
+3f
+0e
+90
+48
+01
+74
+01
+f0
+90
+4e
+91
+74
+1b
+f0
+80
+51
+ef
+b4
+40
+08
+7f
+b6
+7e
+00
+91
+f6
+80
+45
+90
+4e
+91
+e0
+fb
+b4
+41
+08
+7f
+cd
+7e
+00
+91
+f6
+80
+35
+eb
+b4
+42
+08
+7f
+b5
+7e
+00
+91
+f6
+80
+29
+90
+4e
+91
+e0
+fb
+b4
+43
+08
+7f
+e2
+7e
+00
+91
+f6
+80
+19
+eb
+b4
+44
+08
+7f
+ea
+7e
+00
+91
+f6
+80
+0d
+90
+4e
+91
+e0
+b4
+45
+06
+7f
+e9
+7e
+00
+91
+f6
+90
+4d
+ee
+e0
+70
+3b
+90
+4e
+96
+e0
+b4
+03
+18
+90
+4e
+91
+e0
+ff
+60
+27
+90
+4e
+94
+e0
+24
+00
+f5
+82
+e4
+34
+48
+f5
+83
+ef
+f0
+80
+16
+90
+4e
+91
+e0
+ff
+60
+0f
+90
+4e
+94
+e0
+24
+01
+f5
+82
+e4
+34
+48
+f5
+83
+ef
+f0
+90
+4d
+ed
+74
+01
+f0
+90
+4e
+94
+e0
+04
+f0
+61
+07
+90
+4d
+ed
+e0
+60
+27
+90
+48
+00
+74
+01
+f0
+90
+4c
+c5
+e0
+b4
+03
+0a
+90
+4d
+46
+e0
+90
+48
+02
+f0
+80
+05
+e4
+90
+48
+02
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+90
+4d
+ee
+e0
+60
+11
+90
+4e
+60
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+22
+ad
+07
+ac
+06
+ef
+90
+4e
+61
+f0
+ee
+a3
+f0
+90
+4d
+ee
+74
+01
+f0
+22
+90
+4e
+fa
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+f0
+90
+4e
+fd
+e0
+ff
+c3
+94
+06
+40
+03
+02
+18
+0d
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+54
+f0
+64
+f0
+60
+0a
+ef
+54
+d0
+64
+d0
+60
+03
+02
+18
+04
+12
+03
+b6
+fb
+b4
+f1
+08
+7f
+83
+7e
+01
+91
+f6
+e1
+d9
+eb
+b4
+f2
+08
+7f
+cd
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f3
+06
+7f
+b7
+91
+f6
+e1
+d9
+eb
+b4
+f4
+08
+7f
+b6
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f5
+06
+7f
+b5
+91
+f6
+e1
+d9
+eb
+b4
+f6
+08
+7f
+ea
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f7
+06
+7f
+e9
+91
+f6
+e1
+d9
+eb
+b4
+f8
+08
+7f
+e2
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f9
+07
+7f
+94
+0e
+91
+f6
+e1
+d9
+eb
+b4
+fa
+08
+7f
+8a
+7e
+01
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+fb
+07
+7f
+92
+0e
+91
+f6
+e1
+d9
+eb
+b4
+d0
+08
+7f
+2a
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d1
+08
+7f
+25
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d3
+08
+7f
+26
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d2
+08
+7f
+24
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d4
+08
+7f
+27
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d5
+08
+7f
+21
+7e
+02
+91
+f6
+e1
+d9
+eb
+b4
+d6
+08
+7f
+23
+7e
+02
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d7
+06
+7f
+70
+91
+f6
+e1
+d9
+eb
+b4
+d8
+08
+7f
+6f
+7e
+00
+91
+f6
+e1
+d9
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d9
+06
+7f
+b8
+91
+f6
+80
+7d
+eb
+b4
+da
+08
+7f
+30
+7e
+00
+91
+f6
+80
+71
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+db
+08
+7f
+06
+7e
+03
+91
+f6
+80
+49
+eb
+b4
+dc
+08
+7f
+07
+7e
+03
+91
+f6
+80
+3d
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fe
+b4
+dd
+07
+7f
+01
+12
+28
+26
+80
+16
+ee
+b4
+de
+07
+7f
+02
+12
+28
+26
+80
+0b
+12
+03
+b6
+b4
+df
+05
+7f
+04
+12
+28
+26
+90
+4e
+5f
+e0
+b4
+02
+24
+90
+4e
+fa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4e
+00
+f0
+e4
+12
+03
+fc
+90
+4e
+fd
+e0
+04
+f0
+02
+15
+18
+22
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+03
+7f
+01
+22
+7f
+00
+22
+e4
+90
+4f
+27
+f0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+06
+90
+4f
+27
+e0
+ff
+22
+90
+47
+f4
+e0
+54
+40
+fe
+a3
+e0
+54
+08
+ff
+be
+40
+09
+bf
+08
+06
+90
+4f
+27
+e0
+ff
+22
+90
+4c
+ee
+e0
+60
+06
+90
+4f
+27
+e0
+ff
+22
+90
+4c
+c9
+e0
+70
+45
+90
+4c
+c7
+e0
+70
+3f
+90
+4c
+c5
+e0
+64
+03
+60
+37
+90
+4c
+ef
+e0
+70
+3b
+74
+0a
+f0
+a3
+e0
+70
+34
+90
+4d
+fe
+e0
+64
+02
+70
+2c
+90
+4c
+c3
+e0
+ff
+c3
+94
+01
+40
+0b
+ef
+d3
+94
+03
+50
+05
+12
+09
+1c
+80
+17
+7f
+09
+12
+09
+1c
+90
+4f
+27
+74
+01
+f0
+80
+0a
+e4
+90
+4c
+eb
+f0
+90
+4f
+27
+04
+f0
+90
+4f
+27
+e0
+ff
+22
+90
+4e
+9f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+e4
+ff
+90
+4e
+a2
+e0
+fe
+ef
+c3
+9e
+50
+23
+90
+4e
+9f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+74
+a3
+2f
+f5
+82
+e4
+34
+4e
+f5
+83
+ee
+f0
+0f
+80
+d3
+11
+2b
+ef
+70
+02
+21
+f6
+90
+4c
+eb
+e0
+60
+02
+21
+f6
+90
+4c
+c9
+e0
+b4
+04
+0d
+7b
+01
+7a
+4e
+79
+a3
+90
+4e
+a2
+e0
+fd
+91
+0c
+90
+4c
+c5
+e0
+64
+03
+60
+02
+21
+f6
+90
+4e
+a3
+e0
+64
+01
+70
+23
+74
+04
+f0
+a3
+e0
+70
+14
+90
+4e
+a6
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+32
+90
+4d
+f0
+74
+01
+f0
+80
+2a
+90
+4e
+a3
+e0
+b4
+02
+19
+74
+05
+f0
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+12
+90
+4d
+f0
+74
+01
+f0
+80
+0a
+90
+4e
+a3
+e0
+b4
+03
+03
+74
+07
+f0
+90
+4e
+a3
+e0
+64
+10
+70
+2b
+74
+08
+f0
+a3
+e0
+70
+1e
+a3
+e0
+70
+1a
+a3
+e0
+70
+16
+a3
+e0
+70
+12
+a3
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+06
+90
+4d
+f0
+74
+01
+f0
+90
+4e
+a3
+e0
+64
+11
+70
+2b
+74
+09
+f0
+a3
+e0
+70
+1e
+a3
+e0
+70
+1a
+a3
+e0
+70
+16
+a3
+e0
+70
+12
+a3
+e0
+70
+0e
+a3
+e0
+70
+0a
+a3
+e0
+70
+06
+90
+4d
+f0
+f0
+80
+06
+90
+4d
+f0
+74
+01
+f0
+7b
+01
+7a
+4e
+79
+a3
+90
+4e
+a2
+e0
+fd
+71
+df
+22
+90
+4d
+ec
+e0
+60
+0f
+e0
+14
+f0
+e0
+70
+09
+90
+41
+31
+04
+f0
+90
+4d
+eb
+f0
+90
+4c
+c9
+e0
+64
+04
+60
+08
+90
+4c
+c7
+e0
+64
+04
+70
+5b
+90
+4c
+c7
+e0
+64
+04
+70
+39
+90
+4d
+7e
+e0
+60
+33
+90
+4d
+eb
+e0
+70
+10
+90
+4c
+e3
+e0
+fe
+a3
+e0
+ff
+4e
+60
+22
+ef
+54
+1f
+70
+1d
+e4
+90
+4d
+eb
+f0
+90
+4e
+60
+74
+04
+f0
+90
+4c
+f9
+e0
+90
+4e
+61
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+02
+11
+c4
+90
+4c
+e3
+e0
+64
+02
+70
+04
+a3
+e0
+64
+58
+60
+02
+41
+ef
+12
+0c
+00
+90
+4c
+ec
+74
+01
+f0
+22
+90
+4c
+c5
+e0
+64
+03
+70
+39
+90
+4c
+e4
+e0
+54
+1f
+64
+10
+70
+1e
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+51
+f0
+e4
+90
+4e
+5f
+f0
+90
+48
+00
+04
+f0
+fb
+7a
+48
+79
+00
+7d
+09
+11
+c4
+c3
+90
+4c
+e4
+e0
+94
+58
+90
+4c
+e3
+e0
+94
+02
+40
+39
+61
+b9
+90
+4c
+c5
+e0
+b4
+01
+11
+c3
+90
+4c
+e4
+e0
+94
+78
+90
+4c
+e3
+e0
+94
+00
+40
+21
+61
+b9
+c3
+90
+4c
+e4
+e0
+94
+14
+90
+4c
+e3
+e0
+94
+00
+40
+10
+90
+4d
+f8
+e0
+60
+07
+e4
+f0
+7f
+0e
+12
+08
+5f
+12
+0f
+cf
+22
+90
+4f
+15
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+4f
+15
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+e4
+12
+03
+fc
+80
+e0
+22
+7b
+01
+7a
+4c
+79
+bf
+7d
+65
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+93
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+a8
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+7c
+00
+51
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+7b
+01
+7a
+4e
+79
+60
+7d
+09
+7c
+00
+51
+f0
+e4
+90
+4d
+f9
+f0
+90
+4d
+ff
+f0
+90
+4d
+ea
+f0
+90
+4d
+f4
+f0
+90
+4d
+f1
+f0
+90
+4d
+fe
+f0
+90
+4d
+f0
+f0
+90
+4d
+d5
+f0
+90
+4d
+f8
+f0
+90
+4d
+f6
+f0
+90
+4e
+5f
+f0
+90
+4d
+ef
+f0
+90
+4d
+f2
+f0
+90
+4d
+f5
+f0
+90
+4d
+fa
+f0
+90
+4e
+00
+f0
+90
+4c
+b7
+74
+f0
+f0
+90
+4d
+f3
+f0
+e4
+90
+4d
+38
+f0
+90
+4d
+d4
+f0
+22
+12
+0e
+d8
+90
+4b
+ef
+74
+ff
+f0
+90
+4d
+01
+74
+01
+f0
+90
+4c
+b7
+74
+f0
+f0
+90
+4d
+f3
+f0
+90
+4d
+40
+74
+ff
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
+90
+0b
+e7
+74
+06
+f0
+90
+4f
+2f
+ed
+f0
+e0
+fd
+90
+0b
+e8
+f0
+7e
+0b
+7f
+e9
+90
+4e
+ef
+ed
+f0
+12
+10
+ce
+7b
+01
+7a
+0b
+79
+e7
+90
+4f
+2f
+e0
+24
+02
+fd
+02
+08
+87
+90
+0b
+e7
+74
+03
+f0
+ed
+60
+02
+71
+e5
+22
+71
+1c
+12
+36
+8e
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+e5
+74
+1e
+f0
+e4
+90
+4c
+f0
+f0
+90
+4d
+1a
+74
+ff
+f0
+90
+44
+fc
+e0
+90
+4d
+d0
+f0
+90
+44
+fd
+e0
+90
+4d
+d1
+f0
+90
+44
+fe
+e0
+90
+4d
+d2
+f0
+22
+90
+4f
+20
+ef
+f0
+a3
+ed
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4f
+20
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+90
+4f
+21
+e0
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+01
+c4
+90
+4d
+46
+e0
+60
+4a
+90
+4d
+f0
+e0
+70
+44
+90
+4c
+c5
+e0
+64
+03
+70
+3c
+90
+4d
+f9
+e0
+ff
+90
+4e
+01
+e0
+6f
+60
+28
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+51
+f0
+e4
+90
+4e
+5f
+f0
+90
+48
+00
+04
+f0
+90
+4d
+46
+e0
+90
+48
+02
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+11
+c4
+90
+4d
+f9
+e0
+90
+4e
+01
+f0
+22
+90
+4d
+09
+e0
+60
+59
+e4
+f0
+90
+4c
+c5
+e0
+b4
+03
+08
+90
+4d
+d8
+74
+10
+f0
+80
+06
+90
+4d
+d8
+74
+05
+f0
+90
+4d
+02
+e0
+90
+4d
+d9
+f0
+90
+4d
+03
+e0
+90
+4d
+da
+f0
+90
+4d
+04
+e0
+90
+4d
+db
+f0
+90
+4d
+05
+e0
+90
+4d
+dc
+f0
+90
+4d
+06
+e0
+90
+4d
+dd
+f0
+90
+4d
+07
+e0
+90
+4d
+de
+f0
+90
+4d
+08
+e0
+90
+4d
+df
+f0
+7b
+01
+7a
+4d
+79
+d8
+7d
+08
+11
+c4
+90
+4d
+11
+e0
+60
+59
+e4
+f0
+90
+4c
+c5
+e0
+b4
+03
+08
+90
+4d
+e0
+74
+11
+f0
+80
+06
+90
+4d
+e0
+74
+06
+f0
+90
+4d
+0a
+e0
+90
+4d
+e1
+f0
+90
+4d
+0b
+e0
+90
+4d
+e2
+f0
+90
+4d
+0c
+e0
+90
+4d
+e3
+f0
+90
+4d
+0d
+e0
+90
+4d
+e4
+f0
+90
+4d
+0e
+e0
+90
+4d
+e5
+f0
+90
+4d
+0f
+e0
+90
+4d
+e6
+f0
+90
+4d
+10
+e0
+90
+4d
+e7
+f0
+7b
+01
+7a
+4d
+79
+e0
+7d
+08
+11
+c4
+22
+e4
+90
+4e
+de
+f0
+a3
+f0
+a3
+f0
+f9
+a3
+c9
+f0
+a3
+f0
+a3
+e9
+f0
+f1
+65
+40
+02
+e1
+52
+12
+2a
+b3
+90
+4e
+e1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+07
+90
+4c
+b6
+04
+f0
+81
+87
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+03
+f0
+90
+4d
+f9
+74
+0a
+f0
+90
+4c
+d5
+e0
+ff
+b4
+01
+12
+e4
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+12
+f0
+e4
+a3
+f0
+80
+10
+e4
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+5d
+f0
+e4
+a3
+f0
+90
+4c
+b6
+74
+01
+f0
+90
+4d
+7d
+e0
+60
+08
+e4
+f0
+90
+4d
+46
+74
+03
+f0
+90
+4e
+e1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+fe
+90
+4e
+de
+f0
+90
+00
+02
+12
+03
+cf
+90
+4e
+df
+f0
+12
+03
+b6
+90
+4e
+e0
+f0
+be
+7f
+08
+90
+4d
+e8
+74
+01
+f0
+80
+05
+e4
+90
+4d
+e8
+f0
+ef
+64
+02
+70
+02
+e1
+3c
+90
+4e
+de
+e0
+64
+29
+70
+6a
+a3
+e0
+64
+14
+70
+58
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+ce
+e0
+54
+f7
+f0
+90
+4c
+c5
+e0
+64
+01
+60
+3b
+90
+4c
+ce
+e0
+44
+10
+f0
+90
+4c
+c3
+e0
+ff
+70
+02
+e1
+52
+64
+fe
+70
+02
+e1
+52
+90
+4b
+eb
+74
+20
+f0
+a3
+74
+15
+f0
+a3
+74
+10
+f0
+a3
+74
+05
+f0
+90
+4c
+ee
+74
+28
+f0
+12
+0c
+00
+7f
+0a
+12
+0e
+c0
+7f
+0a
+02
+09
+1c
+90
+4c
+ce
+e0
+54
+ef
+f0
+22
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+80
+0a
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+90
+4e
+de
+e0
+64
+7f
+70
+58
+a3
+e0
+fb
+b4
+17
+09
+7f
+70
+7e
+00
+12
+14
+f6
+80
+53
+eb
+b4
+1c
+09
+7f
+6f
+7e
+00
+12
+14
+f6
+80
+46
+90
+4e
+df
+e0
+fb
+b4
+18
+09
+7f
+83
+7e
+01
+12
+14
+f6
+80
+35
+eb
+b4
+0c
+09
+7f
+ea
+7e
+00
+12
+14
+f6
+80
+28
+90
+4e
+df
+e0
+fb
+b4
+12
+09
+7f
+e9
+7e
+00
+12
+14
+f6
+80
+17
+eb
+b4
+13
+13
+7f
+e2
+7e
+00
+12
+14
+f6
+80
+0a
+90
+4c
+ce
+e0
+54
+f7
+f0
+54
+ef
+f0
+90
+4e
+e1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+11
+11
+90
+4e
+69
+e0
+70
+02
+91
+d8
+22
+a1
+97
+90
+0b
+e7
+74
+04
+f0
+61
+e5
+90
+0b
+e7
+74
+05
+f0
+61
+e5
+90
+4b
+9c
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9a
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+12
+32
+52
+90
+4c
+e4
+e0
+04
+f0
+70
+06
+90
+4c
+e3
+e0
+04
+f0
+f1
+b2
+31
+f7
+12
+0c
+3f
+12
+35
+db
+12
+36
+2e
+90
+4c
+ca
+e0
+64
+02
+60
+07
+90
+4c
+c8
+e0
+b4
+02
+07
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+d3
+e0
+60
+0b
+14
+f0
+e0
+70
+06
+74
+05
+f0
+12
+37
+5a
+22
+e4
+90
+4c
+f0
+f0
+90
+4d
+f8
+f0
+22
+90
+4d
+fe
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+20
+4e
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+4e
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4d
+79
+fa
+7d
+01
+7c
+00
+7f
+56
+7e
+7f
+11
+4e
+7f
+0a
+12
+0e
+c0
+90
+4c
+c3
+e0
+ff
+d3
+94
+03
+50
+1e
+ef
+c3
+94
+01
+40
+18
+e0
+75
+f0
+1f
+a4
+24
+01
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+90
+4d
+fa
+f0
+12
+09
+1c
+80
+05
+7f
+08
+12
+09
+1c
+90
+4d
+fa
+e0
+d3
+94
+01
+40
+02
+e4
+f0
+22
+90
+4e
+f5
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+4e
+f5
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+f1
+db
+90
+4e
+f7
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+0b
+79
+83
+90
+4e
+f5
+e0
+a3
+e0
+90
+4e
+ef
+f0
+02
+10
+ce
+90
+4f
+2e
+ef
+f0
+12
+05
+b3
+23
+21
+01
+24
+3a
+02
+24
+2b
+04
+23
+43
+06
+23
+f3
+0a
+24
+2b
+13
+24
+f9
+14
+25
+d4
+15
+23
+a2
+18
+22
+1f
+27
+25
+9b
+29
+23
+e9
+2a
+21
+4c
+2f
+22
+1b
+30
+22
+72
+31
+22
+e2
+32
+21
+4c
+33
+25
+75
+34
+25
+b5
+35
+22
+6a
+37
+22
+1f
+39
+22
+72
+3c
+00
+00
+26
+1b
+f1
+a3
+12
+1c
+18
+7b
+01
+7a
+4c
+79
+ff
+7d
+01
+7c
+00
+7f
+c0
+7e
+7f
+11
+4e
+90
+4c
+ff
+e0
+64
+01
+70
+3f
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+05
+12
+0f
+95
+80
+e6
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+10
+90
+4c
+d5
+74
+02
+f0
+e4
+90
+4c
+e5
+f0
+7f
+19
+02
+08
+5f
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+7c
+00
+7f
+c1
+7e
+7f
+11
+4e
+7f
+0a
+12
+0e
+c0
+90
+4c
+c1
+e0
+d3
+94
+03
+40
+12
+e4
+f0
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+fc
+7f
+c1
+7e
+7f
+12
+0e
+12
+90
+4c
+c0
+e0
+90
+4c
+c3
+f0
+12
+0f
+a2
+7f
+0a
+12
+0e
+c0
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+11
+4e
+90
+4c
+f2
+e0
+b4
+ff
+19
+a3
+e0
+b4
+ff
+14
+90
+4c
+93
+e0
+a3
+e0
+90
+4c
+f2
+f0
+90
+4c
+91
+e0
+a3
+e0
+90
+4c
+f3
+f0
+02
+1f
+ce
+f1
+aa
+e1
+79
+90
+4c
+c3
+e0
+d3
+94
+00
+50
+02
+c1
+1b
+e0
+94
+04
+40
+02
+c1
+1b
+e0
+75
+f0
+1f
+a4
+24
+e3
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1f
+7c
+00
+d1
+1c
+7f
+c8
+12
+0e
+c0
+c2
+01
+7f
+ff
+12
+0a
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+0e
+12
+d2
+01
+7f
+ff
+02
+0a
+ec
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+74
+03
+f0
+e4
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+ee
+f0
+90
+4c
+eb
+f0
+90
+4c
+c0
+74
+fe
+f0
+90
+4c
+c3
+f0
+90
+4d
+46
+74
+03
+f0
+90
+4d
+f9
+74
+0a
+f0
+90
+4f
+2e
+e0
+64
+31
+70
+34
+90
+4d
+fa
+f0
+90
+4e
+69
+f0
+90
+4c
+c1
+f0
+90
+4c
+e5
+74
+1e
+f0
+90
+4b
+eb
+e0
+b4
+0f
+12
+a3
+e0
+b4
+0f
+0d
+a3
+e0
+b4
+0f
+08
+a3
+e0
+64
+0f
+70
+02
+c1
+1b
+90
+4c
+bf
+74
+02
+f0
+02
+0d
+7b
+90
+4c
+e5
+e0
+60
+02
+c1
+1b
+22
+e4
+90
+4c
+c5
+f0
+a3
+f0
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+ed
+e0
+60
+0b
+12
+1f
+c4
+90
+4c
+ed
+e0
+ff
+02
+09
+1c
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+f0
+e0
+70
+02
+c1
+1b
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c9
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+47
+f4
+e0
+a3
+20
+e7
+02
+c1
+1b
+90
+4d
+ea
+74
+32
+f0
+22
+90
+4c
+c9
+74
+04
+f0
+e4
+a3
+f0
+7f
+0e
+12
+08
+5f
+7f
+02
+12
+08
+5f
+c2
+01
+7f
+ff
+12
+0a
+ec
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+e4
+90
+4c
+e3
+f0
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+eb
+f0
+90
+4d
+ea
+f0
+90
+42
+13
+74
+1a
+f0
+e4
+90
+4d
+f4
+f0
+90
+00
+40
+e0
+70
+14
+a3
+e0
+70
+10
+a3
+e0
+70
+0c
+a3
+e0
+70
+08
+a3
+e0
+70
+04
+a3
+e0
+60
+e6
+7f
+05
+02
+08
+5f
+90
+4c
+e9
+e0
+60
+2a
+e4
+90
+4d
+fa
+f0
+90
+4c
+c1
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+00
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+d1
+49
+90
+4c
+bf
+74
+03
+f0
+e4
+90
+4c
+e9
+f0
+90
+4c
+ea
+74
+0a
+f0
+90
+41
+31
+74
+01
+f0
+90
+4c
+e5
+e0
+60
+02
+c1
+1b
+02
+34
+35
+7f
+04
+12
+08
+5f
+7f
+0a
+02
+0e
+c0
+e4
+90
+05
+4f
+f0
+90
+4d
+f1
+04
+f0
+e4
+90
+4d
+ea
+f0
+90
+47
+f4
+e0
+a3
+30
+e7
+10
+90
+4d
+f4
+74
+01
+f0
+90
+05
+4f
+74
+04
+f0
+ff
+02
+08
+5f
+e4
+90
+4c
+f0
+f0
+90
+4c
+ca
+74
+02
+f0
+90
+4c
+c9
+04
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+08
+e4
+90
+4c
+c9
+f0
+a3
+f0
+22
+90
+4c
+c9
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c9
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+ea
+f0
+90
+4d
+f4
+e0
+64
+01
+70
+4c
+90
+4c
+c3
+e0
+d3
+94
+00
+40
+3e
+e0
+94
+04
+50
+39
+e0
+75
+f0
+1f
+a4
+24
+e3
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1f
+7c
+00
+d1
+1c
+7f
+c8
+12
+0e
+c0
+c2
+01
+7f
+ff
+12
+0a
+ec
+7b
+01
+7a
+4e
+79
+02
+7d
+5d
+7c
+00
+7f
+60
+7e
+7f
+12
+0e
+12
+d2
+01
+7f
+ff
+12
+0a
+ec
+e4
+90
+4d
+f4
+f0
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+ed
+e0
+60
+04
+ff
+02
+09
+1c
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+e0
+64
+01
+70
+02
+c1
+1b
+90
+4f
+2e
+e0
+64
+13
+70
+02
+c1
+1b
+90
+4c
+cb
+e0
+64
+04
+60
+07
+7f
+05
+12
+09
+1c
+80
+03
+12
+0f
+cf
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+a3
+f0
+a3
+f0
+7f
+0e
+12
+08
+5f
+7f
+02
+12
+08
+5f
+c2
+01
+7f
+ff
+12
+0a
+ec
+90
+4c
+e9
+e0
+60
+35
+e4
+90
+4d
+fa
+f0
+90
+4c
+c1
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+00
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+90
+4d
+fa
+e0
+ff
+90
+4c
+c3
+e0
+75
+f0
+1f
+a4
+24
+01
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+90
+4d
+f8
+e0
+70
+06
+90
+4d
+d4
+74
+14
+f0
+90
+4c
+e5
+e0
+70
+03
+12
+34
+35
+e4
+90
+4c
+e9
+f0
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
+a3
+f0
+12
+1f
+c4
+e4
+90
+4c
+eb
+f0
+90
+4d
+ec
+74
+0a
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4c
+c3
+e0
+14
+fd
+7f
+01
+12
+0f
+f7
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4d
+39
+12
+05
+82
+00
+00
+00
+00
+e4
+90
+4d
+d7
+f0
+90
+4d
+f1
+04
+f0
+90
+4c
+c8
+04
+f0
+90
+4c
+c7
+04
+f0
+22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+3d
+f0
+90
+4c
+ec
+e0
+b4
+01
+05
+e4
+f0
+02
+0f
+cf
+90
+4c
+ed
+e0
+60
+04
+ff
+02
+09
+1c
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d6
+e0
+ff
+02
+07
+37
+12
+0f
+cf
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4f
+18
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+4f
+18
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+74
+ff
+12
+03
+fc
+80
+df
+22
+90
+4c
+c3
+e0
+14
+90
+4f
+28
+f0
+e4
+90
+4d
+f1
+f0
+90
+4f
+28
+e0
+fd
+7f
+02
+12
+0f
+f7
+90
+4f
+28
+e0
+ff
+60
+3c
+90
+4e
+02
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+03
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+02
+7d
+1f
+7c
+00
+d1
+1c
+90
+4f
+28
+e0
+ff
+64
+01
+60
+3c
+90
+4e
+21
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+22
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+21
+7d
+1f
+7c
+00
+d1
+1c
+90
+4f
+28
+e0
+ff
+64
+02
+60
+3c
+90
+4e
+40
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1f
+a4
+24
+03
+f9
+74
+4e
+35
+f0
+fa
+90
+4e
+d3
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+41
+f1
+2f
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+40
+7d
+1f
+7c
+00
+d1
+1c
+22
+90
+4e
+d0
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+4e
+d6
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+4e
+d3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+90
+4e
+d0
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+f1
+bd
+e4
+90
+4f
+2c
+f0
+f0
+90
+4f
+2c
+e0
+90
+06
+81
+93
+ff
+60
+0d
+c2
+05
+12
+3d
+9b
+90
+4f
+2c
+e0
+04
+f0
+80
+e8
+22
+f1
+aa
+f1
+79
+02
+0e
+d8
+90
+80
+91
+74
+0d
+f0
+a3
+04
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+14
+f0
+22
+e4
+90
+4f
+2b
+f0
+f0
+90
+4f
+2b
+e0
+ff
+c3
+94
+08
+50
+0d
+c2
+05
+12
+3d
+9b
+90
+4f
+2b
+e0
+04
+f0
+80
+e9
+22
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+be
+7e
+7f
+11
+4e
+90
+4c
+f2
+e0
+04
+f0
+a3
+e0
+04
+f0
+90
+4c
+f2
+e0
+90
+44
+fa
+f0
+90
+4c
+f3
+e0
+90
+44
+fb
+f0
+90
+4d
+d0
+e0
+90
+44
+fc
+f0
+90
+4d
+d1
+e0
+90
+44
+fd
+f0
+90
+4d
+d2
+e0
+90
+44
+fe
+f0
+22
+90
+4e
+5f
+e0
+64
+02
+60
+12
+74
+04
+f0
+90
+4d
+fc
+74
+01
+f0
+90
+4e
+60
+74
+06
+f0
+a3
+ef
+f0
+22
+90
+4f
+06
+e4
+f0
+a3
+f0
+a3
+f0
+51
+b3
+90
+4f
+06
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+02
+41
+b2
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+70
+02
+41
+b2
+64
+28
+60
+05
+ef
+64
+58
+70
+32
+90
+4c
+c8
+e0
+b4
+02
+10
+7f
+29
+12
+08
+5f
+90
+4c
+c8
+74
+03
+f0
+e4
+90
+4d
+d7
+f0
+90
+4c
+ca
+e0
+64
+02
+60
+02
+41
+b2
+90
+42
+5e
+04
+f0
+7f
+0a
+12
+08
+5f
+90
+4c
+ca
+74
+03
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+62
+40
+02
+21
+7e
+ef
+c3
+94
+59
+50
+02
+21
+7e
+ef
+b4
+62
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+d8
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+a8
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+27
+40
+02
+41
+4f
+ef
+c3
+94
+1e
+50
+02
+41
+4f
+ef
+b4
+27
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+13
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+e3
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+04
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+64
+2a
+70
+40
+90
+05
+4f
+e0
+60
+10
+e0
+ff
+14
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+e4
+f0
+90
+4d
+d7
+e0
+60
+32
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+c5
+90
+4d
+39
+12
+05
+76
+90
+4d
+d7
+e0
+14
+f0
+22
+90
+4f
+06
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+11
+11
+22
+e4
+90
+4e
+ad
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+32
+d7
+7a
+4d
+79
+a8
+90
+4e
+d3
+74
+01
+f0
+a3
+74
+4d
+f0
+a3
+74
+a8
+f0
+a3
+74
+14
+f0
+7b
+01
+7a
+4d
+79
+bc
+12
+27
+2f
+ef
+60
+16
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+91
+e9
+ef
+70
+09
+90
+4c
+ce
+e0
+44
+02
+f0
+80
+0c
+90
+4c
+ce
+e0
+54
+fd
+f0
+e4
+90
+4c
+d0
+f0
+e4
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+90
+06
+81
+93
+70
+02
+61
+e5
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+b0
+f0
+e0
+ff
+91
+db
+90
+4e
+b7
+ef
+f0
+c3
+94
+02
+50
+02
+61
+ce
+e4
+90
+4e
+ae
+f0
+90
+4e
+ae
+e0
+ff
+c3
+94
+08
+50
+7b
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+90
+4e
+b0
+e0
+fd
+e4
+ef
+5d
+60
+58
+e4
+90
+4e
+af
+f0
+90
+4e
+af
+e0
+ff
+90
+06
+81
+93
+60
+48
+90
+4e
+ad
+e0
+fe
+ef
+6e
+60
+37
+90
+4e
+af
+e0
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+7c
+00
+90
+4e
+ae
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+60
+08
+90
+4e
+b6
+74
+01
+f0
+80
+08
+90
+4e
+af
+e0
+04
+f0
+80
+ad
+90
+4e
+ae
+e0
+04
+f0
+61
+49
+90
+4e
+b0
+e0
+ff
+60
+08
+91
+db
+90
+4e
+b4
+e0
+2f
+f0
+90
+4e
+ad
+e0
+04
+f0
+61
+18
+90
+4e
+b4
+e0
+90
+4d
+f7
+f0
+e4
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+90
+06
+81
+93
+70
+02
+81
+c7
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+90
+4e
+b0
+f0
+90
+4e
+ad
+e0
+ff
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+b3
+f0
+90
+4e
+b0
+e0
+70
+04
+81
+bf
+81
+bf
+90
+4e
+b6
+e0
+60
+07
+7b
+00
+7a
+00
+79
+00
+22
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ee
+f0
+e4
+90
+4e
+ae
+f0
+90
+4e
+ae
+e0
+ff
+c3
+94
+08
+50
+4d
+90
+4e
+b0
+e0
+30
+e0
+2e
+90
+4e
+ad
+e0
+fe
+33
+33
+33
+54
+f8
+fe
+ef
+4e
+90
+4e
+b2
+f0
+a3
+e0
+30
+e0
+0d
+90
+4e
+b2
+e0
+90
+06
+96
+93
+ff
+b1
+19
+80
+0b
+90
+4e
+b2
+e0
+90
+06
+96
+93
+ff
+b1
+db
+90
+4e
+b0
+e0
+ff
+c3
+13
+f0
+90
+4e
+b3
+e0
+ff
+c3
+13
+f0
+90
+4e
+ae
+e0
+04
+f0
+80
+a9
+90
+4e
+b1
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+61
+f2
+90
+4e
+b1
+e0
+60
+07
+7b
+01
+7a
+4e
+79
+c9
+22
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
+22
+90
+4f
+0f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+ef
+c3
+9d
+50
+1b
+90
+4f
+0f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+60
+03
+7f
+00
+22
+0f
+80
+e0
+7f
+01
+22
+e4
+fe
+ef
+c3
+94
+e0
+40
+20
+ef
+d3
+94
+e7
+50
+1a
+90
+4e
+c9
+e0
+fe
+ef
+54
+07
+ff
+74
+01
+a8
+07
+08
+80
+02
+c3
+33
+d8
+fc
+4e
+90
+4e
+c9
+f0
+22
+e4
+fe
+ee
+c3
+94
+06
+50
+21
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+6f
+70
+02
+a1
+da
+ed
+70
+75
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+22
+ef
+c3
+94
+38
+50
+32
+ef
+13
+13
+13
+54
+1f
+24
+02
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+4d
+d0
+82
+d0
+83
+f0
+90
+4d
+09
+74
+01
+f0
+80
+30
+ef
+13
+13
+13
+54
+1f
+24
+03
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+4d
+d0
+82
+d0
+83
+f0
+90
+4d
+11
+74
+01
+f0
+0e
+ee
+64
+18
+60
+02
+a1
+43
+22
+e4
+fe
+90
+4f
+2a
+f0
+ef
+c3
+94
+e0
+40
+21
+ef
+d3
+94
+e7
+50
+1b
+90
+4e
+c9
+e0
+fe
+ef
+54
+07
+ff
+74
+01
+a8
+07
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5e
+90
+4e
+c9
+f0
+22
+e4
+fe
+ee
+c3
+94
+06
+50
+67
+90
+4f
+2a
+e0
+70
+27
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+6f
+60
+02
+c1
+e1
+ee
+b4
+05
+0b
+24
+ca
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+90
+4f
+2a
+74
+01
+f0
+c1
+e1
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+74
+c9
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ed
+f0
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+70
+02
+c1
+e9
+ee
+64
+05
+70
+78
+74
+ca
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+80
+6a
+ef
+c3
+94
+38
+50
+33
+ef
+13
+13
+13
+54
+1f
+24
+02
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+90
+4d
+09
+74
+01
+f0
+80
+31
+ef
+13
+13
+13
+54
+1f
+24
+03
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+ef
+54
+07
+fc
+74
+01
+a8
+04
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+90
+4d
+11
+74
+01
+f0
+0e
+ee
+64
+18
+60
+02
+c1
+0a
+22
+90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
+ef
+30
+e0
+12
+90
+4c
+f4
+e0
+b4
+03
+04
+74
+02
+f0
+22
+90
+4c
+f4
+74
+01
+f0
+22
+90
+4c
+f4
+74
+04
+f0
+22
+90
+4f
+0a
+ed
+f0
+90
+4f
+09
+ef
+f0
+e4
+90
+4f
+0b
+f0
+ef
+30
+e0
+05
+e4
+90
+4c
+f8
+f0
+90
+4f
+0a
+e0
+ff
+a3
+f0
+90
+4d
+f5
+e0
+64
+01
+70
+6c
+ef
+64
+04
+60
+08
+90
+4f
+0a
+e0
+64
+16
+70
+36
+90
+4f
+0a
+e0
+ff
+b4
+04
+08
+90
+4c
+c1
+74
+02
+f0
+80
+09
+ef
+b4
+16
+05
+e4
+90
+4c
+c1
+f0
+90
+4d
+1f
+74
+01
+f0
+e4
+90
+4f
+0b
+f0
+7b
+01
+7a
+4c
+79
+c1
+7d
+01
+fc
+7f
+c1
+7e
+7f
+12
+0e
+12
+80
+29
+90
+4f
+0a
+e0
+b4
+29
+22
+90
+4f
+09
+e0
+30
+e0
+16
+90
+4d
+fa
+e0
+60
+04
+e4
+f0
+80
+06
+90
+4d
+fa
+74
+01
+f0
+90
+4c
+bf
+74
+02
+f0
+e4
+90
+4f
+0b
+f0
+90
+4d
+f5
+e0
+64
+01
+60
+03
+02
+30
+66
+90
+4e
+69
+e0
+60
+03
+02
+30
+66
+90
+4f
+0a
+e0
+24
+d7
+60
+3c
+24
+ef
+b4
+0c
+00
+40
+03
+02
+30
+b4
+90
+2f
+d6
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+30
+03
+02
+30
+0c
+02
+30
+14
+02
+30
+1c
+02
+30
+24
+02
+30
+2c
+02
+30
+34
+02
+30
+3c
+02
+30
+44
+02
+30
+4c
+02
+30
+54
+02
+30
+5c
+90
+4f
+0b
+74
+35
+f0
+02
+30
+b4
+90
+4f
+0b
+74
+d7
+f0
+02
+30
+b4
+90
+4f
+0b
+74
+d8
+f0
+01
+b4
+90
+4f
+0b
+74
+3c
+f0
+01
+b4
+90
+4f
+0b
+74
+3d
+f0
+01
+b4
+90
+4f
+0b
+74
+3e
+f0
+01
+b4
+90
+4f
+0b
+74
+3f
+f0
+01
+b4
+90
+4f
+0b
+74
+f4
+f0
+80
+78
+90
+4f
+0b
+74
+f2
+f0
+80
+70
+90
+4f
+0b
+74
+f5
+f0
+80
+68
+90
+4f
+0b
+74
+f8
+f0
+80
+60
+90
+4f
+0b
+74
+f6
+f0
+80
+58
+90
+4f
+0b
+74
+f7
+f0
+80
+50
+80
+4e
+90
+4f
+0a
+e0
+b4
+4a
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+50
+7d
+08
+12
+2e
+ea
+90
+4f
+0a
+e0
+b4
+4b
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+52
+7d
+08
+12
+2e
+ea
+90
+4f
+0a
+e0
+b4
+4e
+13
+90
+4c
+c1
+e0
+b4
+02
+0c
+90
+4f
+09
+e0
+ff
+7b
+51
+7d
+08
+12
+2e
+ea
+90
+4f
+0b
+e0
+ff
+22
+e4
+ff
+90
+4f
+2d
+f0
+fe
+fd
+ef
+90
+06
+81
+93
+60
+49
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+0f
+80
+b0
+51
+a3
+90
+81
+1c
+e0
+90
+4f
+2d
+f0
+90
+4d
+ef
+e0
+60
+20
+e4
+ff
+31
+52
+7f
+01
+31
+52
+7f
+02
+31
+52
+7f
+03
+31
+52
+7f
+04
+31
+52
+7f
+05
+31
+52
+7f
+06
+31
+52
+7f
+07
+80
+10
+90
+4f
+2d
+e0
+ff
+90
+00
+a3
+f0
+ef
+f4
+90
+00
+a7
+f0
+22
+90
+4f
+31
+ef
+f0
+31
+f1
+92
+08
+90
+4f
+31
+e0
+ff
+a2
+08
+b3
+92
+07
+ef
+f4
+70
+02
+21
+f0
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+07
+43
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a3
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+4f
+30
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4f
+30
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+90
+4f
+32
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+31
+f7
+92
+09
+90
+4f
+32
+e0
+ff
+a2
+09
+b3
+92
+01
+02
+0a
+ec
+90
+4d
+fe
+e0
+64
+02
+70
+48
+90
+4c
+e9
+e0
+60
+38
+90
+4c
+cc
+e0
+64
+01
+60
+22
+90
+4c
+c3
+e0
+b4
+01
+04
+7f
+ff
+80
+c3
+90
+4c
+c3
+e0
+b4
+02
+04
+7f
+ff
+80
+b8
+90
+4c
+c3
+e0
+64
+03
+70
+1c
+7f
+ff
+80
+ac
+c2
+01
+7f
+ff
+12
+0a
+ec
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+ee
+e0
+60
+04
+7f
+0f
+51
+36
+22
+e4
+ff
+ef
+fd
+7c
+00
+24
+78
+fb
+ec
+34
+80
+8b
+82
+f5
+83
+e0
+fe
+ed
+24
+70
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+e0
+4e
+f4
+fe
+ef
+24
+7c
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+ee
+f0
+0f
+ef
+b4
+04
+cf
+22
+e4
+ff
+90
+4f
+0c
+f0
+fe
+fd
+a3
+f0
+a3
+f0
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+41
+e3
+e4
+ff
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+61
+68
+e4
+ff
+ef
+90
+06
+81
+93
+60
+40
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+60
+23
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+ee
+5d
+d0
+82
+d0
+83
+f0
+0f
+80
+b9
+22
+90
+4c
+c3
+e0
+b4
+01
+07
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+c3
+e0
+b4
+02
+07
+c2
+01
+7f
+ff
+02
+0a
+ec
+90
+4c
+c3
+e0
+b4
+03
+07
+c2
+06
+7f
+ff
+02
+0e
+f4
+c2
+06
+7f
+0f
+02
+0e
+f4
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+1c
+90
+4d
+20
+e0
+04
+f0
+e0
+b4
+01
+03
+12
+0f
+a2
+90
+4d
+20
+e0
+b4
+02
+08
+e4
+f0
+90
+4d
+1f
+f0
+91
+35
+22
+90
+4c
+ea
+e0
+60
+02
+14
+f0
+90
+4c
+ef
+e0
+60
+02
+14
+f0
+90
+4c
+f8
+e0
+60
+0b
+14
+f0
+e0
+70
+06
+90
+4c
+f4
+74
+06
+f0
+90
+4c
+e5
+e0
+60
+2c
+90
+4c
+ee
+e0
+70
+06
+90
+4c
+e9
+e0
+60
+06
+e4
+90
+4c
+e5
+f0
+22
+90
+4c
+e5
+e0
+14
+f0
+12
+0f
+a2
+90
+4c
+e5
+e0
+70
+57
+91
+35
+c2
+06
+7f
+ff
+12
+0e
+f4
+80
+4c
+90
+4c
+e9
+e0
+70
+46
+90
+4c
+ee
+e0
+70
+40
+90
+4c
+e2
+e0
+60
+3a
+14
+f0
+e0
+ff
+c3
+94
+08
+50
+1b
+e4
+90
+41
+31
+f0
+ef
+30
+e1
+09
+d2
+01
+7f
+0f
+12
+0a
+ec
+80
+16
+c2
+01
+7f
+0f
+12
+0a
+ec
+80
+0d
+90
+41
+31
+74
+01
+f0
+c2
+01
+7f
+0f
+12
+0a
+ec
+90
+4c
+e2
+e0
+70
+03
+74
+0c
+f0
+90
+4d
+ef
+e0
+70
+36
+90
+4d
+f0
+e0
+64
+01
+70
+2e
+90
+4c
+e3
+f0
+a3
+f0
+90
+4d
+f0
+f0
+90
+4e
+60
+e0
+60
+0d
+7b
+01
+7a
+4e
+79
+60
+7d
+03
+12
+18
+c4
+80
+11
+90
+48
+00
+e0
+60
+0b
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+18
+c4
+90
+4d
+ea
+e0
+60
+09
+e0
+14
+f0
+e0
+70
+03
+12
+0f
+d8
+90
+4d
+d4
+e0
+60
+11
+e0
+14
+f0
+e0
+70
+0b
+90
+4d
+3d
+e0
+70
+05
+7f
+1b
+12
+08
+5f
+90
+4d
+f9
+e0
+60
+29
+e0
+14
+f0
+e0
+70
+23
+90
+4d
+46
+e0
+60
+02
+e4
+f0
+90
+4c
+c7
+e0
+b4
+04
+07
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+3a
+f0
+22
+90
+4f
+22
+ed
+f0
+90
+00
+01
+12
+03
+cf
+90
+4f
+23
+f0
+22
+90
+4d
+ff
+e0
+60
+4c
+e0
+14
+f0
+e0
+70
+46
+90
+4c
+ed
+e0
+64
+05
+70
+3e
+90
+47
+f4
+e0
+54
+40
+fe
+a3
+e0
+54
+08
+64
+08
+70
+03
+ee
+64
+40
+60
+2a
+7f
+1e
+12
+08
+5f
+e4
+90
+4d
+d4
+f0
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+90
+4e
+69
+f0
+90
+4d
+d3
+f0
+12
+27
+e3
+7f
+2c
+12
+08
+5f
+e4
+90
+4c
+ed
+f0
+22
+90
+4c
+e9
+e0
+60
+28
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+fc
+f0
+90
+4c
+e9
+e0
+14
+f0
+e0
+70
+14
+90
+4c
+c4
+e0
+90
+4c
+c3
+f0
+90
+4c
+c0
+f0
+7f
+0d
+12
+09
+1c
+12
+0f
+cf
+90
+4c
+ee
+e0
+60
+18
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+ee
+e0
+14
+f0
+e0
+70
+08
+7f
+0a
+12
+0e
+c0
+12
+0f
+cf
+22
+7b
+01
+7a
+4e
+79
+6a
+78
+7c
+7c
+4e
+7d
+01
+7e
+00
+7f
+12
+02
+03
+90
+90
+4c
+d3
+74
+05
+f0
+e4
+a3
+f0
+ff
+ef
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+51
+f0
+a3
+f0
+0f
+ef
+b4
+04
+ea
+90
+4c
+93
+e0
+ff
+a3
+e0
+90
+4c
+fa
+cf
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+7b
+7a
+14
+79
+8e
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+b8
+7a
+1e
+79
+85
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4e
+f1
+12
+05
+82
+00
+00
+00
+00
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+96
+e0
+9f
+90
+4c
+95
+e0
+9e
+50
+03
+02
+39
+7a
+90
+4c
+95
+e0
+fe
+a3
+e0
+ff
+90
+4c
+d4
+e0
+fd
+04
+f0
+ed
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+ee
+f0
+a3
+ef
+f0
+90
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
+e4
+90
+4e
+f0
+f0
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+90
+4e
+f0
+e0
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+eb
+2f
+ff
+ea
+3e
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4e
+f1
+12
+05
+76
+90
+4e
+f0
+e0
+04
+f0
+e0
+b4
+04
+bf
+90
+4e
+f1
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+04
+fa
+f9
+f8
+12
+04
+c5
+90
+4e
+f1
+12
+05
+76
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+d3
+12
+05
+65
+50
+07
+e4
+90
+4c
+f9
+f0
+01
+b2
+90
+4c
+fa
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+40
+08
+90
+4c
+f9
+74
+64
+f0
+80
+5b
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+fb
+aa
+06
+e4
+90
+4e
+f1
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+c3
+9b
+ff
+ee
+9a
+fe
+ed
+94
+00
+fd
+ec
+94
+00
+fc
+e4
+7b
+64
+fa
+f9
+f8
+12
+04
+3a
+c0
+06
+c0
+07
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+fb
+e0
+9f
+ff
+90
+4c
+fa
+e0
+9e
+fe
+ab
+07
+fa
+e4
+f9
+f8
+d0
+07
+d0
+06
+12
+04
+c5
+90
+4c
+f9
+ef
+f0
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+27
+90
+4c
+d5
+74
+02
+f0
+90
+4d
+00
+e0
+64
+02
+70
+02
+21
+72
+90
+4c
+ff
+74
+01
+f0
+fb
+7a
+4c
+79
+ff
+fd
+7c
+00
+7f
+c0
+7e
+7f
+12
+0e
+12
+80
+7a
+90
+4d
+00
+e0
+64
+02
+60
+07
+90
+4c
+ff
+e0
+b4
+01
+15
+e4
+90
+4c
+ff
+f0
+7b
+01
+7a
+4c
+79
+ff
+7d
+01
+fc
+7f
+c0
+7e
+7f
+12
+0e
+12
+90
+4c
+de
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+f1
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+1d
+90
+4c
+d5
+74
+01
+f0
+90
+4d
+01
+e0
+70
+2b
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+12
+f0
+e4
+a3
+f0
+80
+1a
+e4
+90
+4c
+d5
+f0
+90
+4d
+01
+e0
+70
+0f
+90
+4d
+40
+f0
+a3
+74
+48
+f0
+a3
+74
+5d
+f0
+e4
+a3
+f0
+90
+4c
+d5
+e0
+90
+4d
+00
+f0
+22
+02
+0f
+30
+90
+4e
+fe
+ee
+f0
+a3
+ef
+f0
+90
+4f
+00
+ec
+f0
+a3
+ed
+f0
+90
+4f
+00
+e0
+fe
+a3
+e0
+ff
+d3
+90
+4e
+ff
+e0
+9f
+90
+4e
+fe
+e0
+9e
+40
+16
+90
+4f
+00
+e0
+fe
+a3
+e0
+ff
+90
+4e
+ff
+e0
+9f
+ff
+90
+4e
+fe
+e0
+9e
+fe
+80
+1e
+90
+4e
+fe
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4f
+01
+e0
+9f
+ff
+90
+4f
+00
+e0
+9e
+fe
+ad
+03
+c3
+eb
+9f
+ff
+e4
+9e
+fe
+22
+90
+4f
+24
+ee
+f0
+a3
+ef
+f0
+a9
+05
+90
+4b
+9e
+e0
+fe
+a3
+e0
+ff
+ad
+01
+19
+ed
+60
+2f
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+4f
+24
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ed
+f0
+ad
+07
+ac
+06
+bc
+4b
+d4
+bd
+9a
+d1
+7e
+4b
+7f
+36
+80
+cb
+90
+4b
+9e
+ee
+f0
+a3
+ef
+f0
+22
+7a
+0c
+79
+4b
+90
+4f
+12
+74
+01
+f0
+a3
+74
+0c
+f0
+a3
+74
+4b
+f0
+90
+4b
+a0
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9e
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+61
+d7
+7e
+0c
+7f
+4b
+7d
+03
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+b4
+02
+2b
+90
+4f
+13
+e4
+75
+f0
+02
+12
+04
+0e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+90
+4e
+7c
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+05
+dd
+61
+d7
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+04
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+7f
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+61
+d7
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+05
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+88
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+6d
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+03
+70
+59
+90
+4f
+13
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+31
+d8
+90
+4f
+12
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4f
+12
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+8b
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+02
+80
+fe
+90
+4b
+a5
+e0
+fe
+a3
+e0
+ff
+90
+4c
+5e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+22
+90
+4e
+82
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+37
+12
+05
+d9
+90
+4b
+a5
+e0
+ff
+a3
+e0
+90
+4c
+5e
+cf
+f0
+a3
+ef
+f0
+80
+ca
+90
+4c
+8d
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+4e
+85
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+05
+d9
+90
+4c
+8d
+e0
+a3
+f0
+80
+dd
+22
+90
+04
+46
+e0
+ff
+22
+90
+0b
+7f
+74
+01
+f0
+e4
+90
+0b
+7e
+f0
+22
+90
+82
+80
+74
+01
+f0
+22
+90
+4e
+c1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+c7
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+c4
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+c1
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4e
+d7
+ee
+f0
+a3
+ef
+f0
+90
+4e
+db
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+d9
+ec
+f0
+a3
+ed
+f0
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+90
+4e
+c4
+c9
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7b
+01
+7a
+0b
+79
+86
+91
+4a
+90
+0b
+83
+74
+a0
+f0
+90
+4e
+d7
+e0
+ff
+a3
+e0
+90
+0b
+84
+cf
+f0
+a3
+ef
+f0
+90
+4e
+da
+e0
+24
+03
+fd
+90
+4e
+d9
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+02
+27
+db
+90
+4f
+1b
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+00
+22
+90
+4f
+1b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+02
+03
+fc
+90
+4f
+1b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+78
+a2
+02
+92
+00
+b1
+29
+22
+ac
+07
+ec
+f4
+60
+17
+af
+04
+a2
+05
+92
+03
+b1
+b9
+af
+04
+a2
+05
+b3
+92
+02
+b1
+8a
+af
+04
+c2
+04
+b1
+ca
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+7c
+a2
+03
+92
+00
+b1
+29
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+70
+a2
+04
+92
+00
+b1
+29
+22
+ef
+f4
+60
+3a
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
Index: output/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: output/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: output/otp.dat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/otp.dat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/otp.dat	(working copy)
@@ -0,0 +1,12 @@
+00
+02
+aa
+55
+00
+00
+aa
+55
+00
+00
+82
+78
Index: output/ramcode.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/ramcode.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/ramcode.rom	(working copy)
@@ -0,0 +1,2048 @@
+c512801a
+c0000045
+c0018049
+c0028055
+c0030330
+c0050351
+c0138355
+c0140367
+c015836d
+c0210378
+c021837c
+c0280384
+c02a0393
+c0188041
+c019803e
+c0480226
+c04901ec
+c04a01f2
+c04a81da
+c058032e
+c058819e
+c05901b2
+c05981cc
+c05b01d5
+c05c81a6
+20203bf1
+c00c039f
+c00d83a7
+c01183c6
+c01203e2
+c019045c
+c01dd3b0
+c01f02a3
+c01f82a7
+c02504a5
+c0258455
+c026045f
+c0270465
+c02b046c
+c0308473
+c0318478
+c032049a
+c03284cf
+c0348632
+c0350617
+c0358619
+c037063d
+c03784b0
+c0438139
+c04682c2
+c04702db
+c04782ab
+c05e82b9
+c0668233
+c0678145
+c068015a
+c04e03e6
+c04f83fc
+c0710409
+c071841b
+c0730433
+20203bf1
+da204040
+18007201
+20203305
+d8a04040
+df20000a
+20407e3b
+202032d8
+6810813b
+60008b81
+70800608
+20203003
+204000d3
+204000c5
+2040005a
+2040004e
+20203015
+680947f4
+6800c3d8
+7d3a040b
+6800c133
+7d3a0406
+600947f4
+20600000
+20403392
+20403407
+20403024
+2040065e
+20203022
+6800c7dc
+203a005e
+6800c793
+207a0000
+20400134
+20740000
+1ff0fe00
+1fe20c00
+20400115
+6000cba7
+c0008073
+c003007d
+1fe20400
+18c22200
+6800c040
+c3000070
+1a220c00
+c6848000
+18427e00
+c001807f
+c002809d
+20203bf1
+1a220c00
+d8a000f8
+2020010d
+20400115
+20400115
+60008b7d
+20400078
+20207c33
+20400118
+18c20400
+18508400
+60094b9a
+20600000
+d8a04d57
+2020010d
+20400115
+1fe22200
+18c27e00
+600102b7
+2040527c
+243a0088
+1a20a201
+20404b2c
+2020008d
+d8a04bad
+1a227200
+680102b7
+1fe20c00
+2020010f
+18a0a5fe
+680142b7
+e0a10000
+580000a1
+e0a08000
+1a20f3ff
+680102b7
+1fe20c00
+2040010f
+1a420c00
+e8c10000
+60014c9b
+1fe0f202
+20407e45
+704c9a64
+20600000
+18c22200
+6800cba9
+1fe08401
+18410403
+6008cba9
+1feffe07
+d8a04bad
+98a08a00
+1a220c00
+20400115
+18c22200
+1fe0ffff
+1fe27200
+1fe0fe07
+6000cc82
+1a220c00
+20400115
+18c22200
+c00080b3
+c00100b9
+c00180bb
+c00200bd
+68014cb8
+204000c2
+2040561e
+247a0000
+700b7d1b
+20205620
+68014cba
+202000b4
+68014cbc
+202000b4
+68014d3e
+204000c2
+6800cd7e
+207a0000
+202000b5
+e0a10000
+1a220c00
+2020010f
+680a4d4b
+1c427e00
+98467e00
+68094d4f
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4d4b
+6800cd51
+1fe0fe01
+6000cd51
+20600000
+680a4c59
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4c59
+68094ba5
+18508400
+9840fe00
+1ff0fe00
+60014ba5
+1ff0fe00
+1fe17e03
+c1800000
+6800cc8f
+c28000f0
+c28080f2
+da200000
+20400104
+7089718f
+6800cc90
+60108973
+204000f3
+da200001
+20200104
+708971bf
+202000f3
+708971af
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+70890674
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+60094c95
+20600000
+d8400021
+6800cc90
+98460400
+1a227e00
+79200407
+243a010b
+793f8407
+d8a08078
+202069f4
+20400115
+1fe27200
+20400111
+20200078
+20400115
+e0a08000
+c2000111
+20600000
+20400118
+e8c08000
+20600000
+58004b36
+98c67c00
+24628000
+d8c04aa0
+20600000
+df200003
+d8c04ba2
+18c22200
+68014ba0
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+2040012c
+c2000124
+18a27e00
+1ff0fe00
+60014ba0
+20600000
+58004b9a
+98a67c00
+24628000
+d8a04b36
+20600000
+68014b9e
+68094ba0
+20200136
+68014b9a
+68094b9c
+98467c00
+2022e9b1
+2020320b
+1c427e00
+60024d47
+6808c7ef
+6800cd4a
+98467c00
+24410140
+20207c06
+680a4d47
+600a47ec
+600a4c59
+600a4d4b
+20600000
+da2047df
+20407f9f
+207a0000
+1fe22600
+2040014b
+20203ea5
+c10c0000
+c00a064f
+c00a8654
+c0036614
+c0010151
+20203e7d
+70429d00
+680147f4
+c283bf08
+2fec0001
+20408157
+20203f08
+68008450
+c1010000
+20203e7b
+60088259
+6800cc8d
+1fe0fe01
+6000cc8d
+68008259
+207a0000
+1fe0ffff
+60008259
+2040017a
+20400181
+20400166
+2020015e
+6800ccbe
+247a0000
+6800cc9a
+207a0000
+1fe0ffff
+6000cc9a
+c1808000
+704c9a64
+680147f4
+c4028000
+68014c9b
+207a0000
+2040527e
+247a0000
+68014c9b
+1fe22200
+20404b2c
+1a20f202
+d8c04c9d
+20207e45
+6800c7f2
+207a0000
+1fe0ffff
+6000c7f2
+247a0000
+20403ebd
+20204b22
+6800cc15
+207a0000
+1fe0ffff
+6000cc15
+20600000
+1a627e00
+1fe17ef0
+c1280000
+2040018e
+1a627e00
+207a0000
+6000cba4
+2020011d
+1a627e00
+c0058192
+c001019a
+20600000
+704c9a28
+5800000a
+60014c9b
+680142b7
+e0a10000
+580001a1
+e0a10000
+20600000
+704c9a00
+df200014
+d8a04c9b
+20207e3f
+70416e7f
+20403cf3
+6800cc97
+207a0000
+704c9700
+1c427e00
+60024c59
+20600000
+6800c219
+247a0000
+70804206
+58000f0c
+20403da7
+58030d40
+20403bf3
+37d98200
+1e226000
+20403b36
+20001388
+20203d9d
+c6118000
+680147f4
+c284bd1e
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+2040527e
+247a0000
+20403dca
+247a0000
+20403b36
+6800c7dc
+203a3d25
+6800c793
+207a0000
+20203d25
+20400134
+24740000
+20400131
+24740000
+700b7f01
+700b7e01
+204001d1
+20200134
+204001c4
+24740000
+68008b7f
+247a0000
+20203d2d
+68008b7e
+2000000a
+c08001d1
+20600000
+204001c4
+24740000
+68008b7f
+247a0000
+20203d4f
+204001de
+20403aaf
+70895cc0
+20600000
+6800c219
+243a01e4
+20403d91
+20007530
+20007530
+20007530
+20403b0a
+70804204
+6810896b
+1fe17ecf
+6010896b
+1fe1fe30
+6010896b
+20600000
+60088017
+1840a204
+20203a86
+60088017
+1840a200
+20203ab6
+204001ef
+58000500
+20403bf3
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027d
+6800cbef
+c0ff820a
+6802ca91
+e0a28000
+e8c28000
+e0a28000
+708956df
+20400215
+708955df
+20600000
+6802ca87
+e0a28000
+e8c28000
+e0a28000
+6800cc7d
+205a0213
+60108956
+708955d0
+20600000
+580000c2
+20600000
+20000004
+708955d1
+20000004
+708955d2
+20000004
+708955d4
+20000004
+20600000
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+708955d0
+708956c0
+20600000
+2030ba6f
+2040021d
+20203a6f
+2040527c
+247a0000
+2020005a
+78347c00
+68120138
+79347e1a
+6012004c
+20403db0
+7000a201
+20600000
+6800c419
+1fe0fe02
+6000c3f9
+700b7e00
+70017706
+20403fa4
+58000229
+6001428e
+58000232
+6001428a
+58000186
+60014292
+580002aa
+60014290
+5800005a
+6001428c
+5800022c
+60014288
+58004aa0
+1ff0fe00
+60014b9a
+60014b9c
+20403e0b
+58004b36
+1ff0fe00
+60014b9e
+60014ba0
+6800cc97
+c02d0266
+20358264
+68014c91
+1ff0fe00
+60014c91
+68014c93
+1ff0fe00
+60014c93
+20400271
+680402a0
+243a025e
+68014ad4
+1ff0fe00
+203a025e
+60014c93
+2040065b
+704ba42f
+2040011d
+704c9700
+70828003
+20600000
+704ba430
+20200260
+1ce27e00
+203a02b1
+20405b63
+20404d99
+58000000
+60044040
+600147f4
+1c427e00
+60024c59
+704ba433
+20200260
+2040688a
+580007e0
+da2002a0
+d840000e
+204068d3
+2040688d
+680082a0
+c2803bf1
+680402a2
+207a0000
+6800cc8f
+c2800285
+c2808293
+680102a2
+1ff0fe00
+60014c91
+680102a8
+1ff0fe00
+60014c93
+20600000
+680902a6
+680102ac
+18422400
+1fe22200
+1ff0fe00
+60014c93
+1a227e00
+98462600
+1a63a600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+20600000
+680902a4
+680102aa
+18422400
+1fe22200
+98462600
+1a6b2600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+1a63a600
+1a227e00
+9a667e00
+1ff0fe00
+60014c93
+20600000
+70001627
+70890f36
+70890b5f
+202053d4
+70890f2e
+70890bff
+202053d9
+20600000
+68014ba0
+60014b9e
+68014b9c
+60014b9a
+700b7e03
+204001d1
+704c975a
+20403db8
+68120138
+793ffe0f
+6012004c
+20403db0
+d85fffff
+20203cda
+ea2a8000
+18417eff
+243a02be
+184cfe00
+e2228000
+1a20a204
+ea208000
+247a0000
+20207f9c
+20407c20
+da2047e4
+20407f9f
+1fe20400
+20407c24
+18427e00
+207a0000
+c01082d4
+c01102d6
+c01186f5
+c0008315
+c00682f1
+c01602f0
+c01582fb
+c0018319
+c0150322
+c0097c85
+20207c5a
+704befff
+20200728
+793f8023
+704befff
+202006e0
+700b7d22
+20205620
+6800807c
+203a02e0
+204061d9
+6800807c
+243a7c8c
+68008b7d
+c584fc87
+c00202e6
+c00882d9
+c01402ec
+20207c7b
+680147f4
+c30182e9
+20207ca4
+5800000a
+60020051
+20207ca4
+70007c37
+68014c98
+60010051
+20600000
+20400315
+20403eff
+70413100
+180a7e00
+6000c4f9
+7043dc05
+58181203
+6001c3e2
+d8400007
+20400301
+20207cae
+7043dc04
+580000ff
+6001c3e2
+d8400000
+20400301
+20207cae
+6800c3f9
+9840fe00
+1fe0fe0b
+1fe67c1f
+24210311
+6000c3d9
+d8a043e5
+18427e00
+245a030e
+6800c3f9
+1fe27200
+d8c043fa
+20207e45
+1fe27200
+d8c04d6b
+20207e45
+6800c3f9
+1fe0fe0b
+6000c3d9
+20600000
+20403eff
+20407cd5
+70017706
+20207c97
+20403bfa
+20404d98
+20405b62
+70017706
+6800c7dc
+c0000320
+70017717
+70425e01
+20207ca2
+680147f4
+c284bf90
+c280032b
+c283fcd5
+c51186e0
+7043d800
+20403f7e
+700b7d37
+20207c27
+20403eff
+20407cd5
+20203f77
+20403b36
+20203cdc
+20400332
+2020302c
+da600334
+20203301
+c300b307
+2040333d
+20400341
+98467e00
+1fe0fe01
+2021033b
+20203325
+98002400
+1a208c02
+e8c10000
+203a3327
+20403349
+20200335
+1ff11600
+196c9600
+2022834b
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+600c02a0
+20407e53
+680c02a0
+2020307c
+78547c00
+68010032
+d840ffff
+98467c00
+24628000
+68020034
+2038035e
+9d067e00
+2020035f
+9c467e00
+1fe67c04
+24610000
+18007e00
+60010032
+202034df
+700b7d20
+20407c27
+20200368
+600a0034
+70474801
+5800ffff
+60010032
+70007301
+20600000
+20403baa
+20400370
+20203267
+1c40c201
+20403a54
+18004803
+20403a42
+20403bae
+20403bb4
+20403bc5
+2020375c
+20403e25
+20406dec
+204035d6
+20203480
+20403d61
+20403be2
+20213498
+20403204
+24343498
+20403812
+243a0379
+20600000
+204032df
+2422b568
+68008047
+c301b571
+6800c165
+c009b562
+68014c43
+1fe67c14
+24213562
+60010091
+6800cc42
+60008090
+58004c45
+60010179
+20203562
+68010091
+60014c43
+1fe67c14
+2421358f
+98007200
+68008090
+6000cc42
+68010179
+98000c00
+d8a04c45
+20407e45
+2020358f
+680102cd
+203a4dfc
+680082cf
+c00083a4
+20204dbb
+2040527a
+247a0000
+20204dc3
+e8c08000
+c00503aa
+20204e14
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+5800000b
+e0a08000
+18e27e00
+e0a08000
+e8c10000
+c00103b8
+c00183bf
+20203bf1
+58020008
+e0a30000
+58000200
+e0a20000
+18007e0c
+9a40a400
+20204e20
+5803000c
+e0a30000
+58000006
+e0a40000
+18007e10
+9a40a400
+20204e20
+204052c4
+18002400
+204052d0
+1fe20a00
+680102cd
+1fe22600
+680102cb
+98000c00
+204003d0
+20205110
+e8c08000
+c00503d3
+20205116
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+600102a0
+1a627e00
+9a262600
+204052d0
+5800000b
+e0a08000
+18e27e00
+e0a08000
+680102a0
+202003b5
+da400000
+2040527a
+247a0000
+2020524d
+680102cb
+1fe20c00
+e8c08000
+1fe1040f
+1ff1fe00
+c00503f9
+c00283f7
+c00083f0
+c0024b18
+20204aff
+18427e00
+c002cb09
+704cbe01
+c001cb18
+704cbe00
+c0024b18
+20600000
+204003f9
+20204b11
+e8c08000
+c0008452
+20600000
+2040527a
+247a0000
+20400400
+20206dfd
+6800c132
+c1008000
+6800c3cd
+207a0000
+1fe22200
+7043cd00
+1a227e00
+c0284ddc
+20600000
+6800807d
+c001840d
+c0038418
+20205b92
+680084df
+60008445
+c0098364
+c0198412
+20205c58
+6800844d
+79207e00
+6000844d
+700b7d01
+20407c27
+20205c83
+680084df
+60008446
+20205cf3
+78547c00
+204061d9
+68008048
+207a0000
+c283df10
+c0010423
+c0038430
+20205ee0
+18007e11
+204061b5
+68008049
+1fe20400
+c000042b
+c007042b
+c00e042b
+20600000
+e0a08000
+6800c702
+e0a08000
+5800000e
+20205fa6
+20406055
+70007264
+20600000
+6800807c
+203a0438
+204061d9
+6800807c
+247a0000
+68008055
+207a0000
+c0030447
+c008043d
+2020623e
+6800c748
+c1000000
+c0008445
+d8e0000a
+20407e53
+247a0000
+70474800
+2020629b
+20748000
+20200447
+68008177
+c281629b
+c280044a
+6800c25e
+203a62c7
+6800844d
+c4018000
+c4010000
+68020465
+d8400320
+202062c2
+e8c08000
+6000ccb7
+20600000
+204054bd
+68088017
+20403a82
+20403a87
+78287c00
+d960157c
+2020547f
+70443e01
+70443f00
+2020534e
+204053dd
+20400462
+202054c1
+203681f5
+204053ee
+20203a91
+6800cc60
+600246f9
+6800c4db
+c000846a
+202054e0
+7044db00
+202054ef
+680083c0
+c4028000
+680103da
+680903e0
+98467e00
+24610000
+2020557e
+680083d7
+c3828000
+68008341
+203a5626
+20205890
+6800c440
+c003848f
+c0078493
+c0030482
+c001047f
+c009848f
+2020563a
+5800000a
+600103ef
+20205693
+700b7d12
+20407c33
+18000401
+2034d892
+700b7d34
+20407c27
+6800cc69
+c001048b
+2020048d
+700b7d46
+20405620
+18000401
+20205892
+6800cc68
+e0a08000
+18000402
+20205892
+18a08bff
+68044c6c
+e0a40000
+e8c40000
+e0a40000
+18000202
+2020588a
+6800c444
+c004d719
+c001049f
+c003d70d
+20205656
+59000302
+6001c4b5
+58000001
+e0a08000
+58010010
+202056f0
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+2023375c
+7836fc00
+68008017
+1fe0a200
+202054af
+e8c18000
+600183f9
+c02904b6
+c00104cd
+c00904bc
+20205907
+704d3801
+680103fa
+c01084ba
+202059ed
+d8c00349
+20200452
+680103fa
+1fe67c21
+204284ba
+680103fa
+1fe67c2d
+204284cb
+680103fa
+68094cbc
+18408401
+98467c00
+202284c8
+202059ca
+700b7d34
+20407c27
+202059ca
+70413101
+20600000
+700b7d03
+20205620
+6800c444
+c00d8609
+c00e8609
+c008859f
+c0048551
+c002853f
+c00384f3
+c009d85c
+c00184e0
+c00584e3
+c00684db
+20205666
+680103fa
+c00384de
+202057d6
+7003fc07
+20205729
+68014c6a
+e0a10000
+2020588a
+680103fa
+c01604e7
+c00704ea
+202057c6
+6800cd7e
+203a5728
+202057c6
+6800cc69
+c08057c6
+6800cc7c
+c001d7c6
+18a20400
+704c6901
+18420a00
+7003fc05
+20205729
+2040577b
+20740000
+680944c0
+58001812
+98467c00
+2022850c
+5800180f
+98467c00
+2022850e
+5800180a
+98467c00
+20228512
+58001801
+98467c00
+20228510
+20205754
+6800cc7f
+d8400000
+f9200400
+98417e00
+c0805728
+6800cc7f
+f9207e00
+6000cc7f
+20200514
+d8e00000
+20200503
+d8e00001
+20200503
+d8e00003
+20200503
+d8e00002
+20200503
+680144c0
+1fe22200
+680944c4
+18422400
+2040051b
+20228526
+20205728
+d8c04504
+e8c10000
+207a0000
+e8c18000
+e8c10000
+9a267c00
+20628000
+18c08dfd
+e8c08000
+98c08c00
+2020051c
+18c08df9
+e8c10000
+60014c61
+20400534
+203a5728
+18c08dfc
+e8c10000
+1fe0ffff
+60014c63
+70444407
+68024c61
+60024445
+18000409
+20205892
+e8c10000
+e8c08000
+98c08c00
+e8c10000
+207a0000
+e8c10000
+9a467c00
+20628000
+e8c08000
+98c08c00
+20200537
+d9600003
+18007e01
+6000c445
+20405a74
+20405a7d
+203a5746
+2421054f
+78547c00
+e0a10000
+e8c10000
+e0a10000
+196097ff
+2022d746
+e8c08000
+98c08c00
+20200543
+18c08c02
+2020054c
+680944c0
+58002a00
+98467c00
+20228591
+58002a50
+98467c00
+2022859c
+58002803
+98467c00
+2422d728
+680144bc
+600102a0
+78347c00
+204005e3
+2421056d
+680902a0
+204005eb
+c000856d
+204005e7
+2422856b
+78547c00
+2040056f
+204005d1
+204005eb
+20400577
+2020056d
+204005d1
+2020055e
+20345728
+20200607
+680102a0
+60014446
+6800cc67
+1fe27200
+20400601
+d8a04448
+20407e45
+20200604
+68094c65
+184cfe00
+c0828589
+204005fe
+680102a0
+e0a10000
+20400604
+58004504
+98408c00
+e8c08000
+18c20400
+1fe27200
+1fe0fe05
+6000c445
+204005fe
+18420c00
+20407e45
+20200604
+204005fe
+680102a0
+e0a10000
+68014c65
+e0a10000
+20400604
+70444507
+20600000
+20405b08
+e8c08000
+1fe27200
+1fe0fe02
+6000c445
+18c08dfb
+e8c10000
+e0a10000
+18c08c03
+20407e45
+2020588a
+d8402a50
+20405b0c
+20200592
+d9600002
+680144bc
+600102a0
+700d5c00
+78347c00
+204005e3
+242105c7
+680902a0
+204005eb
+c00085ca
+204005e7
+242285c3
+68008d5c
+c00085ca
+243405b4
+78547c00
+6800cc67
+1fe0fe04
+6000c445
+20400604
+202005be
+6800cc67
+1fe67c10
+202285ca
+6800c445
+1fe67c10
+202285ca
+680102a0
+1fe0ffff
+60010d5a
+204005da
+680102a0
+60010d58
+204005d5
+196097ff
+202285c5
+204005d1
+202005a4
+700d5c01
+202005c3
+680102a0
+60010d5a
+202005ce
+680102a0
+1fe0ffff
+60010d5a
+202005ce
+20345728
+204005da
+20200607
+680902a0
+18408401
+600902a0
+20600000
+6800cc67
+60008103
+1fe27200
+20400601
+20207e45
+204005fe
+68010d58
+e0a10000
+68010d5a
+e0a10000
+68008103
+1fe27200
+20407e45
+20200604
+680902a0
+680144be
+98467c00
+20600000
+680144c0
+68094c65
+98467c00
+20600000
+d8c04504
+18422200
+e8c10000
+203a05f6
+e8c90000
+60094c65
+9a267c00
+202285f8
+e8c08000
+98c08c00
+202005ed
+58000001
+20600000
+e8c08000
+6000cc67
+18c27e00
+600102b7
+58000000
+20600000
+680102b9
+1fe20a00
+20600000
+680102b7
+1fe20c00
+20600000
+18a27e00
+600102b9
+20600000
+204005fe
+2020588a
+6800cbab
+1fe08401
+18410403
+6008cbab
+1feffe07
+d8c04bad
+98c08c00
+6800cc82
+1fe0fffb
+1fe27200
+d8a04445
+20407e45
+6808cc82
+20205892
+2040561c
+202058b0
+1a627e00
+c0018629
+c005062d
+c0000624
+c009062b
+c001062f
+1fe67c0d
+202158c0
+6000cc68
+700b7d27
+20205620
+20405924
+68014437
+1fef8404
+60094d4f
+20600000
+704c7c00
+20205938
+700b7d33
+20205620
+700b7d2b
+20205620
+58000014
+600103ef
+20600000
+6800c43e
+28200601
+20208636
+202058a7
+6800c43f
+203a0639
+202058a7
+6800c43e
+793ffe04
+6000c43e
+20600000
+e8c08000
+c0008644
+c002064a
+c0048642
+202058f8
+704c6903
+20205974
+704d3d01
+6000c4ae
+e8c30000
+e0a30000
+700b7d42
+20205620
+204074a8
+2022864d
+20205968
+704c6902
+2020596a
+704c7d00
+20403f86
+20403f7e
+20403fa4
+20203ecc
+70421300
+70448b00
+704c7c00
+704c6900
+704c7f00
+704c7d00
+20203ed0
+58000000
+60024ba9
+20600000
+c6918000
+68024d40
+60024d72
+20400684
+24340677
+704c150a
+204006ad
+6800cbef
+c1ff8000
+704c3d02
+6800cd45
+247a0000
+204001c4
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6801cd7a
+20407e8a
+600a41fc
+20203cda
+204001c4
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6800cc15
+243a0673
+68024d72
+20200674
+6800cbef
+c0ff86fe
+2040068b
+205406a9
+20540768
+704be601
+20600000
+78547c00
+704be202
+6800cd57
+c0020697
+c002869a
+c00386a0
+c003069d
+c00406a4
+c00486a6
+6800cd45
+245a34df
+20600000
+704d5700
+704be10a
+202006a2
+704d5703
+704be104
+202006a2
+704d5702
+704be103
+202006a2
+704be201
+704be108
+704be700
+202034df
+704d5704
+202006a7
+704d5705
+704be109
+202006a2
+df200009
+d8c04d57
+d8a00cd5
+20207e45
+704be800
+204006d2
+243786bb
+204006e3
+6800cbe0
+1fe0fe01
+6000cbe0
+704d4500
+6800cbef
+c0ff86d1
+204006cd
+704be700
+704be600
+20600000
+704d4501
+6800cbe7
+1fe0fe01
+6000cbe7
+6800cbef
+c0ff86de
+6800cbe7
+c07f86e0
+6800cbe7
+d8400010
+98467c00
+20210787
+6800cbe8
+1fe0fe01
+6000cbe8
+2000000a
+c08206ae
+20200787
+58000000
+60048cd5
+6004cd57
+20600000
+20200718
+7857fc00
+204007df
+200004b0
+18002a00
+68024c00
+98001200
+68088017
+20403a82
+20403a87
+2040079f
+205787d9
+20600000
+704d4500
+20600000
+704d4500
+700b7d32
+20207c27
+2040074d
+68008cb3
+c1810000
+6800cbdf
+207a0000
+98007200
+d8c00cb5
+d8a00d17
+20407e45
+68008cb4
+2fe1f008
+24608000
+68008cb5
+c07f86f3
+6000ccb7
+20600000
+704d7d01
+20600000
+79200023
+204006fa
+204006b7
+704bef01
+20600000
+704be000
+704be94e
+68024beb
+2020075a
+204006fa
+6800cbe6
+c000b4df
+6800cbef
+c0008706
+c0010709
+c001870c
+20203bf1
+704bef11
+700d37aa
+2020070e
+704bef12
+700d3755
+2020070e
+704bef13
+700d3722
+700d3802
+68024c06
+60020d39
+700d3d00
+da200d37
+d8400007
+20400748
+20400768
+20400689
+202034df
+6800cbef
+c17f8000
+c008871e
+c0090720
+c0098722
+20600000
+704bef02
+202006b7
+704bef03
+202006b7
+704befff
+700b7d31
+20407c27
+68020d19
+2040075a
+202006b7
+79200023
+2040075b
+20400787
+6800cbef
+c1ff8000
+2040073a
+58000000
+60014c04
+20403cab
+200007d0
+6800cc04
+c07f86e0
+204006d2
+24378743
+204006cd
+79200023
+700b7d3c
+20207c27
+700d37ff
+6800cbe2
+60008d38
+68024c06
+60020d39
+d8400006
+da200d37
+20400748
+20200768
+68014c04
+1fe0fe01
+60014c04
+20400787
+20200730
+6008cbe1
+18427200
+d8a00cd5
+1a220c00
+20207e45
+68008cb4
+1fe97e00
+6000cbdf
+20600000
+6808cc3c
+58004c2b
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008cc3c
+20600000
+60024c00
+da200000
+df200004
+d8c04c00
+e8c08000
+9a20a200
+c200075e
+1a227e00
+60014c16
+6800cc16
+6808cc17
+9840fe00
+6000cc18
+20600000
+6800cbe1
+1fe0fe02
+6000cbe3
+6800cbe2
+60008cf5
+6800cbe1
+1fe9fe00
+6808cbe0
+18410403
+18438400
+9841fe00
+6808cc0a
+9840fe00
+e0a08000
+6800cbef
+c0ff877a
+6800cbe2
+e0a08000
+6800cbe1
+98007200
+6800cbe2
+c0008785
+d8c00cd5
+20407e45
+68008cd5
+c0018783
+20600000
+700cd502
+20600000
+d8c00cd6
+20207e45
+6808cbea
+2040078d
+18408401
+18410403
+6008cbea
+20600000
+6800cc00
+1fe17e03
+1fefa204
+58004bf0
+9a20fe00
+98408c00
+e8c08000
+6000cbe9
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800cbe9
+1fed8400
+79200401
+18431c00
+20600000
+20400796
+7826fc00
+7830fc00
+78507c00
+78287c00
+68014be4
+98003600
+37c18400
+242c07d9
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000cc19
+6808cc18
+98467c00
+242287d9
+09800008
+19897e00
+60008cb3
+68008cb3
+6808cbe2
+a8400e00
+242087d9
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+202287c3
+09800008
+19897e00
+e0a08000
+c20007bf
+18a22200
+09800008
+19897e00
+6000cc2a
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+202307d9
+7837fc00
+68008017
+1fe0a200
+20403ab6
+7846fc00
+20403a7a
+6800cc2a
+1fe22200
+20200751
+784dfc00
+7845fc00
+2020375c
+20403a7a
+6808cbe9
+20203a91
+204053d2
+68024c00
+98001200
+20400796
+204007dc
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800cc18
+08008608
+6800cbe3
+98007200
+d8c00cf5
+e8c08000
+08008608
+c20007f5
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20203a7a
Index: output/sched.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/output/sched.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/output/sched.rom	(working copy)
@@ -0,0 +1,622 @@
+4000:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+0a   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+3a   #mem_patch2C
+ce   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+
+4d4f:  20 00		# 20:10ms  30:15ms
+
+4131:01
+4213:40
+4214:03
+41f7:0a
+41f5:10 00
+4133:00
+4cb1:00 00
+
+414a: 40 25 00
+
+4140:00 00 02 6b 46 54
+4702:
+'Bluetooth Keyboard
+4280:12 00
+4282:01
+4284:01
+4747:0a
+47dc:01
+47f6:01
+
+4172:01
+
+475b:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+4771:00
+
+#keyboard uuid
+4811:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+#36018f + 0x16
+3601a5
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+#090206 357e 357c 0822 2578
+090206 3594 3592 0822 258E
+
+05 01       #Usage Page (Generic Desktop)											      
+09 06       #Usage (Keyboard)																	      
+A1 01       #Collection (Application)		
+85 01       #    Report ID (1)														      
+05 07       #    Usage Page (Keyboard/Keypad)									      
+19 E0       #    Usage Minimum (Keyboard Left Control)					      
+29 E7       #    Usage Maximum (Keyboard Right GUI)						      
+15 00       #    Logical Minimum (0)														      
+25 01       #    Logical Maximum (1)														      
+75 01       #    Report Size (1)																      
+95 08       #    Report Count (8)															      
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)		      
+95 01       #    Report Count (1)															      
+75 08       #    Report Size (8)																      
+81 01       #    Input (Cnst,Ary,Abs)													      
+95 05       #    Report Count (5)															      
+75 01       #    Report Size (1)																      
+05 08       #    Usage Page (LEDs)															      
+19 01       #    Usage Minimum (Num Lock)											      
+29 05       #    Usage Maximum (Kana)													      
+91 02       #    Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 01       #    Report Count (1)																		
+75 03       #    Report Size (3)																			
+91 01       #    Output (Cnst,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 06       #    Report Count (6)																		
+75 08       #    Report Size (8)																			
+15 00       #    Logical Minimum (0)																	
+26 FF 00    #    Logical Maximum (255)																
+05 07       #    Usage Page (Keyboard/Keypad)												
+19 00       #    Usage Minimum (Undefined)														
+2A FF 00    #    Usage Maximum																				
+81 00       #    Input (Data,Ary,Abs)																
+C0          #End Collection								
+
+#25         
+05 0C       #Usage Page (Consumer Devices)																   
+09 01       #Usage (Consumer Control)																		     
+A1 01       #Collection (Application)																		     
+85 02       #    Report ID (2)																						   
+19 00       #    Usage Minimum (Undefined)																   
+2A 3C 02    #    Usage Maximum (AC Format)																   
+15 00       #    Logical Minimum (0)																			   
+26 3C 02    #    Logical Maximum (572)																		   
+95 01       #    Report Count (1)																				     
+75 10       #    Report Size (16)																				     
+81 00       #    Input (Data,Ary,Abs)																		     
+C0          #End Collection		
+
+#25																			     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 05       #    Report ID (5)																						   															     
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 00       #    Usage Minimum (Undefined)																   
+29 37       #    Usage Maximum																						   
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection	
+
+#25																					     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 06       #    Report ID (6)																						   
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 38       #    Usage Minimum (Keyboard ] and })												     
+29 6f       #    Usage Maximum (Keypad =)																     
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection			
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 091f40
+09020d 2800
+09020e 2801
+09020f 090012
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+0904e8
+090202#ProductID
+097021
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+4759:11 48
+#Auto reconnection after power on
+4132:43
+41fb:0
+4138:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+07dc:00
+00a2:00
+07dd:00
+0016:27
+
+47fd:ff
+47f7:ff
+
+416e:80
+
+
+4ba2:02 01
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+4504:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT5.0 KEYBOARD
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18
+#Manufacturer Name
+0d 00 03 28 01 02
+0e 00 29 2a 06 59 69 43 68 69 70			#IOS 13.5.1
+#Characteristic: pnp id
+0f 00 03 28 01 02
+10 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
+
+#Primary service: HID
+11 00 00 28 02 12 18
+#Characteristic:Protocol mode
+12 00 03 28 01 06
+13 00 4e 2a 01 01
+#Characteristic: hid report
+14 00 03 28 01 12   
+15 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+16 00 02 29 02 00 00	
+17 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+18 00 03 28 01 12  
+19 00 4d 2a 02 00 00
+1a 00 02 29 02 00 00
+1b 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1c 00 03 28 01 12   
+1d 00 4d 2a 02 00 00 	#hid report	led handle write
+1e 00 02 29 02 00 00	
+1f 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+20 00 03 28 01 0e   
+21 00 4d 2a 02 00	00	#hid report	led handle write
+22 00 02 29 02 00 00	
+23 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+24 00 03 28 01 02
+25 00 4b 2a 78
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff  				
+03 15  		
+00 26  		
+ff 03 		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+05 01
+09 80
+A1 01
+85 03
+15 00
+25 01
+75 01
+95 03
+19 81
+29 83
+81 02
+95 01
+75 05
+81 03
+C0
+
+#Characteristic:Hid information
+26 00 03 28 01 02
+27 00 4a 2a 04 11 01 00 01        
+#Characteristic
+28 00 03 28 01 04
+29 00 4c 2a 01 00
+
+#Primary Service: BAS
+2a 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+2b 00 03 28 01 12 
+2c 00 19 2a 01 64 
+#Client Characteristic Configuration
+2d 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+4c6a:17
+46f9:50
+44c2:14
+44f9:11 46 34 54 77 dd
+
+
+4c7e:00
+4cb8:15 00
+4cba:1d 00
+4cbc:19 00
+4d3e:2c 00
+4c60:50
+
+4c6c:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+08 00 #min interval
+08 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+4419:
+'BT5.0 KEYBOARD
+
+44e4:07 
+44dd:01
+#mem_le_adv_interval_max:00 01
+43d9:1f
+43da:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+4d6b:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+
+
+43f9:1f
+43fa:
+'\09BT5.0 KEYBOARD
+
+4d53:20 21 12 24		#version data 20211224
+
+4c91:9f 3e
+4c93:cd 4d
+4c8f:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
+#24g init
+4c10:01#tx
+4be2:02        #mouse 1,kb 2
+4c0f:4#max tx retry
+4c0a:00#with ack
+4be4:c0 12     #400us 
+4bf0:00 13 2c 42
+4bf4:06 15 36 48
+4bf8:0f 1a 3a 4c
+4bfc:11 23 31 4d
+4bef:ff
+4beb:20 15 10 05
+4c7d:60
+0d37:00 00 00 00 00 00 00 00 00 00
+4d40:00 48 5d 00 #10 min
+4d76:ff ff ff ff
+4d7a:e8 fd 00 #00 00 0a
+
+4216:8f 10 ce
+4219:00 0a 0b ef 0f
+41f8:00
+00a3:00 00 00 00 00 00 00 00
+415d:02
+415e:24
+414d:12 00
+414f:00 02
+4151:12 00
+4153:00 02
+415b:20 00
+4157:20 00
+4159:00 20
+415f:80 03
+4161:00 06
+4c98:00 13
+
+429b:30 3f
+42aa:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+4163:70 4f
+
+4a91:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+4a87:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: patch/adc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/adc.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/bluetooth.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/bluetooth.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/global_variable.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/global_variable.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/gpio.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/gpio.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/iic.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/iic.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/ipc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/ipc.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/kb.dat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/kb.dat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/kb.dat	(working copy)
@@ -0,0 +1,515 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+0a   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+3a   #mem_patch2C
+ce   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+
+mem_customize_timer_setup:  20 00		# 20:10ms  30:15ms
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:00 00 02 6b 46 54
+mem_local_name_length:
+'Bluetooth Keyboard
+mem_sniff_param_interval:12 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:01
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+#36018f + 0x16
+3601a5
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+#090206 357e 357c 0822 2578
+090206 3594 3592 0822 258E
+
+05 01       #Usage Page (Generic Desktop)											      
+09 06       #Usage (Keyboard)																	      
+A1 01       #Collection (Application)		
+85 01       #    Report ID (1)														      
+05 07       #    Usage Page (Keyboard/Keypad)									      
+19 E0       #    Usage Minimum (Keyboard Left Control)					      
+29 E7       #    Usage Maximum (Keyboard Right GUI)						      
+15 00       #    Logical Minimum (0)														      
+25 01       #    Logical Maximum (1)														      
+75 01       #    Report Size (1)																      
+95 08       #    Report Count (8)															      
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)		      
+95 01       #    Report Count (1)															      
+75 08       #    Report Size (8)																      
+81 01       #    Input (Cnst,Ary,Abs)													      
+95 05       #    Report Count (5)															      
+75 01       #    Report Size (1)																      
+05 08       #    Usage Page (LEDs)															      
+19 01       #    Usage Minimum (Num Lock)											      
+29 05       #    Usage Maximum (Kana)													      
+91 02       #    Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 01       #    Report Count (1)																		
+75 03       #    Report Size (3)																			
+91 01       #    Output (Cnst,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 06       #    Report Count (6)																		
+75 08       #    Report Size (8)																			
+15 00       #    Logical Minimum (0)																	
+26 FF 00    #    Logical Maximum (255)																
+05 07       #    Usage Page (Keyboard/Keypad)												
+19 00       #    Usage Minimum (Undefined)														
+2A FF 00    #    Usage Maximum																				
+81 00       #    Input (Data,Ary,Abs)																
+C0          #End Collection								
+
+#25         
+05 0C       #Usage Page (Consumer Devices)																   
+09 01       #Usage (Consumer Control)																		     
+A1 01       #Collection (Application)																		     
+85 02       #    Report ID (2)																						   
+19 00       #    Usage Minimum (Undefined)																   
+2A 3C 02    #    Usage Maximum (AC Format)																   
+15 00       #    Logical Minimum (0)																			   
+26 3C 02    #    Logical Maximum (572)																		   
+95 01       #    Report Count (1)																				     
+75 10       #    Report Size (16)																				     
+81 00       #    Input (Data,Ary,Abs)																		     
+C0          #End Collection		
+
+#25																			     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 05       #    Report ID (5)																						   															     
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 00       #    Usage Minimum (Undefined)																   
+29 37       #    Usage Maximum																						   
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection	
+
+#25																					     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 06       #    Report ID (6)																						   
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 38       #    Usage Minimum (Keyboard ] and })												     
+29 6f       #    Usage Maximum (Keypad =)																     
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection			
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 091f40
+09020d 2800
+09020e 2801
+09020f 090012
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+0904e8
+090202#ProductID
+097021
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT5.0 KEYBOARD
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18
+#Manufacturer Name
+0d 00 03 28 01 02
+0e 00 29 2a 06 59 69 43 68 69 70			#IOS 13.5.1
+#Characteristic: pnp id
+0f 00 03 28 01 02
+10 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
+
+#Primary service: HID
+11 00 00 28 02 12 18
+#Characteristic:Protocol mode
+12 00 03 28 01 06
+13 00 4e 2a 01 01
+#Characteristic: hid report
+14 00 03 28 01 12   
+15 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+16 00 02 29 02 00 00	
+17 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+18 00 03 28 01 12  
+19 00 4d 2a 02 00 00
+1a 00 02 29 02 00 00
+1b 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1c 00 03 28 01 12   
+1d 00 4d 2a 02 00 00 	#hid report	led handle write
+1e 00 02 29 02 00 00	
+1f 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+20 00 03 28 01 0e   
+21 00 4d 2a 02 00	00	#hid report	led handle write
+22 00 02 29 02 00 00	
+23 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+24 00 03 28 01 02
+25 00 4b 2a 78
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff  				
+03 15  		
+00 26  		
+ff 03 		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+05 01
+09 80
+A1 01
+85 03
+15 00
+25 01
+75 01
+95 03
+19 81
+29 83
+81 02
+95 01
+75 05
+81 03
+C0
+
+#Characteristic:Hid information
+26 00 03 28 01 02
+27 00 4a 2a 04 11 01 00 01        
+#Characteristic
+28 00 03 28 01 04
+29 00 4c 2a 01 00
+
+#Primary Service: BAS
+2a 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+2b 00 03 28 01 12 
+2c 00 19 2a 01 64 
+#Client Characteristic Configuration
+2d 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:15 00
+mem_att_report2:1d 00
+mem_att_report3:19 00
+mem_att_report_battery:2c 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+08 00 #min interval
+08 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT5.0 KEYBOARD
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT5.0 KEYBOARD
+
+mem_version_yy_mm_dd:20 21 12 24		#version data 20211224
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_pair_state:60
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 5d 00 #10 min
+mem_24g_enter_hibernate_max:ff ff ff ff
+mem_24g_short_sleep_counter:e8 fd 00 #00 00 0a
+
Index: patch/kb_keyboard.dat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/kb_keyboard.dat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/kb_keyboard.dat	(working copy)
@@ -0,0 +1,502 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+3a   #mem_patch2C
+ce   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+
+mem_customize_timer_setup:  20 00		# 20:10ms  30:15ms
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:36 08 c2 08 66 22    
+mem_local_name_length:
+'BT3.0 Keyboard
+mem_sniff_param_interval:0e 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+360189
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 3578 3576 0822 2572
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+26ff00 # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff  				
+03 15  		
+00 26  		
+ff 03 		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#23
+05 01	#Usage Page (Generic Desktop),
+09 80	#USAGE (3-D Digitizer)
+a1 01	#Collection (Application),
+85 03	#Report ID (3)
+19 81	#Usage Minimum (), 
+29 88	#Usage Maximum (),
+15 00	#Logical Minimum (0),
+25 01	#Logical Maximum (1),
+95 08	#Report Count (8),
+75 01	#Report Size (1),
+81 06	#Input (Data,Var,Rel)
+#95 01	#Report Count (1),  
+#75 05	#Report Size (5),	
+#81 01	#Input (Const,Ary,Abs)
+c0		#END_COLLECTION
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 091f40
+09020d 2800
+09020e 2801
+09020f 090012
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+0904e8
+090202#ProductID
+097021
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18
+#Manufacturer Name
+0d 00 03 28 01 02
+0e 00 29 2a 06 59 69 43 68 69 70			#IOS 13.5.1
+#Characteristic: pnp id
+0f 00 03 28 01 02
+10 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
+
+#Primary service: HID
+11 00 00 28 02 12 18
+#Characteristic:Protocol mode
+12 00 03 28 01 06
+13 00 4e 2a 01 01
+#Characteristic: hid report
+14 00 03 28 01 12   
+15 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+16 00 02 29 02 00 00	
+17 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+
+#Characteristic:hid report
+18 00 03 28 01 12  
+19 00 4d 2a 02 00 00
+1a 00 02 29 02 00 00
+1b 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1c 00 03 28 01 12   
+1d 00 4d 2a 02 00 00 	#hid report	led handle write
+1e 00 02 29 02 00 00	
+1f 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+20 00 03 28 01 0e   
+21 00 4d 2a 02 00	00	#hid report	led handle write
+22 00 02 29 02 00 00	
+23 00 08 29 02 01 02	#Report ID: 1	Report Type: output
+
+#Characteristic:Report map
+24 00 03 28 01 02
+25 00 4b 2a 72
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff  				
+03 15  		
+00 26  		
+ff 03 		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#23
+05 01	#Usage Page (Generic Desktop),
+09 80	#USAGE (3-D Digitizer)
+a1 01	#Collection (Application),
+85 03	#Report ID (3)
+19 81	#Usage Minimum (), 
+29 88	#Usage Maximum (),
+15 00	#Logical Minimum (0),
+25 01	#Logical Maximum (1),
+95 08	#Report Count (8),
+75 01	#Report Size (1),
+81 06	#Input (Data,Var,Rel)
+#95 01	#Report Count (1),  
+#75 05	#Report Size (5),	
+#81 01	#Input (Const,Ary,Abs)
+c0		#END_COLLECTION
+
+#Characteristic:Hid information
+26 00 03 28 01 02
+27 00 4a 2a 04 11 01 00 01        
+#Characteristic
+28 00 03 28 01 04
+29 00 4c 2a 01 00
+
+#Primary Service: BAS
+2a 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+2b 00 03 28 01 12 
+2c 00 19 2a 01 64 
+#Client Characteristic Configuration
+2d 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:15 00
+mem_att_report2:1d 00
+mem_att_report3:19 00
+mem_att_report_battery:2c 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+08 00 #min interval
+08 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT4.2 Keyboard
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT4.2 Keyboard2
+
+mem_version_yy_mm_dd:20 21 12 24		#version data 20211224
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_pair_state:c2
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 5d 00 #10 min
+mem_24g_enter_hibernate_max:ff ff ff ff
+mem_24g_short_sleep_counter:e8 fd 00 #00 00 0a
+
+
Index: patch/kb_process.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/kb_process.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/keyboard.format
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/keyboard.format	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/keyboard.format	(working copy)
@@ -0,0 +1,357 @@
+
+omemalloc(
+//Keyboard Work Area
+2 mem_kb_state
+6 mem_kb_report_data
+1 mem_kb_keys
+1 mem_kb_rcv_led_data
+4 mem_kb_fast_wake_last
+//Keyboard Config Area
+1 mem_led_cap_gpio
+1 mem_led_num_gpio
+1 mem_led_scl_gpio
+0 mem_kb_map
+630 mem_kb_uuid_list
+
+// patch area
+10 mem_24g_paring_tx_power_param
+10 mem_5db_tx_power_param
+
+//c51
+1 mem_current_event
+1 mem_ipc_lock_rx_data_bt
+1 mem_ipc_lock_rx_data_c51
+1 mem_ipc_lock_tx_data_bt
+1 mem_ipc_lock_tx_data_c51
+
+
+150 mem_ipc_2bt_fifo_head
+0	mem_ipc_2bt_fifo_end
+100 mem_ipc_2C51_fifo_head
+0	mem_ipc_2C51_fifo_end
+2	mem_ipc_2bt_read_index
+2	mem_ipc_2bt_write_index
+2	mem_ipc_2C51_read_index
+2	mem_ipc_2C51_write_index
+
+2 mem_ipc_tx_evt_buff
+1 mem_ipc_tx_evt
+
+2 mem_ipc_bt_timer
+1 mem_ipc_rx_type
+
+0 mem_rfcomm_tx_buff
+
+1 mem_queue_ele_num
+2 mem_queue_write
+2 mem_queue_read
+0 mem_queue_start
+12 mem_uart_packet
+12 mem_data_ele0
+12 mem_data_ele1
+12 mem_data_ele2
+0 mem_queue_end
+2 mem_queue_temp
+
+
+// patch allocated
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ensure
+1 mem_24g_get_ack_fail
+1 mem_24g_retry
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_paring_addr
+1 mem_24g_pairing_sm
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+4 mem_24g_addr
+2 mem_24g_check_dongle_times
+4 mem_24g_device_addr
+1 mem_24g_no_ack
+3 mem_24g_sta_crc
+1 mem_24g_sta_pid
+1 mem_24g_max_retry
+1 mem_24g_mode
+1 mem_24g_hop_pac_retry
+1 mem_24g_idle_timeout
+1 mem_24g_idle_cnt
+1 mem_24g_auto_paring_switch
+1 mem_24g_enter_lpm_timer
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+2 mem_24g_discard_cnt
+2 mem_cb_24g_data
+9 mem_24g_lasttx
+
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_power_ctrl_level
+
+1 mem_rssi_avg_received
+1 mem_rssi_hex_received
+8 mem_rssi_signal_buf
+8 mem_rssi_noise_buf
+1 mem_rssi_noise_index
+1 mem_rssi_signal_index
+
+1 mem_tx_power
+1 mem_tx_power_temp
+3 mem_cnt
+1 mem_last_txlch
+2 mem_last_txlen
+20 mem_last_txdata
+
+//le
+4 mem_ipc_last_check_timer
+1 mem_prepare_write_len
+2 mem_ipc_c51_timer
+1 mem_le_rx_window
+2 mem_le_find_type_value_start_handle
+2 mem_le_find_type_value_end_handle
+2 mem_le_cur_att_type
+1 mem_le_search_len
+1 mem_le_ll_unknown_type
+1 mem_le_pairing_state
+2 mem_le_local_mtu
+16 mem_le_connection_updata_param
+1 mem_ltk_states
+1 mem_pair_state
+1 mem_empty_count
+1 mem_shutter_find_type_value_flag
+
+1 mem_le51_payload_len
+1 mem_le51_cmd
+
+1 mem_le51_tx_length
+1 mem_le51_txbuff_inuse
+9 mem_le51_txbuf
+
+1 mem_ipc_bt_100ms_timer
+1 mem_ipc_c51_100ms_timer
+
+1 mem_adc_config_flag
+1 mem_adc_channel
+2 mem_adc_0v
+2 mem_adc_3v
+2 mem_adc_current_value
+
+1 mem_hibernate_flag
+2 mem_new_supervision_to
+1 mem_kb_wake_timer
+20 mem_kb_last_data
+1 mem_kb_keycount
+1 mem_led_cap_delay_timer
+3 mem_test
+1 mem_seq
+1 mem_recon_index
+1 mem_power_on_flag
+1 mem_caps_num_lock
+2 mem_att_report1
+2 mem_att_report2
+2 mem_att_report3
+
+1 mem_suspend_flag
+120 mem_32asm_data_end
+1 mem_store_ltk_timer
+1 mem_reconnect_continue
+4 mem_le_pin_code
+1 mem_le_send_security_request_flag
+2 mem_att_report_battery
+4 mem_24g_enter_hibernate
+1 mem_24g_txfail_cnt
+1 mem_mouse_retry_flag
+1 mem_24g_led_flag
+4 mem_ui_timer_last_btclk_temp
+4 mem_ui_check_timer_setup
+2 mem_customize_timer_setup
+1 mem_customize_timer
+1 mem_ios_mode_flag
+4 mem_version_yy_mm_dd
+20 mem_24g_txbuf_new
+7 mem_le_adv_swift_pair
+4 mem_24g_enter_hibernate_setup
+4 mem_24g_enter_hibernate_max
+3 mem_24g_short_sleep_counter
+1 mem_pc_sleep_flag
+1 mem_le_battery_level_display_enable
+)
+
+//C51 synchronous task
+(
+3 START_C51_CORE
+)
+
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+(
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+0x4e G24_PAIR_CH
+)
+
+(
+7 RSSI_BUF_LEN_SIGNAL
+255 RSSI_BUF_LEN_NOISE
+0x50 RSSI_THRESH_NOISE
+
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+4 retry_24g
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+)
+
+(
+1 NO_ACK_24g
+0 with_ack_24g
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+// ble
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_AFTER_AUTH
+3 FLAG_LE_PAIRING_END
+)
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+3 QUEUE_ELE_COUNT
+12 QUEUE_ELE_LENGTH
+)
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+
+
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+(
+0x01 HID_REPORTID_1
+0x02 HID_REPORTID_2
+0x03 HID_REPORTID_3
+0x04 HID_REPORTID_4
+)
+
+(
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+)
+
+(
+0x1f  KB_UI_BUTTON_GPIO
+)
+
+(
+0x0007 HANDLE_UUID_CHRCTR_DEVICE_NAME
+0x000e HANDLE_UUID_CHRCTR_MANUFACTURER_NAME
+0x0010 HANDLE_UUID_PNP_ID
+0x0021 HANDLE_UUID_CHRCTR_REPORT_ID1_OUTPUT
+0x002c HANDLE_UUID_BATTERY_LEVEL
+0x002d HANDLE_UUID_END
+)
+
+
Index: patch/keyscan.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/keyscan.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/led.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/led.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/memmap.format
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/memmap.format	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/memmap.format	(working copy)
@@ -0,0 +1,1124 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_nfreq_index_inq
+0x008d mem_nfreq_index_page
+0x008e mem_ninqy_index
+0x008f mem_fhs_misc
+0x0090 mem_tx_lch
+0x0091 mem_tx_len
+0x0093 mem_subsniff_instant
+0x0097 mem_subsniff_rate
+0x0098 mem_subsniff_tcmax
+0x009a mem_subsniff_tsniff
+0x009b mem_lpm_adjust
+0x009c mem_sync_clke
+0x00a2 mem_lpm_current_mult
+0x00a3 mem_gpio_wakeup_low
+0x00a7 mem_gpio_wakeup_high
+0x00ab mem_air_mode
+0x00ac mem_sco_asso_handle
+0x00ad mem_sco_handle
+0x00af mem_esco_desco
+0x00b0 mem_esco_type
+0x00b1 mem_neogotiation_state
+0x00b2 mem_saved_amaddr
+0x00b3 mem_esco_arq
+0x00b4 mem_esco_saved_arq
+0x00b5 mem_sco_obuf
+0x00d3 mem_sco_ibuf
+0x00f1 mem_sco_poll
+0x00f2 mem_npage_index
+0x00f3 mem_page_mode
+0x00f4 mem_page_clk
+0x00f8 mem_tst_pktcnt_sync
+0x00fa mem_tst_pktcnt_hec
+0x00fc mem_tst_pktcnt_crc
+0x00fe mem_tst_pktcnt_dmh
+0x0100 mem_tmp_buffer_head
+0x0103 mem_tmp_buffer
+0x0153 mem_tester_emulate
+0x0154 mem_temp_payload
+0x0154 test_mode_scenario
+0x0155 test_mode_hopping_mode
+0x0156 test_mode_tx_freq
+0x0157 test_mode_rx_freq
+0x0158 test_mode_power_mode
+0x0159 test_mode_poll_period
+0x015a test_mode_packet_type
+0x015b test_mode_data_length
+0x015d mem_test_mode_old_debug_config
+0x015e mem_tester_cnt
+0x015f mem_temp_am_addr
+0x0160 mem_temp_arq
+0x0161 mem_pdatatemp
+0x0169 mem_len
+0x016b mem_clkn_bt
+0x016f mem_clke_bt
+0x0173 mem_dpll_clkn
+0x0177 mem_connection_options
+0x0178 mem_nameres_cnt
+0x0179 mem_txptr
+0x017b mem_slot_offset
+0x017d extm_fhs_misc
+0x017e extm_newconn_am_addr
+0x017f extm_class
+0x0182 extm_lap
+0x0185 extm_uap
+0x0186 extm_nap
+0x0189 mem_debug_config
+0x018a mem_lch_code
+0x018b mem_fhs_am_addr
+0x018c mem_dpll_error
+0x018e mem_bdaddr_list_buff
+0x01b2 mem_select_list_item
+0x01b3 mem_temp_reconn_record
+0x01b3 mem_record_bt_mode
+0x01b4 mem_temp_lap
+0x01ba mem_list_item_ptr
+0x01bc mem_eir
+0x0220 mem_ucode_status
+0x0221 mem_otp_ucode_flag
+0x0223 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x0224 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x0224 mem_addr_hi
+0x0225 mem_addr_mi
+0x0226 mem_addr_lo
+0x0227 mem_iicd_addr
+0x0228 mem_spid_rbuf
+0x022c mem_ucode_buf
+0x022e mem_ucode_len
+0x0230 mem_sched_addr
+0x0232 mem_ucode_ptr
+0x0234 mem_ucode_keybuf
+0x0244 mem_check_plap_temp
+0x0256 mem_sensor_id
+0x0257 mem_reconnect_flag
+0x0258 mem_switch_fail_master_count
+0x0259 mem_app_evt_timer_count
+0x025a mem_dongle_count
+0x025b mem_le_addr_slave1
+0x0261 mem_le_addr_slave2
+0x0267 mem_le_peer_state
+0x0268 mem_app_peer_addr
+0x026e mem_dongle_peers
+0x026f mem_dongle_pairing_cnt
+0x0270 mem_dongle_signature
+0x0272 mem_h5rx_ackcnt
+0x0273 mem_check_err_acl_cont
+0x0274 mem_rp_packets
+0x0275 mem_packet_type
+0x0277 mem_hci_sniff_conn_handle
+0x0279 mem_hci_sniff_max_interval
+0x027b mem_hci_sniff_min_interval
+0x027d mem_hci_sniff_attempt
+0x027f mem_hci_sniff_timeout
+0x0281 mem_voice_setting
+0x0283 mem_retransmission_effort
+0x0284 mem_sco_ptype
+0x0286 mem_extm_uap_restore
+0x0289 mem_h5rx_rptr
+0x028b mem_h5rx_ack
+0x028c mem_h5tx_ack
+0x028d mem_h5tx_rptr
+0x028f mem_h5tx_wptr
+0x0291 mem_h5tx_free
+0x0293 mem_h5rx_tmp
+0x0294 mem_h5tx_seq
+0x0295 mem_hci_acl_queue_wptr
+0x0297 mem_hci_acl_queue_rptr
+0x0299 mem_hci_acl_queue_end
+0x029b mem_hci_acl_queue_wcnt
+0x029c mem_hci_acl_cnt
+0x029d mem_hci_acl_tx_trigger_wptr//tx via uart
+0x029f mem_ucode_id_local
+0x02a0 mem_temp//8 bytes
+0x02a8 mem_timeup// 4 bytes
+0x02ac mem_rega//4 bytes
+0x02b0 mem_regb//4 bytes
+0x02b4 mem_regc//3 bytes
+0x02b7 mem_contr//2 bytes
+0x02b9 mem_contw//2 bytes
+0x02bb mem_ucode_id_remote
+0x02bc mem_check_sum
+0x02bd mem_ucode_temp
+0x02be mem_ucode_temp1
+0x02bf mem_lock_in_enc//boolean
+0x02c0 mem_hci_disconn_reason
+0x02c1 mem_hci_curr_len
+0x02c2 mem_hci_curr_target
+0x02c4 mem_l2cap_mem_start
+0x02c4 mem_l2cap_rxbuff1_len
+0x02c6 mem_l2cap_rxbuff2_len
+0x02c8 mem_l2cap_rxbuff_new
+0x02ca mem_l2cap_rxbuff_inuse
+0x02cb mem_l2cap_payload_ptr
+0x02cd mem_l2cap_rx_pkt_length
+0x02cf mem_l2cap_rx_cid
+0x02d1 mem_l2cap_rx_done
+0x02d2 mem_l2cap_signal_tx_buff_ptr
+0x02d4 mem_l2cap_signal_tx_payload_ptr
+0x02d6 mem_l2cap_signal_tx_length
+0x02d8 mem_sdp_tx_buff_ptr
+0x02da mem_sdp_tx_payload_ptr
+0x02dc mem_sdp_tx_pkt_length
+0x02de mem_rfcomm_tx_buff_ptr
+0x02e0 mem_rfcomm_tx_payload_ptr
+0x02e2 mem_rfcomm_tx_pkt_length
+0x02e4 memL2CAP_T1
+0x02e6 mem_CONTROL_tasks
+0x02e7 mem_send_config_req
+0x02e8 mem_config_identifier
+0x02e9 mem_config_req_dest_CID
+0x02eb mem_rfcomm_malloc_fail_flag
+0x02ec mem_message_to_uppersm
+0x02ed mem_upper_sm_remote_page
+0x02ee mem_upper_sm_reconn
+0x02ef mem_upper_sm_ss
+0x02f0 mem_tx_malloc_log
+0x0330 mem_l2cap_mem_end
+0x0330 mem_scid
+0x0332 mem_cmd_length
+0x0334 mem_tt2
+0x0336 mem_tt3
+0x0338 mem_id
+0x033a mem_psm
+0x033c mem_l2cap_sdpres_delay_time
+0x0340 mem_le_rxbuf
+0x0378 mem_le_mic
+0x037c mem_le_peer_mic
+0x0380 mem_le_skdm
+0x0388 mem_le_skds
+0x0390 mem_le_peer_ltk
+0x03a0 mem_le_my_ltk
+0x03b0 mem_le_mrand
+0x03c0 mem_le_state
+0x03c1 mem_le_mode
+0x03c2 mem_le_tsniff
+0x03c4 mem_le_anchor
+0x03c8 mem_le_clk_offset
+0x03ce mem_le_receive_window
+0x03d0 mem_le_plap
+0x03d6 mem_le_conn_handle
+0x03d7 mem_le_arq
+0x03d8 mem_le_ch
+0x03d9 mem_le_hop
+0x03da mem_le_event_count
+0x03dc mem_le_supervision_timer
+0x03e0 mem_le_instant
+0x03e2 mem_le_channels
+0x03e3 mem_le_conn_sm
+0x03e4 mem_le_op
+0x03e5 mem_le_access
+0x03e9 mem_le_crcinit
+0x03ec mem_le_window_size
+0x03ed mem_le_slave_latency
+0x03ef mem_le_superto
+0x03f1 mem_le_channel_map
+0x03f6 mem_le_no_using
+0x03f8 mem_le_peer_sca
+0x03f9 mem_le_att_opcode
+0x03fa mem_le_att_handle
+0x03fc mem_le_err_code
+0x03fd mem_le_sk
+0x040d mem_le_testtype
+0x040e mem_le_test_sync
+0x0410 mem_le_test_pcnt
+0x0412 mem_le_rxon_ts
+0x0418 mem_le_rx_ll_opcode
+0x0419 mem_le_notify_attr_start
+0x041b mem_le_notify_len
+0x041c mem_cmd_le_create_conn
+0x041d mem_le_adv_temp
+0x0431 mem_24g_id
+0x0432 mem_lmo_header_length
+0x0433 mem_lmo_header_opcode
+0x0434 mem_lmo_payload
+0x0445 mem_lmi_accepted_opcode
+0x0446 mem_disconn_reason_send
+0x0447 mem_tx_fixed_freq
+0x0448 mem_rx_fixed_freq
+0x0449 mem_ext_features_page
+0x044a mem_lmpext_ssp_enable
+0x044c mem_remote_sppcap
+0x044d mem_lmp_conn_state
+0x044e mem_soft_timer
+0x0450 mem_pincode_state
+0x0451 mem_sres_tid
+0x0452 mem_accptsco_tid
+0x0453 mem_auth_enable
+0x0454 mem_wait_encryption
+0x0455 mem_sniff_payload
+0x0465 mem_aurand_send_delay_time
+0x0469 mem_module_temp_len
+0x046b mem_init_cnt
+0x046d mem_prcp_data
+0x0481 mem_prcp
+0x0482 mem_prcp_tx_len
+0x0483 rx_buf_data_ptr
+0x0485 memRemoteRPNBitRate
+0x0486 memRemotePRNDataBits
+0x0487 memRemotePRNStopBit
+0x0488 memRemotePRNParity
+0x0489 memRemotePRNFlowControl
+0x048a memRemotePRNXon
+0x048b memRemotePRNXoff
+0x048c mem_mod2div_temp
+0x048f mem_contw_temp
+0x0491 mem_attrib_list
+0x0493 mem_current_adss
+0x0494 mem_current_channel
+0x0495 mem_current_frame_type
+0x0496 mem_current_fcs
+0x0497 mem_current_length
+0x0499 mem_rfcomm_uih_payload_ptr
+0x049b mem_uih_cmd_type
+0x049c mem_uih_length
+0x049e mem_param_payload_ptr
+0x04a0 mem_ms_param
+0x04a1 mem_pn_credit_flow_type_info
+0x04a2 mem_pn_priority
+0x04a3 mem_pn_acknowledg_timer
+0x04a4 mem_pn_max_retrans
+0x04a5 mem_rfcomm_send_adss
+0x04a6 mem_rfcomm_send_frame_type
+0x04a7 mem_rfcomm_send_fcs
+0x04a8 mem_rfcomm_send_offset
+0x04a9 mem_sdp_mem_start
+0x04a9 mem_uuid_search_pat
+0x04ad mem_sdp_continue_byte
+0x04af mem_sdp_pduid
+0x04b0 mem_sdp_transactionid
+0x04b2 mem_sdp_attribute_maxbyte
+0x04b4 mem_sdp_record_maxcnt
+0x04b6 mem_sdp_error_code
+0x04be mem_sdp_record_handle
+0x04c2 mem_sdp_search_failed
+0x04c3 mem_sdp_LACAP_found
+0x04c4 mem_sdp_RFCOMM_found
+0x04c5 mem_handle_list
+0x04dd mem_handle_humber
+0x04de mem_sdp_mem_end
+0x04de mem_rxbuf
+0x04ef mem_random_number
+0x04ff mem_round_key
+0x050f mem_kinit
+0x051f mem_input_store
+0x052f mem_x
+0x053f mem_y
+0x054e mem_y15
+0x054f mem_pin_length
+0x0550 mem_pin
+0x0560 mem_key_store
+0x0571 mem_key_store_end
+0x0572 memp_ar_key
+0x0574 memp_ar_input
+0x0576 mem_ar_hround
+0x0580 mem_ec_infinite
+0x0581 mem_ec_loopc
+0x0582 memdat
+0x0582 mem_ax
+0x059a mem_ay
+0x05b2 mem_az
+0x05ca mem_bx
+0x05e2 mem_by
+0x05fa mem_bz
+0x0612 mem_cx
+0x062a mem_cy
+0x0641 mem_cy5
+0x0642 mem_cz
+0x065a mem_k
+0x0672 mem_align
+0x0682 mem_tmp1
+0x0682 memahbak
+0x069a mem_tmp5
+0x06a2 memahsave
+0x06b2 mem_tmp2
+0x06c2 memahsave_end
+0x06c2 mem_addr_padding
+0x06c3 mem_addr_value/* 12 bytes     */ 
+0x06ca mem_tmp3
+0x06ca mem_t1
+0x06cf mem_addr_value_end
+0x06d2 mem_addr_iocap_end
+0x06e2 mem_tmp0
+0x06e2 mem_t0
+0x06ea mem_tmp0a
+0x06fa mem_t2
+0x0712 mem_t3
+0x072a mem_t7
+0x0742 mem_p
+0x075a mem_a
+0x0772 mem_b
+0x078a mem_gx
+0x07a2 mem_gy
+0x07ba memh0
+0x07da mem_sp_state_start
+0x07da mem_sp_state
+0x07db mem_master_sp_state
+0x07dc mem_sp_flag
+0x07dd mem_master_sp_flag
+0x07de mem_sp_calc
+0x07df mem_sp_dh_ready
+0x07e0 mem_sp_localsm
+0x07e1 mem_pairing_auth
+0x07e2 mem_sp_flag_start
+0x07e2 mem_sp_local_key_send_count
+0x07e3 mem_sp_remote_key_recv_count
+0x07e4 mem_sp_remote_key_invalid
+0x07e5 mem_sp_dhkey_invalid
+0x07e6 mem_sp_iocap_local
+0x07e9 mem_sp_iocap_remote
+0x07ec mem_sp_gkey
+0x07f0 mem_sp_pubkey_remote
+0x07f0 mem_sp_pubkey_remote_x
+0x0808 mem_sp_pubkey_remote_x_end
+0x0808 mem_sp_pubkey_remote_y
+0x0820 mem_sp_dhkey
+0x0838 mem_sp_dhkey_end
+0x0838 mem_sp_random_local
+0x0848 mem_sp_random_local_end
+0x0848 mem_sp_random_remote
+0x0858 mem_sp_random_remote_end
+0x0858 memresult
+0x0858 mem_sp_calc_result
+0x0858 memh
+0x085c memg
+0x0860 memf
+0x0864 meme
+0x0868 mem_sp_calc_result_high
+0x0868 memd
+0x086c memc
+0x0870 memb
+0x0874 mema
+0x0878 mem_sp_check_result
+0x0888 mem_sp_confirm_remote
+0x0898 mem_sp_prarm_stack
+0x08a8 mem_UI_data_txbuff_length
+0x08aa mem_ipc_skip_continue_proc
+0x08ab mem_ui_timer_temp//length 4
+0x08ab mem_ipc_rega_temp
+0x08af mem_usb_status
+0x08b0 mem_usb_fifo_empty
+0x08b1 mem_usb_read_len
+0x08b2 mem_usb_rxbuf
+0x08f2 mem_usb_cnt
+0x08f4 mem_usb_tx_enable
+0x08f5 mem_usb_tx_count
+0x08f6 mem_usb_set_protocol_count
+0x08f7 mem_usb_desc
+0x08f8 mem_usb_state
+0x08f9 mem_usb_idle_cnt
+0x08fb mem_usb_idle_timeout
+0x08fd mem_usb_trig_timeout
+0x08ff mem_usb_setup
+0x08ff mem_usb_setup_bmRequestType
+0x0900 mem_usb_setup_bRequest
+0x0901 mem_usb_setup_bValue
+0x0902 mem_usb_setup_bValueH
+0x0903 mem_usb_setup_wIndex
+0x0905 mem_usb_setup_bLength
+0x0906 mem_usb_setup_bLengthH
+0x0907 mem_usb0_setup
+0x090f mem_bufptr
+0x0911 mem_remain
+0x0912 mem_devicedesc
+0x0926 mem_hidreportdesc_kb
+0x09ee mem_hidreportdesc_m
+0x0ab6 mem_confdesc
+0x0b1a mem_string0
+0x0b1f mem_string1
+0x0b3d mem_string2
+0x0b5b mem_string3
+0x0b79 mem_hold_contr
+0x0b7b mem_hold_contw
+0x0b7d mem_fifo_temp
+0x0b7e mem_c51_flag
+0x0b7f mem_c51_lpm_lock
+0x0b80 mem_c51_wait_lpm
+0x0b81 mem_wakup_from_power_flag
+0x0b82 mem_lmp_bb_disconnect_reason
+0x0b83 mem_c51_eeprom_buf
+0x0be7 mem_c51_ipc_txbuf
+0x0c4b mem_c51_ipc_rxbuf
+0x0caf mem_c51_iicd_buf
+0x0cb3 mem_24g_rxbuf
+0x0cd5 mem_24g_txbuf
+0x0cf5 mem_24g_txpayload
+0x0d17 mem_24g_rxpayload
+0x0d37 mem_24g_common_temp
+0x0d57 mem_packet_length_temp
+0x0d58 mem_le_cur_handle_start
+0x0d5a mem_le_cur_handle_end
+0x0d5c mem_le_search_res
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4130 mem_current_amaddr
+0x4131 mem_lpm_mode
+0x4132 mem_device_option
+0x4133 mem_scan_mode
+0x4134 mem_last_clkn
+0x4138 mem_features
+0x4140 mem_lap
+0x4143 mem_uap
+0x4144 mem_nap
+0x4146 mem_npage
+0x4147 mem_glap
+0x414a mem_class
+0x414d mem_iscan_window
+0x414f mem_iscan_interval
+0x4151 mem_pscan_window
+0x4153 mem_pscan_interval
+0x4155 mem_page_interval
+0x4157 mem_page_window
+0x4159 mem_page_to
+0x415b mem_inq_window
+0x415d mem_fcomp_mul
+0x415e mem_fcomp_div
+0x415f mem_rx_window_init
+0x4161 mem_rx_window_sniff
+0x4163 mem_rf_init_ptr
+0x4165 mem_last_type
+0x4166 mem_last_type_esco
+0x4167 mem_last_type_saved
+0x4168 mem_retransmission_cnt
+0x416a mem_next_btclk
+0x416e mem_seqi
+0x416f mem_rf_rccal
+0x4170 mem_handle_num
+0x4171 mem_max_slot
+0x4172 mem_eir_enable
+0x4173 mem_afh_instant
+0x4177 mem_afh_error_total
+0x4179 mem_afh_cfg
+0x417a mem_afh_new_mod
+0x417b mem_afh_map_lo
+0x4180 mem_afh_map_hi
+0x4185 mem_afh_used
+0x4186 mem_afh_index
+0x4188 mem_afh_map_new
+0x4193 mem_afh_map
+0x41e3 mem_afh_timer
+0x41e7 mem_afh_classify_channel_map
+0x41f1 mem_chip_functions
+0x41f3 mem_lpm_wake_lock
+0x41f5 mem_lpm_interval
+0x41f7 mem_lpm_overhead
+0x41f8 mem_lpm_hibernate_switch
+0x41f9 mem_esco_addr
+0x41fa mem_sniff_unint_lost
+0x41fb mem_ptt
+0x41fc mem_sleep_counter//should be 0x41fc in REVC
+0x4200 mem_sleep_counter_all
+0x4204 mem_sleep_clkn
+0x420a mem_sniff_rcv
+0x420d mem_sniff_lost
+0x4210 mem_clks_per_lpo
+0x4213 mem_lpm_mult
+0x4214 mem_lpm_mult_timeout
+0x4215 mem_lpm_mult_cnt
+0x4216 mem_lpm_config
+0x4219 mem_lpm_xtalcnt
+0x421a mem_lpm_buckcnt
+0x421b mem_lpm_ldocnt
+0x421c mem_lpm_isogate
+0x421d mem_lpm_isogate_final
+0x421e mem_saved_gpio// should be 0x421e in REVC
+0x422e mem_saved_gsel
+0x4231 mem_saved_mark
+0x4239 mem_saved_spidctrl
+0x423a mem_patch_ptr
+0x423c mem_patch_len
+0x423e mem_timers
+0x425e mem_link_key_exists
+0x425f mem_link_key_eeprom_head
+0x4262 mem_link_key
+0x4272 mem_hci_cmd
+0x4273 mem_hci_conn_handle
+0x4274 mem_hci_plap
+0x4277 mem_hci_puap
+0x4278 mem_hci_pnap
+0x427a mem_uartd_rxitems_got_data
+0x427b mem_uartd_rxitems_threshold
+0x427c mem_uartd_rx_timeout
+0x427e mem_app_state
+0x427f mem_app_handshake_flag
+0x4280 mem_sniff_param_interval
+0x4282 mem_sniff_param_attempt
+0x4284 mem_sniff_param_timeout
+0x4286 mem_cb_check_wakelock
+0x4288 mem_cb_before_hibernate
+0x428a mem_cb_before_lpm
+0x428c mem_cb_le_process
+0x428e mem_cb_bt_process
+0x4290 mem_cb_idle_process
+0x4292 mem_cb_bb_event_process
+0x4294 mem_cb_discovry_timeout
+0x4296 mem_cb_att_write
+0x4298 mem_cb_update_notify_value
+0x429a mem_device_nums
+0x429b mem_eeprom_base
+0x429d mem_unsniff2sniff_timer_count
+0x429e mem_wake_up_delay_timer
+0x429f mem_app_connection_options
+0x42a0 mem_app_disconn_reason
+0x42a2 mem_app_disconn_reason_flag
+0x42a4 mem_at_using_flag
+0x42a5 mem_lpm_delay_after_sniff
+0x42a9 mem_xrecord_mode
+0x42aa mem_eeprom_block_size
+0x42ac mem_baud
+0x42ae mem_hci_lt_rx_state
+0x42af mem_l2cap_xmem_start
+0x42af mem_l2cap_tx_multi_offset//0 means single packet
+0x42b1 mem_sdp_remote_cid
+0x42b3 mem_rfcomm_remote_cid
+0x42b5 mem_hid_ctrl_remote_cid
+0x42b7 mem_hid_int_remote_cid
+0x42b9 mem_sdp_state
+0x42ba mem_rfcomm_state
+0x42bb mem_hid_control_state
+0x42bc mem_hid_interrupt_state
+0x42bd mem_spp_state
+0x42be mem_ML2CAP_comm_id
+0x42bf mem_used_map
+0x42c0 mem_tx_fifo0
+0x42c0 mem_tx_fifo0_map
+0x42c1 mem_tx_fifo0_ptr
+0x42c3 mem_tx_fifo1
+0x42c3 mem_tx_fifo1_map
+0x42c4 mem_tx_fifo1_ptr
+0x42c6 mem_tx_fifo2
+0x42c6 mem_tx_fifo2_map
+0x42c7 mem_tx_fifo2_ptr
+0x42c9 mem_tx_fifo3
+0x42c9 mem_tx_fifo3_map
+0x42ca mem_tx_fifo3_ptr
+0x42cc mem_tx_fifo_end
+0x42cc mem_l2cap_lpm_txbuf
+0x43cc mem_l2cap_flow_ctrl_flag
+0x43cd mem_l2cap_pending_item
+0x43ce mem_l2cap_xmem_end
+0x43ce mem_le_dsniff
+0x43d0 mem_le_conn_interval
+0x43d2 mem_le_scan_enable
+0x43d3 mem_le_scan_interval
+0x43d5 mem_le_scan_window
+0x43d7 mem_le_adv_led
+0x43d8 mem_le_adv_enable
+0x43d9 mem_le_adv_data_len
+0x43da mem_le_adv_data
+0x43f9 mem_le_scan_data_len
+0x43fa mem_le_scan_data
+0x4419 mem_le_name_len
+0x441a mem_le_name
+0x442e mem_le_led_on_time
+0x442f mem_le_new_map
+0x4434 mem_le_new_param
+0x4434 mem_le_new_window
+0x4435 mem_le_new_offset
+0x4437 mem_le_new_interval
+0x4439 mem_le_new_latency
+0x443b mem_le_new_timeout
+0x443d mem_le_temp
+0x443e mem_le_txheader
+0x443f mem_le_txlen
+0x4440 mem_le_txpayload
+0x4442 mem_le_txcid
+0x4444 mem_le_l2cap
+0x4445 mem_le_l2cap_response
+0x4446 mem_le_txbdy
+0x4465 mem_le_pcnt_tx
+0x446a mem_le_pcnt_rx
+0x446f mem_le_last_mic
+0x4473 mem_le_ivm
+0x4477 mem_le_ivs
+0x447b mem_le_ltk
+0x448b mem_ltk_exists
+0x448c mem_le_rconfirm
+0x449c mem_le_srand
+0x44ac mem_le_iat
+0x44ad mem_le_rat
+0x44ae mem_le_preq
+0x44b5 mem_le_pres
+0x44bc mem_le_search_handle_start
+0x44be mem_le_search_handle_end
+0x44c0 mem_le_att_offset
+0x44c0 mem_le_search_att_type
+0x44c2 mem_le_notify_handle
+0x44c4 mem_le_uuid
+0x44c6 mem_le_handle_data_len
+0x44c7 mem_le_handle_data
+0x44d7 mem_le_adv_param
+0x44d7 mem_le_adv_interval_min
+0x44d9 mem_le_adv_interval_max
+0x44db mem_le_adv_type
+0x44dc mem_le_adv_own_addr_type
+0x44dd mem_le_adv_direct_addr_type
+0x44de mem_le_adv_direct_addr
+0x44e4 mem_le_adv_channel_map
+0x44e5 mem_le_adv_filter_policy
+0x44e6 mem_le_conn_param
+0x44e6 mem_le_conn_peer_addr_type
+0x44e7 mem_le_conn_peer_addr
+0x44ed mem_le_conn_own_addr_type
+0x44ee mem_le_conn_interval_min
+0x44f0 mem_le_conn_interval_max
+0x44f2 mem_le_conn_latency
+0x44f4 mem_le_conn_superto
+0x44f6 mem_le_scan_params
+0x44f6 mem_le_scan_type
+0x44f7 mem_le_scan_own_addr_type
+0x44f8 mem_le_scan_filter_policy
+0x44f9 mem_le_lap
+0x44fc mem_le_uap
+0x44fd mem_le_nap
+0x44ff mem_le_xtype_fifo
+0x4504 mem_le_att_list
+0x46f8 mem_le_switch_send_data
+0x46f9 mem_le_transmit_window
+0x46fd mem_lmp_version
+0x4700 mem_lmp_subversion
+0x4702 mem_local_name_length
+0x4703 mem_local_name
+0x4706 mem_local_name2
+0x4746 mem_local_name_end
+0x4747 mem_unsniff2sniff_timer
+0x4748 mem_switch_flag
+0x4749 mem_eeprom_ota_base_addr/*the start- writing addr in eeprom  */
+0x474b mem_pn_dlci
+0x474c mem_pn_max_frame_size
+0x474e memFCStemp1
+0x474f memFCStemp2
+0x4750 memFCStemp3
+0x4751 mem_rfcomm_initiator
+0x4752 mem_remote_spp_channel
+0x4753 mem_HIUfcs_SPP
+0x4754 mem_HIUfcs_SPP_WCredits
+0x4755 mem_rfcomm_send_more_pkt
+0x4756 mem_remote_credits
+0x4757 mem_credit_given
+0x4758 mem_ms_channel
+0x4759 memui_uuid_table
+0x475b mem_all_uuid_16bits
+0x4771 mem_all_uuid_128bits
+0x4793 mem_sp_local_key_invalid
+0x4794 mem_sp_private_key
+0x47ac mem_sp_pubkey_local
+0x47ac mem_sp_pubkey_local_x
+0x47c4 mem_sp_pubkey_local_x_end
+0x47c4 mem_sp_pubkey_local_y
+0x47dc mem_ssp_enable
+0x47dd mem_ipc_lock_bt
+0x47de mem_ipc_lock_c51
+0x47df mem_ipc_fifo_bt2c51
+0x47e4 mem_ipc_fifo_c512bt
+0x47e9 mem_led_switch
+0x47ea mem_ui_button_timer
+0x47eb mem_ui_button_last_state
+0x47ec mem_ui_timer_last_btclk
+0x47f0 mem_discovery_timeout_timer_count
+0x47f2 mem_hid_handshake_timer_count
+0x47f3 memui_reconnect_mode
+0x47f4 mem_ui_state_map
+0x47f6 mem_ui_profile_supported
+0x47f7 mem_led_gpio
+0x47f8 mem_led_dark_time
+0x47fa mem_led_light_time
+0x47fc mem_ui_button_timeout
+0x47fd mem_ui_button_gpio
+0x47fe mem_discovery_timeout
+0x4800 mem_ir_ptr
+0x4802 mem_ir_type
+0x4803 mem_ir_cmd
+0x4804 mem_ir_play_count
+0x4805 mem_ir_report_len
+0x4807 mem_ir_pulse_zero
+0x4808 mem_ir_pulse_one
+0x4809 mem_ir_pulses
+0x4825 mem_ir_sequence_len
+0x4826 mem_ir_sequence
+0x4800 mem_acl_credits
+0x4802 mem_allow_switch
+0x4803 mem_hci_acl_queue_start/*param_acl_pktcnt+2 byte*/
+0x4807 mem_hci_wake_clk
+0x4800 mem_kb_state
+0x4802 mem_kb_report_data
+0x4808 mem_kb_keys
+0x4809 mem_kb_rcv_led_data
+0x480a mem_kb_fast_wake_last
+0x480e mem_led_cap_gpio
+0x480f mem_led_num_gpio
+0x4810 mem_led_scl_gpio
+0x4811 mem_kb_map
+0x4811 mem_kb_uuid_list
+0x4a87 mem_24g_paring_tx_power_param
+0x4a91 mem_5db_tx_power_param
+0x4a9b mem_current_event
+0x4a9c mem_ipc_lock_rx_data_bt
+0x4a9d mem_ipc_lock_rx_data_c51
+0x4a9e mem_ipc_lock_tx_data_bt
+0x4a9f mem_ipc_lock_tx_data_c51
+0x4aa0 mem_ipc_2bt_fifo_head
+0x4b36 mem_ipc_2bt_fifo_end
+0x4b36 mem_ipc_2C51_fifo_head
+0x4b9a mem_ipc_2C51_fifo_end
+0x4b9a mem_ipc_2bt_read_index
+0x4b9c mem_ipc_2bt_write_index
+0x4b9e mem_ipc_2C51_read_index
+0x4ba0 mem_ipc_2C51_write_index
+0x4ba2 mem_ipc_tx_evt_buff
+0x4ba4 mem_ipc_tx_evt
+0x4ba5 mem_ipc_bt_timer
+0x4ba7 mem_ipc_rx_type
+0x4ba8 mem_rfcomm_tx_buff
+0x4ba8 mem_queue_ele_num
+0x4ba9 mem_queue_write
+0x4bab mem_queue_read
+0x4bad mem_queue_start
+0x4bad mem_uart_packet
+0x4bb9 mem_data_ele0
+0x4bc5 mem_data_ele1
+0x4bd1 mem_data_ele2
+0x4bdd mem_queue_end
+0x4bdd mem_queue_temp
+0x4bdf mem_24g_rxdata_length
+0x4be0 mem_24g_pid
+0x4be1 mem_24g_datalen
+0x4be2 mem_24g_data_type
+0x4be3 mem_24g_txlen
+0x4be4 mem_24g_rx_window
+0x4be6 mem_24g_ensure
+0x4be7 mem_24g_get_ack_fail
+0x4be8 mem_24g_retry
+0x4be9 mem_24g_ch
+0x4bea mem_24g_current_ch_number
+0x4beb mem_24g_paring_addr
+0x4bef mem_24g_pairing_sm
+0x4bf0 mem_24g_ch_map1
+0x4bf4 mem_24g_ch_map2
+0x4bf8 mem_24g_ch_map3
+0x4bfc mem_24g_ch_map4
+0x4c00 mem_24g_addr
+0x4c04 mem_24g_check_dongle_times
+0x4c06 mem_24g_device_addr
+0x4c0a mem_24g_no_ack
+0x4c0b mem_24g_sta_crc
+0x4c0e mem_24g_sta_pid
+0x4c0f mem_24g_max_retry
+0x4c10 mem_24g_mode
+0x4c11 mem_24g_hop_pac_retry
+0x4c12 mem_24g_idle_timeout
+0x4c13 mem_24g_idle_cnt
+0x4c14 mem_24g_auto_paring_switch
+0x4c15 mem_24g_enter_lpm_timer
+0x4c16 mem_24g_syncword
+0x4c18 mem_24g_syncword_crc8
+0x4c19 mem_24g_get_syncword_crc8
+0x4c1a mem_24g_discard_cnt
+0x4c1c mem_cb_24g_data
+0x4c1e mem_24g_lasttx
+0x4c27 mem_power_ctrl_pac_succ_cnt
+0x4c28 mem_power_ctrl_level
+0x4c29 mem_rssi_avg_received
+0x4c2a mem_rssi_hex_received
+0x4c2b mem_rssi_signal_buf
+0x4c33 mem_rssi_noise_buf
+0x4c3b mem_rssi_noise_index
+0x4c3c mem_rssi_signal_index
+0x4c3d mem_tx_power
+0x4c3e mem_tx_power_temp
+0x4c3f mem_cnt
+0x4c42 mem_last_txlch
+0x4c43 mem_last_txlen
+0x4c45 mem_last_txdata
+0x4c59 mem_ipc_last_check_timer
+0x4c5d mem_prepare_write_len
+0x4c5e mem_ipc_c51_timer
+0x4c60 mem_le_rx_window
+0x4c61 mem_le_find_type_value_start_handle
+0x4c63 mem_le_find_type_value_end_handle
+0x4c65 mem_le_cur_att_type
+0x4c67 mem_le_search_len
+0x4c68 mem_le_ll_unknown_type
+0x4c69 mem_le_pairing_state
+0x4c6a mem_le_local_mtu
+0x4c6c mem_le_connection_updata_param
+0x4c7c mem_ltk_states
+0x4c7d mem_pair_state
+0x4c7e mem_empty_count
+0x4c7f mem_shutter_find_type_value_flag
+0x4c80 mem_le51_payload_len
+0x4c81 mem_le51_cmd
+0x4c82 mem_le51_tx_length
+0x4c83 mem_le51_txbuff_inuse
+0x4c84 mem_le51_txbuf
+0x4c8d mem_ipc_bt_100ms_timer
+0x4c8e mem_ipc_c51_100ms_timer
+0x4c8f mem_adc_config_flag
+0x4c90 mem_adc_channel
+0x4c91 mem_adc_0v
+0x4c93 mem_adc_3v
+0x4c95 mem_adc_current_value
+0x4c97 mem_hibernate_flag
+0x4c98 mem_new_supervision_to
+0x4c9a mem_kb_wake_timer
+0x4c9b mem_kb_last_data
+0x4caf mem_kb_keycount
+0x4cb0 mem_led_cap_delay_timer
+0x4cb1 mem_test
+0x4cb4 mem_seq
+0x4cb5 mem_recon_index
+0x4cb6 mem_power_on_flag
+0x4cb7 mem_caps_num_lock
+0x4cb8 mem_att_report1
+0x4cba mem_att_report2
+0x4cbc mem_att_report3
+0x4cbe mem_suspend_flag
+0x4cbf mem_32asm_data_end
+0x4d37 mem_store_ltk_timer
+0x4d38 mem_reconnect_continue
+0x4d39 mem_le_pin_code
+0x4d3d mem_le_send_security_request_flag
+0x4d3e mem_att_report_battery
+0x4d40 mem_24g_enter_hibernate
+0x4d44 mem_24g_txfail_cnt
+0x4d45 mem_mouse_retry_flag
+0x4d46 mem_24g_led_flag
+0x4d47 mem_ui_timer_last_btclk_temp
+0x4d4b mem_ui_check_timer_setup
+0x4d4f mem_customize_timer_setup
+0x4d51 mem_customize_timer
+0x4d52 mem_ios_mode_flag
+0x4d53 mem_version_yy_mm_dd
+0x4d57 mem_24g_txbuf_new
+0x4d6b mem_le_adv_swift_pair
+0x4d72 mem_24g_enter_hibernate_setup
+0x4d76 mem_24g_enter_hibernate_max
+0x4d7a mem_24g_short_sleep_counter
+0x4d7d mem_pc_sleep_flag
+0x4d7e mem_le_battery_level_display_enable
+0x4800 mem_at_gpio
+0x4801 mem_module_wake_up_gpio
+0x4802 mem_module_state_gpio
+0x4803 mem_module_connect_state_gpio
+0x4804 mem_module_version
+0x480a mem_last_uart_clock
+0x480e mem_current_packet_length
+0x4810 mem_module_prepare_tx_len
+0x4812 mem_module_state
+0x4813 mem_module_task
+0x4814 mem_cmode_addr
+0x481a mem_at_scan_time
+0x481c mem_prarm_pswd
+0x4820 mem_prarm_uart
+0x4824 mem_prarm_blename
+0x4827 mem_prarm_name
+0x482b mem_prarm_bleadss
+0x482e mem_prarm_adss
+0x4832 mem_prarm_vers
+0x4836 mem_prarm_class
+0x483b mem_prarm_clrflg
+0x4841 mem_prarm_reconn
+0x4847 mem_prarm_bledis
+0x4849 mem_prarm_dis
+0x484c mem_prarm_stsn
+0x4850 mem_prarm_atp
+0x4853 mem_prarm_list
+0x4857 mem_prarm_role
+0x485b mem_prarm_sniff
+0x4860 mem_prarm_ldev
+0x4864 mem_prarm_rssi
+0x4868 mem_prarm_cdev
+0x486c mem_prarm_bleinqr
+0x486f mem_prarm_inqr
+0x4873 mem_prarm_cmode
+0x4878 mem_prarm_mode
+0x487c mem_prarm_dmstate
+0x4883 mem_prarm_discov
+0x4889 mem_prarm_ota
+0x488c mem_prarm_bleconn
+0x488e mem_prarm_conn
+0x4892 mem_prarm_pageout
+0x4899 mem_prarm_recfail
+0x48a0 mem_module_uuid_list
+0x4800 mem_mouse_x
+0x4802 mem_mouse_y
+0x4804 mem_mouse_z
+0x4805 mem_mouse_key
+0x4806 mem_mouse_z_last
+0x4807 mem_mouse_z_before
+0x4808 mem_mouse_z_now
+0x4809 mem_mouse_z_data
+0x480a mem_mouse_move_flag
+0x480b mem_reconnect_timeout
+0x480c mem_mouse_direct_timeout
+0x480e mem_mouse_no_data_timeout
+0x4810 mem_mouse_blank_data_timeout
+0x4812 mem_mouse_discovery_timer
+0x4814 mem_mouse_direct_timer
+0x4816 mem_mouse_no_data_timer
+0x4818 mem_mouse_blank_data_timer
+0x481a mem_mouse_send_blank_timer
+0x481b mem_mouse_dpi
+0x481c mem_mouse_dpi_button_state
+0x481d mem_mouse_test_cnt
+0x481e mem_le_hibernate_timer
+0x4820 mem_mouse_mode_state
+0x4821 mem_sensor_type
+0x4822 mem_lbutton_gpio
+0x4823 mem_rbutton_gpio
+0x4824 mem_mbutton_gpio
+0x4825 mem_dpi_button_gpio
+0x4826 mem_sensor_data_gpio
+0x4827 mem_whee_a_data_gpio
+0x4828 mem_whee_b_data_gpio
+0x4829 mem_conn_cnt
+0x482a mem_mouse_uuid_list
+0x4800 mem_shutter_send_data
+0x4804 mem_shutter_key_temp
+0x4805 mem_shutter_send_length
+0x4806 mem_shutter_clkn_bt_last
+0x480a mem_shutter_key
+0x480b mem_shutter_flag
+0x480c mem_shutter_cable_unplug_conut
+0x480d mem_shutter_hid_disconn_count
+0x480e mem_shutter_1key_send_sm
+0x480f mem_shutter_iphonekey_gpio
+0x4810 mem_shutter_androidkey_gpio
+0x4811 mem_shutter_key_number
+0x4812 mem_shutter_uuid_list
Index: patch/ram.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/ram.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/ramcode.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/ramcode.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/ramcode.rom	(working copy)
@@ -0,0 +1,2048 @@
+c512801a
+c0000045
+c0018049
+c0028055
+c0030330
+c0050351
+c0138355
+c0140367
+c015836d
+c0210378
+c021837c
+c0280384
+c02a0393
+c0188041
+c019803e
+c0480226
+c04901ec
+c04a01f2
+c04a81da
+c058032e
+c058819e
+c05901b2
+c05981cc
+c05b01d5
+c05c81a6
+20203bf1
+c00c039f
+c00d83a7
+c01183c6
+c01203e2
+c019045c
+c01dd3b0
+c01f02a3
+c01f82a7
+c02504a5
+c0258455
+c026045f
+c0270465
+c02b046c
+c0308473
+c0318478
+c032049a
+c03284cf
+c0348632
+c0350617
+c0358619
+c037063d
+c03784b0
+c0438139
+c04682c2
+c04702db
+c04782ab
+c05e82b9
+c0668233
+c0678145
+c068015a
+c04e03e6
+c04f83fc
+c0710409
+c071841b
+c0730433
+20203bf1
+da204040
+18007201
+20203305
+d8a04040
+df20000a
+20407e3b
+202032d8
+6810813b
+60008b81
+70800608
+20203003
+204000d3
+204000c5
+2040005a
+2040004e
+20203015
+680947f4
+6800c3d8
+7d3a040b
+6800c133
+7d3a0406
+600947f4
+20600000
+20403392
+20403407
+20403024
+2040065e
+20203022
+6800c7dc
+203a005e
+6800c793
+207a0000
+20400134
+20740000
+1ff0fe00
+1fe20c00
+20400115
+6000cba7
+c0008073
+c003007d
+1fe20400
+18c22200
+6800c040
+c3000070
+1a220c00
+c6848000
+18427e00
+c001807f
+c002809d
+20203bf1
+1a220c00
+d8a000f8
+2020010d
+20400115
+20400115
+60008b7d
+20400078
+20207c33
+20400118
+18c20400
+18508400
+60094b9a
+20600000
+d8a04d57
+2020010d
+20400115
+1fe22200
+18c27e00
+600102b7
+2040527c
+243a0088
+1a20a201
+20404b2c
+2020008d
+d8a04bad
+1a227200
+680102b7
+1fe20c00
+2020010f
+18a0a5fe
+680142b7
+e0a10000
+580000a1
+e0a08000
+1a20f3ff
+680102b7
+1fe20c00
+2040010f
+1a420c00
+e8c10000
+60014c9b
+1fe0f202
+20407e45
+704c9a64
+20600000
+18c22200
+6800cba9
+1fe08401
+18410403
+6008cba9
+1feffe07
+d8a04bad
+98a08a00
+1a220c00
+20400115
+18c22200
+1fe0ffff
+1fe27200
+1fe0fe07
+6000cc82
+1a220c00
+20400115
+18c22200
+c00080b3
+c00100b9
+c00180bb
+c00200bd
+68014cb8
+204000c2
+2040561e
+247a0000
+700b7d1b
+20205620
+68014cba
+202000b4
+68014cbc
+202000b4
+68014d3e
+204000c2
+6800cd7e
+207a0000
+202000b5
+e0a10000
+1a220c00
+2020010f
+680a4d4b
+1c427e00
+98467e00
+68094d4f
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4d4b
+6800cd51
+1fe0fe01
+6000cd51
+20600000
+680a4c59
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4c59
+68094ba5
+18508400
+9840fe00
+1ff0fe00
+60014ba5
+1ff0fe00
+1fe17e03
+c1800000
+6800cc8f
+c28000f0
+c28080f2
+da200000
+20400104
+7089718f
+6800cc90
+60108973
+204000f3
+da200001
+20200104
+708971bf
+202000f3
+708971af
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+70890674
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+60094c95
+20600000
+d8400021
+6800cc90
+98460400
+1a227e00
+79200407
+243a010b
+793f8407
+d8a08078
+202069f4
+20400115
+1fe27200
+20400111
+20200078
+20400115
+e0a08000
+c2000111
+20600000
+20400118
+e8c08000
+20600000
+58004b36
+98c67c00
+24628000
+d8c04aa0
+20600000
+df200003
+d8c04ba2
+18c22200
+68014ba0
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+2040012c
+c2000124
+18a27e00
+1ff0fe00
+60014ba0
+20600000
+58004b9a
+98a67c00
+24628000
+d8a04b36
+20600000
+68014b9e
+68094ba0
+20200136
+68014b9a
+68094b9c
+98467c00
+2022e9b1
+2020320b
+1c427e00
+60024d47
+6808c7ef
+6800cd4a
+98467c00
+24410140
+20207c06
+680a4d47
+600a47ec
+600a4c59
+600a4d4b
+20600000
+da2047df
+20407f9f
+207a0000
+1fe22600
+2040014b
+20203ea5
+c10c0000
+c00a064f
+c00a8654
+c0036614
+c0010151
+20203e7d
+70429d00
+680147f4
+c283bf08
+2fec0001
+20408157
+20203f08
+68008450
+c1010000
+20203e7b
+60088259
+6800cc8d
+1fe0fe01
+6000cc8d
+68008259
+207a0000
+1fe0ffff
+60008259
+2040017a
+20400181
+20400166
+2020015e
+6800ccbe
+247a0000
+6800cc9a
+207a0000
+1fe0ffff
+6000cc9a
+c1808000
+704c9a64
+680147f4
+c4028000
+68014c9b
+207a0000
+2040527e
+247a0000
+68014c9b
+1fe22200
+20404b2c
+1a20f202
+d8c04c9d
+20207e45
+6800c7f2
+207a0000
+1fe0ffff
+6000c7f2
+247a0000
+20403ebd
+20204b22
+6800cc15
+207a0000
+1fe0ffff
+6000cc15
+20600000
+1a627e00
+1fe17ef0
+c1280000
+2040018e
+1a627e00
+207a0000
+6000cba4
+2020011d
+1a627e00
+c0058192
+c001019a
+20600000
+704c9a28
+5800000a
+60014c9b
+680142b7
+e0a10000
+580001a1
+e0a10000
+20600000
+704c9a00
+df200014
+d8a04c9b
+20207e3f
+70416e7f
+20403cf3
+6800cc97
+207a0000
+704c9700
+1c427e00
+60024c59
+20600000
+6800c219
+247a0000
+70804206
+58000f0c
+20403da7
+58030d40
+20403bf3
+37d98200
+1e226000
+20403b36
+20001388
+20203d9d
+c6118000
+680147f4
+c284bd1e
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+2040527e
+247a0000
+20403dca
+247a0000
+20403b36
+6800c7dc
+203a3d25
+6800c793
+207a0000
+20203d25
+20400134
+24740000
+20400131
+24740000
+700b7f01
+700b7e01
+204001d1
+20200134
+204001c4
+24740000
+68008b7f
+247a0000
+20203d2d
+68008b7e
+2000000a
+c08001d1
+20600000
+204001c4
+24740000
+68008b7f
+247a0000
+20203d4f
+204001de
+20403aaf
+70895cc0
+20600000
+6800c219
+243a01e4
+20403d91
+20007530
+20007530
+20007530
+20403b0a
+70804204
+6810896b
+1fe17ecf
+6010896b
+1fe1fe30
+6010896b
+20600000
+60088017
+1840a204
+20203a86
+60088017
+1840a200
+20203ab6
+204001ef
+58000500
+20403bf3
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027d
+6800cbef
+c0ff820a
+6802ca91
+e0a28000
+e8c28000
+e0a28000
+708956df
+20400215
+708955df
+20600000
+6802ca87
+e0a28000
+e8c28000
+e0a28000
+6800cc7d
+205a0213
+60108956
+708955d0
+20600000
+580000c2
+20600000
+20000004
+708955d1
+20000004
+708955d2
+20000004
+708955d4
+20000004
+20600000
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+708955d0
+708956c0
+20600000
+2030ba6f
+2040021d
+20203a6f
+2040527c
+247a0000
+2020005a
+78347c00
+68120138
+79347e1a
+6012004c
+20403db0
+7000a201
+20600000
+6800c419
+1fe0fe02
+6000c3f9
+700b7e00
+70017706
+20403fa4
+58000229
+6001428e
+58000232
+6001428a
+58000186
+60014292
+580002aa
+60014290
+5800005a
+6001428c
+5800022c
+60014288
+58004aa0
+1ff0fe00
+60014b9a
+60014b9c
+20403e0b
+58004b36
+1ff0fe00
+60014b9e
+60014ba0
+6800cc97
+c02d0266
+20358264
+68014c91
+1ff0fe00
+60014c91
+68014c93
+1ff0fe00
+60014c93
+20400271
+680402a0
+243a025e
+68014ad4
+1ff0fe00
+203a025e
+60014c93
+2040065b
+704ba42f
+2040011d
+704c9700
+70828003
+20600000
+704ba430
+20200260
+1ce27e00
+203a02b1
+20405b63
+20404d99
+58000000
+60044040
+600147f4
+1c427e00
+60024c59
+704ba433
+20200260
+2040688a
+580007e0
+da2002a0
+d840000e
+204068d3
+2040688d
+680082a0
+c2803bf1
+680402a2
+207a0000
+6800cc8f
+c2800285
+c2808293
+680102a2
+1ff0fe00
+60014c91
+680102a8
+1ff0fe00
+60014c93
+20600000
+680902a6
+680102ac
+18422400
+1fe22200
+1ff0fe00
+60014c93
+1a227e00
+98462600
+1a63a600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+20600000
+680902a4
+680102aa
+18422400
+1fe22200
+98462600
+1a6b2600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+1a63a600
+1a227e00
+9a667e00
+1ff0fe00
+60014c93
+20600000
+70001627
+70890f36
+70890b5f
+202053d4
+70890f2e
+70890bff
+202053d9
+20600000
+68014ba0
+60014b9e
+68014b9c
+60014b9a
+700b7e03
+204001d1
+704c975a
+20403db8
+68120138
+793ffe0f
+6012004c
+20403db0
+d85fffff
+20203cda
+ea2a8000
+18417eff
+243a02be
+184cfe00
+e2228000
+1a20a204
+ea208000
+247a0000
+20207f9c
+20407c20
+da2047e4
+20407f9f
+1fe20400
+20407c24
+18427e00
+207a0000
+c01082d4
+c01102d6
+c01186f5
+c0008315
+c00682f1
+c01602f0
+c01582fb
+c0018319
+c0150322
+c0097c85
+20207c5a
+704befff
+20200728
+793f8023
+704befff
+202006e0
+700b7d22
+20205620
+6800807c
+203a02e0
+204061d9
+6800807c
+243a7c8c
+68008b7d
+c584fc87
+c00202e6
+c00882d9
+c01402ec
+20207c7b
+680147f4
+c30182e9
+20207ca4
+5800000a
+60020051
+20207ca4
+70007c37
+68014c98
+60010051
+20600000
+20400315
+20403eff
+70413100
+180a7e00
+6000c4f9
+7043dc05
+58181203
+6001c3e2
+d8400007
+20400301
+20207cae
+7043dc04
+580000ff
+6001c3e2
+d8400000
+20400301
+20207cae
+6800c3f9
+9840fe00
+1fe0fe0b
+1fe67c1f
+24210311
+6000c3d9
+d8a043e5
+18427e00
+245a030e
+6800c3f9
+1fe27200
+d8c043fa
+20207e45
+1fe27200
+d8c04d6b
+20207e45
+6800c3f9
+1fe0fe0b
+6000c3d9
+20600000
+20403eff
+20407cd5
+70017706
+20207c97
+20403bfa
+20404d98
+20405b62
+70017706
+6800c7dc
+c0000320
+70017717
+70425e01
+20207ca2
+680147f4
+c284bf90
+c280032b
+c283fcd5
+c51186e0
+7043d800
+20403f7e
+700b7d37
+20207c27
+20403eff
+20407cd5
+20203f77
+20403b36
+20203cdc
+20400332
+2020302c
+da600334
+20203301
+c300b307
+2040333d
+20400341
+98467e00
+1fe0fe01
+2021033b
+20203325
+98002400
+1a208c02
+e8c10000
+203a3327
+20403349
+20200335
+1ff11600
+196c9600
+2022834b
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+600c02a0
+20407e53
+680c02a0
+2020307c
+78547c00
+68010032
+d840ffff
+98467c00
+24628000
+68020034
+2038035e
+9d067e00
+2020035f
+9c467e00
+1fe67c04
+24610000
+18007e00
+60010032
+202034df
+700b7d20
+20407c27
+20200368
+600a0034
+70474801
+5800ffff
+60010032
+70007301
+20600000
+20403baa
+20400370
+20203267
+1c40c201
+20403a54
+18004803
+20403a42
+20403bae
+20403bb4
+20403bc5
+2020375c
+20403e25
+20406dec
+204035d6
+20203480
+20403d61
+20403be2
+20213498
+20403204
+24343498
+20403812
+243a0379
+20600000
+204032df
+2422b568
+68008047
+c301b571
+6800c165
+c009b562
+68014c43
+1fe67c14
+24213562
+60010091
+6800cc42
+60008090
+58004c45
+60010179
+20203562
+68010091
+60014c43
+1fe67c14
+2421358f
+98007200
+68008090
+6000cc42
+68010179
+98000c00
+d8a04c45
+20407e45
+2020358f
+680102cd
+203a4dfc
+680082cf
+c00083a4
+20204dbb
+2040527a
+247a0000
+20204dc3
+e8c08000
+c00503aa
+20204e14
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+5800000b
+e0a08000
+18e27e00
+e0a08000
+e8c10000
+c00103b8
+c00183bf
+20203bf1
+58020008
+e0a30000
+58000200
+e0a20000
+18007e0c
+9a40a400
+20204e20
+5803000c
+e0a30000
+58000006
+e0a40000
+18007e10
+9a40a400
+20204e20
+204052c4
+18002400
+204052d0
+1fe20a00
+680102cd
+1fe22600
+680102cb
+98000c00
+204003d0
+20205110
+e8c08000
+c00503d3
+20205116
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+600102a0
+1a627e00
+9a262600
+204052d0
+5800000b
+e0a08000
+18e27e00
+e0a08000
+680102a0
+202003b5
+da400000
+2040527a
+247a0000
+2020524d
+680102cb
+1fe20c00
+e8c08000
+1fe1040f
+1ff1fe00
+c00503f9
+c00283f7
+c00083f0
+c0024b18
+20204aff
+18427e00
+c002cb09
+704cbe01
+c001cb18
+704cbe00
+c0024b18
+20600000
+204003f9
+20204b11
+e8c08000
+c0008452
+20600000
+2040527a
+247a0000
+20400400
+20206dfd
+6800c132
+c1008000
+6800c3cd
+207a0000
+1fe22200
+7043cd00
+1a227e00
+c0284ddc
+20600000
+6800807d
+c001840d
+c0038418
+20205b92
+680084df
+60008445
+c0098364
+c0198412
+20205c58
+6800844d
+79207e00
+6000844d
+700b7d01
+20407c27
+20205c83
+680084df
+60008446
+20205cf3
+78547c00
+204061d9
+68008048
+207a0000
+c283df10
+c0010423
+c0038430
+20205ee0
+18007e11
+204061b5
+68008049
+1fe20400
+c000042b
+c007042b
+c00e042b
+20600000
+e0a08000
+6800c702
+e0a08000
+5800000e
+20205fa6
+20406055
+70007264
+20600000
+6800807c
+203a0438
+204061d9
+6800807c
+247a0000
+68008055
+207a0000
+c0030447
+c008043d
+2020623e
+6800c748
+c1000000
+c0008445
+d8e0000a
+20407e53
+247a0000
+70474800
+2020629b
+20748000
+20200447
+68008177
+c281629b
+c280044a
+6800c25e
+203a62c7
+6800844d
+c4018000
+c4010000
+68020465
+d8400320
+202062c2
+e8c08000
+6000ccb7
+20600000
+204054bd
+68088017
+20403a82
+20403a87
+78287c00
+d960157c
+2020547f
+70443e01
+70443f00
+2020534e
+204053dd
+20400462
+202054c1
+203681f5
+204053ee
+20203a91
+6800cc60
+600246f9
+6800c4db
+c000846a
+202054e0
+7044db00
+202054ef
+680083c0
+c4028000
+680103da
+680903e0
+98467e00
+24610000
+2020557e
+680083d7
+c3828000
+68008341
+203a5626
+20205890
+6800c440
+c003848f
+c0078493
+c0030482
+c001047f
+c009848f
+2020563a
+5800000a
+600103ef
+20205693
+700b7d12
+20407c33
+18000401
+2034d892
+700b7d34
+20407c27
+6800cc69
+c001048b
+2020048d
+700b7d46
+20405620
+18000401
+20205892
+6800cc68
+e0a08000
+18000402
+20205892
+18a08bff
+68044c6c
+e0a40000
+e8c40000
+e0a40000
+18000202
+2020588a
+6800c444
+c004d719
+c001049f
+c003d70d
+20205656
+59000302
+6001c4b5
+58000001
+e0a08000
+58010010
+202056f0
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+2023375c
+7836fc00
+68008017
+1fe0a200
+202054af
+e8c18000
+600183f9
+c02904b6
+c00104cd
+c00904bc
+20205907
+704d3801
+680103fa
+c01084ba
+202059ed
+d8c00349
+20200452
+680103fa
+1fe67c21
+204284ba
+680103fa
+1fe67c2d
+204284cb
+680103fa
+68094cbc
+18408401
+98467c00
+202284c8
+202059ca
+700b7d34
+20407c27
+202059ca
+70413101
+20600000
+700b7d03
+20205620
+6800c444
+c00d8609
+c00e8609
+c008859f
+c0048551
+c002853f
+c00384f3
+c009d85c
+c00184e0
+c00584e3
+c00684db
+20205666
+680103fa
+c00384de
+202057d6
+7003fc07
+20205729
+68014c6a
+e0a10000
+2020588a
+680103fa
+c01604e7
+c00704ea
+202057c6
+6800cd7e
+203a5728
+202057c6
+6800cc69
+c08057c6
+6800cc7c
+c001d7c6
+18a20400
+704c6901
+18420a00
+7003fc05
+20205729
+2040577b
+20740000
+680944c0
+58001812
+98467c00
+2022850c
+5800180f
+98467c00
+2022850e
+5800180a
+98467c00
+20228512
+58001801
+98467c00
+20228510
+20205754
+6800cc7f
+d8400000
+f9200400
+98417e00
+c0805728
+6800cc7f
+f9207e00
+6000cc7f
+20200514
+d8e00000
+20200503
+d8e00001
+20200503
+d8e00003
+20200503
+d8e00002
+20200503
+680144c0
+1fe22200
+680944c4
+18422400
+2040051b
+20228526
+20205728
+d8c04504
+e8c10000
+207a0000
+e8c18000
+e8c10000
+9a267c00
+20628000
+18c08dfd
+e8c08000
+98c08c00
+2020051c
+18c08df9
+e8c10000
+60014c61
+20400534
+203a5728
+18c08dfc
+e8c10000
+1fe0ffff
+60014c63
+70444407
+68024c61
+60024445
+18000409
+20205892
+e8c10000
+e8c08000
+98c08c00
+e8c10000
+207a0000
+e8c10000
+9a467c00
+20628000
+e8c08000
+98c08c00
+20200537
+d9600003
+18007e01
+6000c445
+20405a74
+20405a7d
+203a5746
+2421054f
+78547c00
+e0a10000
+e8c10000
+e0a10000
+196097ff
+2022d746
+e8c08000
+98c08c00
+20200543
+18c08c02
+2020054c
+680944c0
+58002a00
+98467c00
+20228591
+58002a50
+98467c00
+2022859c
+58002803
+98467c00
+2422d728
+680144bc
+600102a0
+78347c00
+204005e3
+2421056d
+680902a0
+204005eb
+c000856d
+204005e7
+2422856b
+78547c00
+2040056f
+204005d1
+204005eb
+20400577
+2020056d
+204005d1
+2020055e
+20345728
+20200607
+680102a0
+60014446
+6800cc67
+1fe27200
+20400601
+d8a04448
+20407e45
+20200604
+68094c65
+184cfe00
+c0828589
+204005fe
+680102a0
+e0a10000
+20400604
+58004504
+98408c00
+e8c08000
+18c20400
+1fe27200
+1fe0fe05
+6000c445
+204005fe
+18420c00
+20407e45
+20200604
+204005fe
+680102a0
+e0a10000
+68014c65
+e0a10000
+20400604
+70444507
+20600000
+20405b08
+e8c08000
+1fe27200
+1fe0fe02
+6000c445
+18c08dfb
+e8c10000
+e0a10000
+18c08c03
+20407e45
+2020588a
+d8402a50
+20405b0c
+20200592
+d9600002
+680144bc
+600102a0
+700d5c00
+78347c00
+204005e3
+242105c7
+680902a0
+204005eb
+c00085ca
+204005e7
+242285c3
+68008d5c
+c00085ca
+243405b4
+78547c00
+6800cc67
+1fe0fe04
+6000c445
+20400604
+202005be
+6800cc67
+1fe67c10
+202285ca
+6800c445
+1fe67c10
+202285ca
+680102a0
+1fe0ffff
+60010d5a
+204005da
+680102a0
+60010d58
+204005d5
+196097ff
+202285c5
+204005d1
+202005a4
+700d5c01
+202005c3
+680102a0
+60010d5a
+202005ce
+680102a0
+1fe0ffff
+60010d5a
+202005ce
+20345728
+204005da
+20200607
+680902a0
+18408401
+600902a0
+20600000
+6800cc67
+60008103
+1fe27200
+20400601
+20207e45
+204005fe
+68010d58
+e0a10000
+68010d5a
+e0a10000
+68008103
+1fe27200
+20407e45
+20200604
+680902a0
+680144be
+98467c00
+20600000
+680144c0
+68094c65
+98467c00
+20600000
+d8c04504
+18422200
+e8c10000
+203a05f6
+e8c90000
+60094c65
+9a267c00
+202285f8
+e8c08000
+98c08c00
+202005ed
+58000001
+20600000
+e8c08000
+6000cc67
+18c27e00
+600102b7
+58000000
+20600000
+680102b9
+1fe20a00
+20600000
+680102b7
+1fe20c00
+20600000
+18a27e00
+600102b9
+20600000
+204005fe
+2020588a
+6800cbab
+1fe08401
+18410403
+6008cbab
+1feffe07
+d8c04bad
+98c08c00
+6800cc82
+1fe0fffb
+1fe27200
+d8a04445
+20407e45
+6808cc82
+20205892
+2040561c
+202058b0
+1a627e00
+c0018629
+c005062d
+c0000624
+c009062b
+c001062f
+1fe67c0d
+202158c0
+6000cc68
+700b7d27
+20205620
+20405924
+68014437
+1fef8404
+60094d4f
+20600000
+704c7c00
+20205938
+700b7d33
+20205620
+700b7d2b
+20205620
+58000014
+600103ef
+20600000
+6800c43e
+28200601
+20208636
+202058a7
+6800c43f
+203a0639
+202058a7
+6800c43e
+793ffe04
+6000c43e
+20600000
+e8c08000
+c0008644
+c002064a
+c0048642
+202058f8
+704c6903
+20205974
+704d3d01
+6000c4ae
+e8c30000
+e0a30000
+700b7d42
+20205620
+204074a8
+2022864d
+20205968
+704c6902
+2020596a
+704c7d00
+20403f86
+20403f7e
+20403fa4
+20203ecc
+70421300
+70448b00
+704c7c00
+704c6900
+704c7f00
+704c7d00
+20203ed0
+58000000
+60024ba9
+20600000
+c6918000
+68024d40
+60024d72
+20400684
+24340677
+704c150a
+204006ad
+6800cbef
+c1ff8000
+704c3d02
+6800cd45
+247a0000
+204001c4
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6801cd7a
+20407e8a
+600a41fc
+20203cda
+204001c4
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6800cc15
+243a0673
+68024d72
+20200674
+6800cbef
+c0ff86fe
+2040068b
+205406a9
+20540768
+704be601
+20600000
+78547c00
+704be202
+6800cd57
+c0020697
+c002869a
+c00386a0
+c003069d
+c00406a4
+c00486a6
+6800cd45
+245a34df
+20600000
+704d5700
+704be10a
+202006a2
+704d5703
+704be104
+202006a2
+704d5702
+704be103
+202006a2
+704be201
+704be108
+704be700
+202034df
+704d5704
+202006a7
+704d5705
+704be109
+202006a2
+df200009
+d8c04d57
+d8a00cd5
+20207e45
+704be800
+204006d2
+243786bb
+204006e3
+6800cbe0
+1fe0fe01
+6000cbe0
+704d4500
+6800cbef
+c0ff86d1
+204006cd
+704be700
+704be600
+20600000
+704d4501
+6800cbe7
+1fe0fe01
+6000cbe7
+6800cbef
+c0ff86de
+6800cbe7
+c07f86e0
+6800cbe7
+d8400010
+98467c00
+20210787
+6800cbe8
+1fe0fe01
+6000cbe8
+2000000a
+c08206ae
+20200787
+58000000
+60048cd5
+6004cd57
+20600000
+20200718
+7857fc00
+204007df
+200004b0
+18002a00
+68024c00
+98001200
+68088017
+20403a82
+20403a87
+2040079f
+205787d9
+20600000
+704d4500
+20600000
+704d4500
+700b7d32
+20207c27
+2040074d
+68008cb3
+c1810000
+6800cbdf
+207a0000
+98007200
+d8c00cb5
+d8a00d17
+20407e45
+68008cb4
+2fe1f008
+24608000
+68008cb5
+c07f86f3
+6000ccb7
+20600000
+704d7d01
+20600000
+79200023
+204006fa
+204006b7
+704bef01
+20600000
+704be000
+704be94e
+68024beb
+2020075a
+204006fa
+6800cbe6
+c000b4df
+6800cbef
+c0008706
+c0010709
+c001870c
+20203bf1
+704bef11
+700d37aa
+2020070e
+704bef12
+700d3755
+2020070e
+704bef13
+700d3722
+700d3802
+68024c06
+60020d39
+700d3d00
+da200d37
+d8400007
+20400748
+20400768
+20400689
+202034df
+6800cbef
+c17f8000
+c008871e
+c0090720
+c0098722
+20600000
+704bef02
+202006b7
+704bef03
+202006b7
+704befff
+700b7d31
+20407c27
+68020d19
+2040075a
+202006b7
+79200023
+2040075b
+20400787
+6800cbef
+c1ff8000
+2040073a
+58000000
+60014c04
+20403cab
+200007d0
+6800cc04
+c07f86e0
+204006d2
+24378743
+204006cd
+79200023
+700b7d3c
+20207c27
+700d37ff
+6800cbe2
+60008d38
+68024c06
+60020d39
+d8400006
+da200d37
+20400748
+20200768
+68014c04
+1fe0fe01
+60014c04
+20400787
+20200730
+6008cbe1
+18427200
+d8a00cd5
+1a220c00
+20207e45
+68008cb4
+1fe97e00
+6000cbdf
+20600000
+6808cc3c
+58004c2b
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008cc3c
+20600000
+60024c00
+da200000
+df200004
+d8c04c00
+e8c08000
+9a20a200
+c200075e
+1a227e00
+60014c16
+6800cc16
+6808cc17
+9840fe00
+6000cc18
+20600000
+6800cbe1
+1fe0fe02
+6000cbe3
+6800cbe2
+60008cf5
+6800cbe1
+1fe9fe00
+6808cbe0
+18410403
+18438400
+9841fe00
+6808cc0a
+9840fe00
+e0a08000
+6800cbef
+c0ff877a
+6800cbe2
+e0a08000
+6800cbe1
+98007200
+6800cbe2
+c0008785
+d8c00cd5
+20407e45
+68008cd5
+c0018783
+20600000
+700cd502
+20600000
+d8c00cd6
+20207e45
+6808cbea
+2040078d
+18408401
+18410403
+6008cbea
+20600000
+6800cc00
+1fe17e03
+1fefa204
+58004bf0
+9a20fe00
+98408c00
+e8c08000
+6000cbe9
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800cbe9
+1fed8400
+79200401
+18431c00
+20600000
+20400796
+7826fc00
+7830fc00
+78507c00
+78287c00
+68014be4
+98003600
+37c18400
+242c07d9
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000cc19
+6808cc18
+98467c00
+242287d9
+09800008
+19897e00
+60008cb3
+68008cb3
+6808cbe2
+a8400e00
+242087d9
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+202287c3
+09800008
+19897e00
+e0a08000
+c20007bf
+18a22200
+09800008
+19897e00
+6000cc2a
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+202307d9
+7837fc00
+68008017
+1fe0a200
+20403ab6
+7846fc00
+20403a7a
+6800cc2a
+1fe22200
+20200751
+784dfc00
+7845fc00
+2020375c
+20403a7a
+6808cbe9
+20203a91
+204053d2
+68024c00
+98001200
+20400796
+204007dc
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800cc18
+08008608
+6800cbe3
+98007200
+d8c00cf5
+e8c08000
+08008608
+c20007f5
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20203a7a
Index: patch/rf.dat
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/rf.dat	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/rf.dat	(working copy)
@@ -0,0 +1,107 @@
+mem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: patch/sch.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/sch.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/sch.rom	(working copy)
@@ -0,0 +1,622 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+0a   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+3a   #mem_patch2C
+ce   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+
+mem_customize_timer_setup:  20 00		# 20:10ms  30:15ms
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:00 00 02 6b 46 54
+mem_local_name_length:
+'Bluetooth Keyboard
+mem_sniff_param_interval:12 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:01
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+#36018f + 0x16
+3601a5
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+#090206 357e 357c 0822 2578
+090206 3594 3592 0822 258E
+
+05 01       #Usage Page (Generic Desktop)											      
+09 06       #Usage (Keyboard)																	      
+A1 01       #Collection (Application)		
+85 01       #    Report ID (1)														      
+05 07       #    Usage Page (Keyboard/Keypad)									      
+19 E0       #    Usage Minimum (Keyboard Left Control)					      
+29 E7       #    Usage Maximum (Keyboard Right GUI)						      
+15 00       #    Logical Minimum (0)														      
+25 01       #    Logical Maximum (1)														      
+75 01       #    Report Size (1)																      
+95 08       #    Report Count (8)															      
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)		      
+95 01       #    Report Count (1)															      
+75 08       #    Report Size (8)																      
+81 01       #    Input (Cnst,Ary,Abs)													      
+95 05       #    Report Count (5)															      
+75 01       #    Report Size (1)																      
+05 08       #    Usage Page (LEDs)															      
+19 01       #    Usage Minimum (Num Lock)											      
+29 05       #    Usage Maximum (Kana)													      
+91 02       #    Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 01       #    Report Count (1)																		
+75 03       #    Report Size (3)																			
+91 01       #    Output (Cnst,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)		
+95 06       #    Report Count (6)																		
+75 08       #    Report Size (8)																			
+15 00       #    Logical Minimum (0)																	
+26 FF 00    #    Logical Maximum (255)																
+05 07       #    Usage Page (Keyboard/Keypad)												
+19 00       #    Usage Minimum (Undefined)														
+2A FF 00    #    Usage Maximum																				
+81 00       #    Input (Data,Ary,Abs)																
+C0          #End Collection								
+
+#25         
+05 0C       #Usage Page (Consumer Devices)																   
+09 01       #Usage (Consumer Control)																		     
+A1 01       #Collection (Application)																		     
+85 02       #    Report ID (2)																						   
+19 00       #    Usage Minimum (Undefined)																   
+2A 3C 02    #    Usage Maximum (AC Format)																   
+15 00       #    Logical Minimum (0)																			   
+26 3C 02    #    Logical Maximum (572)																		   
+95 01       #    Report Count (1)																				     
+75 10       #    Report Size (16)																				     
+81 00       #    Input (Data,Ary,Abs)																		     
+C0          #End Collection		
+
+#25																			     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 05       #    Report ID (5)																						   															     
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 00       #    Usage Minimum (Undefined)																   
+29 37       #    Usage Maximum																						   
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection	
+
+#25																					     
+05 01       #Usage Page (Generic Desktop)																     
+09 06       #Usage (Keyboard)																						     
+A1 01       #Collection (Application)																		     
+85 06       #    Report ID (6)																						   
+95 38       #    Report Count (56)																				   
+75 01       #    Report Size (1)																					   
+15 00       #    Logical Minimum (0)																			   
+25 01       #    Logical Maximum (1)																			   
+05 07       #    Usage Page (Keyboard/Keypad)														     
+19 38       #    Usage Minimum (Keyboard ] and })												     
+29 6f       #    Usage Maximum (Keypad =)																     
+81 02       #    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)							   
+C0          #End Collection			
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 091f40
+09020d 2800
+09020e 2801
+09020f 090012
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+0904e8
+090202#ProductID
+097021
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT5.0 KEYBOARD
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18
+#Manufacturer Name
+0d 00 03 28 01 02
+0e 00 29 2a 06 59 69 43 68 69 70			#IOS 13.5.1
+#Characteristic: pnp id
+0f 00 03 28 01 02
+10 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
+
+#Primary service: HID
+11 00 00 28 02 12 18
+#Characteristic:Protocol mode
+12 00 03 28 01 06
+13 00 4e 2a 01 01
+#Characteristic: hid report
+14 00 03 28 01 12   
+15 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+16 00 02 29 02 00 00	
+17 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+18 00 03 28 01 12  
+19 00 4d 2a 02 00 00
+1a 00 02 29 02 00 00
+1b 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1c 00 03 28 01 12   
+1d 00 4d 2a 02 00 00 	#hid report	led handle write
+1e 00 02 29 02 00 00	
+1f 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+20 00 03 28 01 0e   
+21 00 4d 2a 02 00	00	#hid report	led handle write
+22 00 02 29 02 00 00	
+23 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+24 00 03 28 01 02
+25 00 4b 2a 78
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff  				
+03 15  		
+00 26  		
+ff 03 		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+05 01
+09 80
+A1 01
+85 03
+15 00
+25 01
+75 01
+95 03
+19 81
+29 83
+81 02
+95 01
+75 05
+81 03
+C0
+
+#Characteristic:Hid information
+26 00 03 28 01 02
+27 00 4a 2a 04 11 01 00 01        
+#Characteristic
+28 00 03 28 01 04
+29 00 4c 2a 01 00
+
+#Primary Service: BAS
+2a 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+2b 00 03 28 01 12 
+2c 00 19 2a 01 64 
+#Client Characteristic Configuration
+2d 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:15 00
+mem_att_report2:1d 00
+mem_att_report3:19 00
+mem_att_report_battery:2c 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+08 00 #min interval
+08 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT5.0 KEYBOARD
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT5.0 KEYBOARD
+
+mem_version_yy_mm_dd:20 21 12 24		#version data 20211224
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:01    #01 VINLPM      #02 HVIN      #04 GPIO
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_pair_state:60
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 5d 00 #10 min
+mem_24g_enter_hibernate_max:ff ff ff ff
+mem_24g_short_sleep_counter:e8 fd 00 #00 00 0a
+
+mem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: patch/sched.rom
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/patch/sched.rom	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/patch/sched.rom	(working copy)
@@ -0,0 +1,684 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+0a   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+3a   #mem_patch2C
+ce   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+
+mem_customize_timer_setup:  20 00		# 20:10ms  30:15ms
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:36 08 c2 08 66 22    
+mem_local_name_length:
+'BT3.0 Keyboard
+mem_sniff_param_interval:0e 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+3601b6
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 35a5 35a3 0822 259f
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+25ff # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 091f40
+09020d 2800
+09020e 2801
+09020f 090012
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+0904e8
+090202#ProductID
+097021
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18
+#Manufacturer Name
+0d 00 03 28 01 02
+0e 00 29 2a 06 59 69 43 68 69 70			#IOS 13.5.1
+#Characteristic: pnp id
+0f 00 03 28 01 02
+10 00 50 2a 07 02 e8 04 21 70 01 00		# SAMSUNG soft keyboard,setup shortcuts
+
+#Primary service: HID
+11 00 00 28 02 12 18
+#Characteristic:Protocol mode
+12 00 03 28 01 06
+13 00 4e 2a 01 01
+#Characteristic: hid report
+14 00 03 28 01 12   
+15 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+16 00 02 29 02 00 00	
+17 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+18 00 03 28 01 12  
+19 00 4d 2a 05 00 00 00 00 00
+1a 00 02 29 02 00 00
+1b 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1c 00 03 28 01 12   
+1d 00 4d 2a 02 00 00 	#hid report	led handle write
+1e 00 02 29 02 00 00	
+1f 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+20 00 03 28 01 0e   
+21 00 4d 2a 02 00	00	#hid report	led handle write
+22 00 02 29 02 00 00	
+23 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+24 00 03 28 01 0a
+25 00 4b 2a a0		#length 66+25+60=160=0xa0
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+#Characteristic:Hid information
+26 00 03 28 01 02
+27 00 4a 2a 04 11 01 00 01        
+#Characteristic
+28 00 03 28 01 04
+29 00 4c 2a 01 00
+
+#Primary Service: BAS
+2a 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+2b 00 03 28 01 12 
+2c 00 19 2a 01 64 
+#Client Characteristic Configuration
+2d 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:15 00
+mem_att_report2:1d 00
+mem_att_report3:19 00
+mem_att_report_battery:2c 00
+mem_le_rx_window:50
+
+mem_le_battery_level_display_enable:01
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+08 00 #min interval
+08 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT4.2 Keyboard
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT4.2 Keyboard
+
+mem_version_yy_mm_dd:20 21 12 24		#version data 20211224
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:04#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:60 09     #200us 
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_pair_state:c2
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 5d 00 #10 min
+mem_24g_enter_hibernate_max:ff ff ff ff
+mem_24g_short_sleep_counter:e8 fd 00 #00 00 0a
+
+mem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: patch/sys.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/sys.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: patch/utilities.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: patch/utilities.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: ram.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/ram.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/ram.c	(working copy)
@@ -0,0 +1,8 @@
+
+extern void YC_System_Main(void);
+
+
+void main()
+{
+	YC_System_Main();
+}
Index: sys.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/sys.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/sys.h	(working copy)
@@ -0,0 +1,77 @@
+#ifndef _YC_SYSTEM_H_
+#define _YC_SYSTEM_H_
+#include "common.h"
+
+#define SYSTEM_CONTROL_ENABLE
+#define MULTISYSTEM_ENABLE
+#define PC_SLEEP_STATUS_GET
+
+
+#define STANDBY_TIMER_30MIN				3600		// 500ms*3600 = 30min
+#define STANDBY_TIMER_10MIN				1200		// 500ms*1200 = 10min
+#define STANDBY_TIMER_5MIN				600		// 500ms*600 = 5min
+
+#define RECONNECT_TIMER_5S				10			// 500ms*10 = 5s
+#define RECONNECT_TIMER_10S			20			// 500ms*20 = 10s
+
+#define BT_PAIRING_TIME_OUT_2MIN		240			// 500ms*240 = 2min
+#define BT_PAIRING_TIME_OUT_1MIN		120			// 500ms*120 = 1min
+#define G24_PAIRING_TIME_OUT_20S		40			// 500ms*40 = 20s
+
+#define KB_NUM_CAPS_LED_ON_TIMER    	120			// 500ms*120 = 1min
+
+#define KB_POWERON_LED_ON_TIMER		30			// 100ms*30 = 3s
+
+
+typedef enum c51_ble_state_enum
+{
+	CHANGE_TO_BLE_DISCONNECT =0,
+	CHANGE_TO_BLE_INDIR_ADV = 1,
+	CHANGE_TO_BLE_DIRECT_ADV,
+	CHANGE_TO_BLE_CONNECTING,
+	CHANGE_TO_BLE_CONNECTED,
+}C51_BLE_STATE;
+
+typedef enum c51_br_state_enum{
+	CHANGE_TO_BR_DISCONNECT =0,
+	CHANGE_TO_BR_DISCOVERY = 1,
+	CHANGE_TO_BR_RECONNECT,
+	CHANGE_TO_BR_CONNECTING,
+	CHANGE_TO_BR_CONNECTED,
+}C51_BR_STATE;
+
+typedef enum c51_24g_state_enum{
+	CHANGE_TO_24G_DISCONNECTED =0,
+	CHANGE_TO_24G_PAIRING= 1,
+	CHANGE_TO_24G_CONNECTING,
+	CHANGE_TO_24G_CONNECTED,
+}C51_24G_STATE;
+
+typedef enum c51_ble_connecting_substate_enum
+{
+	CHANGE_TO_BLE_SUB_NONE=0,
+	CHANGE_TO_BLE_SUB_INIT,
+	CHANGE_TO_BLE_SUB_PINCODE,
+	CHANGE_TO_BLE_SUB_PINCODE_OK,
+}C51_BLE_CONNECTING_SUBSTATE;
+
+typedef enum c51_br_connecting_substate_enum
+{
+	CHANGE_TO_BR_SUB_NONE =0,
+	CHANGE_TO_BR_SUB_INIT,
+	CHANGE_TO_BR_SUB_PINCODE,
+	CHANGE_TO_BR_SUB_PINCODE_OK,
+}C51_BR_CONNECTING_SUBSTATE;
+
+typedef enum c51_24g_connecting_substate_enum
+{
+	CHANGE_TO_24G_SUB_NONE=0,
+	CHANGE_TO_24G_SUB_INIT ,
+}C51_24G_CONNECTING_SUBSTATE;
+
+void System_long_sleep();
+void System_Reset_Connect();
+void YC_adc_init();
+
+
+#endif
Index: sys.c
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/sys.c	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/sys.c	(working copy)
@@ -0,0 +1,1052 @@
+#include "sys.h"
+#include "gpio.h"
+#include "kbhid.h"
+#include "ipc.h"
+#include "iic.h"
+#include "keyscan.h"
+#include "global_variable.h"
+#include "kb_process.h"
+
+/////////////////////////////////////////////////////////////////
+static void System_clear_mem()
+{
+	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
+	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
+	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
+	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
+	xmemclear(hidBuff,9);
+	xmemclear(multikey,9);
+ 
+	delayChgInvTimer = 0;
+	action_timeout = 0;
+	switch_role_timer = 0;
+
+	iOS_rec_pinCode = 0;
+	pinCode_flag = 0;
+	power_on_flag = 0;
+	repeat_send_24g = 0;
+	get_24g_led_send = 0;
+	ble_reconnect_flag = 0;
+	press_long_time_flag = 0;
+	mult_key_status = 0;
+	long_press_flag = 0;
+	standard_key_release_flag = 0;
+	fn_flag = 0;
+	fn_lock_flag = 0;
+
+	mult_key_value = 0;
+	m_caps_num_lock = 0xf0;
+	m_caps_num_lock_last = 0xf0; 
+	m_reconnect_continue = 0;
+	ble_send_secutiry_request_timer = 0;
+}
+
+static void System_IIC_clk_setup()		// 400KHz
+{
+	REG_IICD_SCL_LOW  =  0x0d;
+   	REG_IICD_SCL_HIGH  =  0x0e;
+   	REG_IICD_START_SETUP  = 0x0e;
+   	REG_IICD_START_HOLD  = 0x0e;
+  	REG_IICD_STOP_SETUP  = 0x0e;
+   	REG_IICD_DATA_SETUP  = 0x0d;
+}
+
+static void System_Hardware_init()
+{
+	System_IIC_clk_setup();
+	KS_Initialize();
+	LED_all_shutdown();
+}
+
+
+void System_Software_init()
+{
+	System_clear_mem();
+	YC_adc_init();
+	g_variable.release_data =1;
+	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+	g_variable.recon_count = 0;
+	g_variable.test_buff = 0xff;
+	le_lap_temp[0] = m_le_lap[3];
+	le_lap_temp[1] = m_le_lap[4];
+	le_lap_temp[2] = m_le_lap[5];
+}
+
+static void System_Hardware_reset()
+{
+	m_reset_reg = 1;
+	while(1);
+}
+
+void System_long_sleep()
+{ 
+	m_reconnect_continue = 0;
+	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+}
+
+void System_G24_long_lpm()
+{
+	LED_all_shutdown();
+	m_24g_pairing_sm = 0xff;
+	g_variable.g24_long_sleep_flag = 1;
+#ifdef PC_SLEEP_STATUS_GET	
+	m_caps_num_lock = 0xf0;
+	m_caps_num_lock_last = 0xf0; 
+#endif	
+	m_24g_enter_hibernate[0]	= 0xff;
+	m_24g_enter_hibernate[1]	= 0xff;
+	m_24g_enter_hibernate[2]	= 0xff;
+	m_24g_enter_hibernate[3]	= 0xff;
+}
+
+void System_Reset_Connect()
+{
+	System_Hardware_reset();
+}
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////
+static void kb_cb_Hid(byte *p,byte len) {
+	//p[0] is hid type,always is 1(kb) now
+	byte temp = p[1];
+
+	if (len<2) {
+		return;
+	}
+}
+
+static void kb_cb_event(byte evt)
+{
+#ifdef BT_FAST_CONNECT_ENABLE
+	xbyte bt_name_string[18];
+#endif	
+
+	switch (evt) 
+	{
+
+case IPC_EVT_HIBERNATE_WAKE:
+case IPC_EVT_RESET:
+		System_Hardware_init();
+		System_Software_init();
+
+		IIC_Read(EEPROM_BATTERY_SHUTDOWN_FLAG ,1 ,(byte *)&g_variable.battery_shutdown_flag);
+		if(g_variable.battery_shutdown_flag == 1)
+		{	
+			while(m_adcCurrentValue < m_adc0vBase) IPC_WaitLpm();
+
+			if(m_adcCurrentValue < g_variable.battery_level_shutdown)
+			{
+				g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+				g_variable.powerOn_timer = 0;
+				IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+				break;
+			}
+		}		
+		IIC_Read(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		Delay1ms(10);
+		if(g_variable.system_mode > OSMODE_ANDROID)
+		{
+			g_variable.system_mode = OSMODE_WINDOWS;
+			IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
+		}
+		
+
+		g_variable.current_device_num = g_variable.last_device_num;
+		LED_device_poweron();
+		Delay1ms(10);
+		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
+		{
+			g_variable.ble_ramdon_lap1 = m_adc3vValue;
+			g_variable.ble_ramdon_lap2 = m_adc0vBase;
+		}
+		YC_start_reconnect();
+		break;
+	case IPC_EVT_WAKEUP:
+		System_IIC_clk_setup();
+		KS_Initialize();
+		break;
+
+// connection event
+	case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+	case IPC_EVT_CLEAR_LINKKEY:
+		if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+		{
+			xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+			Delay1ms(200);
+			GPIO_Setout(EEPROM_WP_GPIO,0);
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+			GPIO_Setout(EEPROM_WP_GPIO,1);
+		}
+		break;
+	case IPC_EVT_RECONNECT_STANDY:
+		YC_load_record_list(recon_index);
+		break;		
+		
+// 2.4G event	
+	case IPC_EVT_24G_PAIRING_COMPLETE:
+	case IPC_EVT_24G_ATTEMPT_SUCCESS:
+		g_variable.g24_currentState =  CHANGE_TO_24G_CONNECTED;
+		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+		YC_clear_reconnect_flag();
+		g_variable.pairing_g24_timeout = 0;
+		g_variable.release_data = 0;
+		g_variable.last_device_num = 0xfe;
+		g_variable.current_device_num = 0xfe;
+		m_24g_led_flag = KB_24G_LED_ACK_TYPE;
+		delayChgInvTimer = 10;
+
+		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
+		{
+			fn_lock_flag = 0;
+			fast_connect_flag = 0;
+			g_variable.system_mode = OSMODE_WINDOWS;
+			g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+			if(m_24g_paring_addr[0] != 0x0f || m_24g_paring_addr[1] != 0x0f ||
+				m_24g_paring_addr[2] != 0x0f || m_24g_paring_addr[3] != 0x0f)
+				{
+					g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+					YC_update_eeprom_data();
+				}
+		}
+		else
+		{
+			if(!g_variable.powerOn_timer)
+			;//GPIO_Setout(G24_LED_GPIO,LED_OFF);
+		}
+		break;
+	
+	case IPC_EVT_24G_ATTEMPT_FAIL:	
+		g_variable.g24_currentState =  CHANGE_TO_24G_DISCONNECTED;
+		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+		g_variable.sleepTimer = 0;
+		g_variable.release_data = 1;
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_clear_reconnect_flag();
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+		}
+		break;
+
+
+		
+// BT3.0 event
+	case IPC_EVT_BB_CONNECTED:
+		g_variable.br_currentState = CHANGE_TO_BR_CONNECTING;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_INIT;
+		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		if ((m_ui_state_map & 0x8000) == 0x8000)
+		{
+			switch_role_timer = 50;
+		}
+		break;
+	case IPC_EVT_HID_CONNECTED:
+		g_variable.br_currentState = CHANGE_TO_BR_CONNECTED;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+		g_variable.last_device_num = g_variable.current_device_num;
+	#ifdef BT_FAST_CONNECT_ENABLE				
+		if(g_variable.fast_connect_send_name)
+		{
+			g_variable.fast_connect_send_name = 0;
+
+			bt_name_string[0] = HID_REPORTID_FAST_CONN_NAME;
+			if(m_local_name_length > 17)
+				bt_name_string[1] = 17;
+			else
+				bt_name_string[1] = m_local_name_length;
+			
+			dmemcpy(bt_name_string+2, &m_local_name_length+1, bt_name_string[1]);
+			IPC_TxBREDRHidData(bt_name_string,bt_name_string[1]+2);
+		}
+	#endif	
+		g_variable.sleepTimer = 0;
+		
+		YC_clear_reconnect_flag();
+		g_variable.release_data = 0;
+		switch_role_timer = 0;
+		kscurrmult = 0x1a;
+		iOS_rec_pinCode = 0;	
+		
+		while( (m_remote_addr[0]==0)&&(m_remote_addr[1]==0)&&(m_remote_addr[2]==0)
+			&&(m_remote_addr[3]==0)&&(m_remote_addr[4]==0)&&(m_remote_addr[5]==0));
+		IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+		break;
+	case IPC_EVT_LINKKEY_GENERATE:
+		if(g_variable.pairing_timeout)
+		{
+			fn_lock_flag = 0;
+
+			//g_variable.system_mode = OSMODE_WINDOWS;
+			bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+			YC_clear_BT_same_address_record();
+			g_variable.update_eeprom_flag = 3;
+
+			g_variable.pairing_timeout = 0;
+		}
+		g_variable.delay_enter_lpm_timer = 10;
+		m_lpm_mode = 1;
+		if(!g_variable.powerOn_timer)
+			LED_device_poweroff();
+		break;
+	case IPC_EVT_SWITCH_FAIL_MASTER:
+		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+		Delay1ms(10);
+		break;	
+	case IPC_EVT_PINCODE_REQ:
+		ipcPinlen = 0;
+		pinCode_flag = 1;
+		switch_role_timer = 0;
+		if ((m_ui_state_map & 0x8000) == 0x8000)
+		{
+			iOS_rec_pinCode = 1;	
+			ipcPinlen = 4;
+			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+			return;
+		}
+		g_variable.recon_count = 0;
+		g_variable.br_currentSubState =  CHANGE_TO_BR_SUB_PINCODE;
+		g_variable.br_currentState =CHANGE_TO_BR_CONNECTING;
+		break;	
+	case IPC_EVT_RECONN_PAGE_TIMEOUT:
+	case IPC_EVT_RECONN_FAILED:
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+		{
+			g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+			g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+			return;
+		}		
+	case IPC_EVT_BB_DISCONNECTED:
+		g_variable.history_state = g_variable.br_currentState ;
+		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		g_variable.release_data = 1;
+		switch_role_timer = 0;
+		if (iOS_rec_pinCode == 1)
+		{
+			if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+			{
+				xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+				Delay1ms(200);
+				GPIO_Setout(EEPROM_WP_GPIO,0);
+				IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+				GPIO_Setout(EEPROM_WP_GPIO,1);
+			}
+			iOS_rec_pinCode = 0;
+		}
+
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+			break;
+		}
+
+		if (g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+		{
+			return;
+		}
+
+
+		if (evt == IPC_EVT_RECONN_PAGE_TIMEOUT)
+		{
+			break;
+		}
+		
+		if (g_variable.history_state != CHANGE_TO_BR_CONNECTED)
+		{
+			YC_key_action_handle(KEY_DISCOVERY);
+		}
+		else
+		{
+			System_long_sleep();
+		}
+		g_variable.sleepTimer = 0;
+		break;		
+
+// BT 4.2 event
+	case IPC_EVT_LE_CONNECTED:
+		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
+		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+		if(g_variable.pairing_timeout)
+		{
+			fn_lock_flag = 0;
+			//g_variable.system_mode = OSMODE_WINDOWS;
+			bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+			bd_key_record_list[g_variable.current_device_num - 1].fn_lock = fn_lock_flag;
+		}
+		if(!ble_reconnect_flag)
+			ble_send_secutiry_request_timer = 20;
+		if(!g_variable.powerOn_timer)
+			LED_device_poweroff();
+		g_variable.pairing_timeout = 0;
+		g_variable.sleepTimer = 0;
+		break;
+	case IPC_EVT_LE_PROTOCOL_CONNECTED:
+	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		YC_clear_reconnect_flag();
+		g_variable.release_data = 0;
+		le_send_battery_level_delay_count = 10;
+		g_variable.last_device_num = g_variable.current_device_num;
+		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+		break;
+	case IPC_EVT_LE_ENC_INFO:
+		YC_store_record_list(1, g_variable.current_device_num-1);
+		g_variable.last_device_num = g_variable.current_device_num;
+		g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+		break;
+
+	case IPC_EVT_LE_PINCODE_REQ:
+		le_pin_code = 0;
+		le_pin_code_len = 0;
+		pinCode_flag = 1;
+		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
+		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+		break;
+		
+	case IPC_EVT_LE_DISCONNECTED:	
+		g_variable.history_state = g_variable.ble_currentState ;
+		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		g_variable.release_data = 1;
+		m_le_send_security_request_flag = 0;
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+			break;
+		}
+
+		System_long_sleep();		
+		g_variable.sleepTimer = 0;
+		break;
+	}
+}
+
+
+void LED_timer500ms()
+{
+	if (power_on_flag != 2)
+		return;
+	if (g_variable.pairing_timeout != 0) //bt  pairing
+	{
+		if (g_variable.button_reconnect_flag != 1)
+		{
+			if(g_variable.current_device_num == 1)
+				GPIO_FlipOutBit(BT_LED_GPIO);
+			else if(g_variable.current_device_num == 2)
+				GPIO_FlipOutBit(BT_LED_GPIO);
+			else if(g_variable.current_device_num == 3)
+			{
+				GPIO_FlipOutBit(BT_LED_GPIO);
+				//GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
+			}
+		}
+		else
+		{
+			GPIO_Setout(BT_LED_GPIO,LED_OFF);
+			GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+			//GPIO_Setout(LOWPOWER_LED_GPIO,LED_OFF);
+		}
+	}
+	else if (g_variable.pairing_g24_timeout != 0)
+	{
+		GPIO_FlipOutBit(G24_LED_GPIO);
+		//GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
+	}
+	
+}
+
+void YC_connect_timeout_500ms()
+{
+
+	if(le_send_battery_level_delay_count)
+	{
+		le_send_battery_level_delay_count--;
+		if(!le_send_battery_level_delay_count)
+		{	
+			m_lpm_mode = 1;
+			le_send_battery_level_flag = 1;
+		}
+	}
+	
+//system long sleep timer
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+	{
+		if ((g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED) && m_le_battery_level_display_enable)
+		{
+			if(le_send_battery_level_flag || (g_variable.sleepTimer && !(g_variable.sleepTimer & 0x1f)))		// ble battery level updata each 16 second
+			{
+				le_send_battery_level_flag = 0;
+				multikey[0] = HID_REPORTID_BATTERY;	
+				multikey[1] = g_variable.battery_level_percentage;	
+				IPC_TxHidData(multikey, 2);
+			}
+		}
+		if (g_variable.sleepTimer == STANDBY_TIMER_5MIN) 
+		{
+			YC_disconnect_all_link();
+			g_variable.lockLpm = 1;
+		}
+	}
+	else if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+#ifdef PC_SLEEP_STATUS_GET	
+		if((g_variable.sleepTimer & 0x1f) == 0x10)	// search dongle each 8s
+		{
+			xmemclear(hidBuff,9);
+
+			mult_key_status = 0;
+			hidBuff[0] = HID_REPORTID_1;		// standard key send
+			IPC_TxHidData(hidBuff, 9);
+		}
+#endif	
+		if (g_variable.sleepTimer >= STANDBY_TIMER_5MIN)
+		{
+			System_G24_long_lpm();
+		}
+	}
+	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+	{
+		if (g_variable.sleepTimer >= BT_PAIRING_TIME_OUT_1MIN)
+		{
+			System_G24_long_lpm();
+		}
+	}
+	else
+	{
+		if (g_variable.sleepTimer >= RECONNECT_TIMER_10S)
+		{
+			if(ble_reconnect_flag)
+			{
+				ble_reconnect_flag = 0;
+				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+			}
+			System_long_sleep();
+		}
+	}
+}
+
+
+void YC_wait_disconnect_timer500ms()
+{
+//before discovery/adv,if current state is connected,wait disconnect done
+	if (action_timeout!=0)
+	{
+		action_timeout--;
+		if(action_timeout == 0)
+		{
+			if(g_variable.key_action == KEY_DISCOVERY
+		#if DEVICE_MODE_BT_ONLY
+			&& (m_ui_state_map & 0x4000) != 0x4000)
+		#elif DEVICE_MODE_BLE_ONLY	
+			&& (m_ui_state_map & 0x0008) != 0x0008)
+		#else	
+			&& (m_ui_state_map & 0x4008) != 0x4008)
+		#endif
+			{
+				IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);		
+//				m_lpm_mode = 0;
+				ble_send_secutiry_request_timer = 0;
+				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+				g_variable.pairing_g24_timeout = 0;
+				fast_connect_flag = 0;
+				ble_fast_connect_flag = 0;
+			#if DEVICE_MODE_BT_ONLY
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+			#elif DEVICE_MODE_BLE_ONLY	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+			#else	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+			#endif
+				g_variable.key_action = KEY_NONE;
+			}
+		}
+	}
+
+}
+
+
+void YC_pairing_timerout_500ms()
+{
+//pairing timer
+	if (g_variable.pairing_timeout != 0)
+	{
+		g_variable.sleepTimer = 0;
+		g_variable.fast_connect_send_name = 0;
+		g_variable.pairing_timeout--;
+		if (g_variable.pairing_timeout == 0)
+		{
+			g_variable.current_device_num = g_variable.temp_device_num;
+			g_variable.last_device_num = g_variable.current_device_num;
+		
+			YC_key_action_handle(KEY_STOP_DISCOVERY);
+			System_long_sleep();
+		}
+	}
+
+	if (g_variable.pairing_g24_timeout != 0)
+	{
+		g_variable.sleepTimer = 0;
+		g_variable.pairing_g24_timeout--;
+		if (g_variable.pairing_g24_timeout == 0)
+		{
+//			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+			Delay1ms(10);
+			System_long_sleep();
+		}
+	}
+}
+
+void kb_button_press_timer500ms()
+{
+	
+//key status 
+/*
+	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
+	{
+		if (g_variable.button_timer[0] < 250)
+			g_variable.button_timer[0]++;
+		if (g_variable.button_timer[0] == 2)
+		{
+			YC_key_action_handle(KEY_DISCOVERY);
+		}
+	}
+	else
+		g_variable.button_timer[0] = 0;
+*/		
+	
+	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+	{
+		if (g_variable.button_timer[1] < 250)
+			g_variable.button_timer[1]++;
+		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+		{
+			press_long_time_flag++;
+			if(press_long_time_flag <= 2)
+			{
+				g_variable.button_timer[1] = 0;
+			}
+			else if(press_long_time_flag == 3)
+			{
+				long_press_flag = 1;
+				g_variable.button_timer[1] = 0;
+				System_long_sleep();
+			}
+		}
+	}
+	else
+	{
+		press_long_time_flag = 0;
+		long_press_flag = 0;
+		g_variable.button_timer[1] = 0;
+	}
+		
+	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
+	{
+		g_variable.delay_enter_lpm_timer = 10;
+		if (g_variable.button_timer[2] < 250)
+			g_variable.button_timer[2]++;
+		if (g_variable.button_timer[2] == 6)
+		{
+			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+			{
+				g_variable.button_24G_rec_flag = 0;
+				YC_disconnect_all_link();
+				LED_all_shutdown();
+				Delay1ms(10);
+				YC_key_action_handle(KEY_PAIRING_24G);
+			}
+		}
+	}
+	else
+	{
+		if(g_variable.button_24G_rec_flag)
+		{
+			g_variable.button_24G_rec_flag = 0;
+			YC_key_action_handle(KEY_STOP_DISCOVERY);
+			g_variable.release_data = 1;
+			g_variable.last_device_num = g_variable.current_device_num;
+			g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_NORMAL;
+			YC_update_eeprom_data();
+			System_Reset_Connect();
+		}
+		g_variable.button_timer[2] = 0;
+	}
+
+	
+	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
+	{
+		g_variable.delay_enter_lpm_timer = 10;
+		if (g_variable.button_timer[3] < 250)
+			g_variable.button_timer[3]++;
+		if (g_variable.button_timer[3] == 6)
+		{
+			//do discoverable
+			g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+			g_variable.pairing_g24_timeout = 0;
+			YC_key_action_handle(KEY_DISCOVERY);
+			LED_all_shutdown();
+			g_variable.button_reconnect_flag = 0;
+			g_variable.release_data = 1;
+			g_variable.temp_device_num = g_variable.last_device_num;
+			g_variable.last_device_num = g_variable.current_device_num;
+		}
+	}
+	else
+	{
+		if (g_variable.button_reconnect_flag)
+		{
+			g_variable.button_reconnect_flag = 0;
+
+			if(g_variable.last_device_num !=g_variable.current_device_num)		//switch device,
+			{
+				g_variable.release_data = 1;
+				LED_all_shutdown();
+				g_variable.last_device_num = g_variable.current_device_num;
+				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_NORMAL;
+				
+				YC_disconnect_all_link();
+				YC_update_eeprom_data();
+				System_Reset_Connect();
+			}
+		}
+		g_variable.button_timer[3] = 0;
+	}
+
+/*
+	if (g_variable.button_flag & KEY_FLAG_FN_SYSTEM_MODE_BUTTON)
+	{
+		if (g_variable.button_timer[0] < 250)
+			g_variable.button_timer[0]++;
+		if (g_variable.button_timer[0] == 6)
+		{
+			if(key_value_temp == HID_KEY_I)
+			{
+				g_variable.system_mode = OSMODE_IOS;
+			}
+			else if(key_value_temp == HID_KEY_O)
+			{
+				g_variable.system_mode = OSMODE_MAC;
+
+			}
+			else if(key_value_temp == HID_KEY_U)
+			{
+				g_variable.system_mode = OSMODE_WINDOWS;
+
+			}
+			g_variable.powerOn_timer = 10;
+			if(g_variable.current_device_num == 0 || g_variable.current_device_num == 0xfe)
+			{
+				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_G24;
+			}
+			else	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+			{
+				bd_key_record_list[g_variable.current_device_num - 1].system_mode = g_variable.system_mode;
+				g_variable.update_eeprom_flag = EEPROM_STORE_TYPE_BT;
+			}
+		}
+	}
+	else
+	{
+		g_variable.button_timer[0] = 0;
+	}		
+       */
+}
+
+
+
+
+static void systey_ledflash_1s()
+{
+        	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+	            g_variable.systemlednum++;
+	            if(g_variable.systemlednum == 1)
+	            {
+	                      // GPIO_Setout(BT_LED_GPIO, LED_ON);
+	                      LED_device_poweron();
+	            }
+	            if(g_variable.systemlednum == 2)
+	            {
+	                       g_variable.systemlednum = 0;
+	                       g_variable.systemflag = 0;
+	                       LED_device_poweroff();
+	                   //    if(g_variable.caplockledflag == 0)
+	                        //   GPIO_Setout(BT_LED_GPIO, LED_OFF);
+	            }	            
+	}
+}
+
+
+static void kb_cb_Timer500ms()
+{
+	LED_timer500ms();	
+
+	g_variable.sleepTimer++;
+	// if(g_variable.systemflag)
+	// {
+	//       systey_ledflash_1s();
+    //        }
+	YC_adc_check_timer500ms();
+	YC_connect_timeout_500ms();
+	kb_button_press_timer500ms();
+	YC_wait_disconnect_timer500ms();
+	YC_pairing_timerout_500ms();
+	
+	
+	if((g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+	|| (g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE))
+	{
+		g_variable.sleepTimer = 0;				//wait macOS enter pincode
+	}
+	
+	return;
+}
+
+
+static void kb_cb_Timer100ms()
+{
+
+	if (g_variable.delay_enter_lpm_timer) 
+	{
+		g_variable.delay_enter_lpm_timer --;
+	}
+
+	if(g_variable.recon_delay)
+		g_variable.recon_delay--;
+
+	if(g_variable.one_key_press_wait_release_timer)
+	{
+		g_variable.one_key_press_wait_release_timer--;
+		if(!g_variable.one_key_press_wait_release_timer)
+			g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+	}
+	
+	if (g_variable.powerOn_timer != 0)
+	{	
+		if(g_variable.pairing_g24_timeout ||g_variable.pairing_timeout)
+		{
+			g_variable.powerOn_timer = 0;
+			return;
+		}
+			
+		g_variable.powerOn_timer--;
+		LED_device_poweron();
+		if (!g_variable.powerOn_timer)
+		{
+			LED_device_poweroff();
+			GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
+		}
+	}
+	else	if ((g_variable.pairing_timeout == 0) && (g_variable.pairing_g24_timeout == 0))  //  pairing
+	{
+		if(g_variable.battery_low_led_flash_interval)
+		{
+			g_variable.battery_low_led_flash_interval--;
+			if(g_variable.battery_low_led_flash_interval < 8)
+			{
+				m_lpm_mode = 0;
+				if(g_variable.battery_low_led_flash_interval & 0x02)
+				{
+					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+				}
+				else
+				{
+					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
+				}	
+			}
+			else
+			{
+				m_lpm_mode = 1;
+				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+			}	
+			if(!g_variable.battery_low_led_flash_interval)
+				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+		}
+	}
+	
+// The dongle must receive data within 200ms, otherwise it will be forced to lift
+	if(!long_press_flag)
+	{
+		if (repeat_send_24g == 1)
+		{
+			g_variable.sleepTimer = 0;	
+			repeat_send_24g = 0;
+
+			 if (multikey[0] != 0)
+			{
+				IPC_TxHidData(multikey, 3);
+			}
+			else if (hidBuff[0] != 0)
+			{
+
+				IPC_TxHidData(hidBuff,9);
+			}
+		}
+	}
+
+//role switch time out
+	if (switch_role_timer != 0)
+	{
+		switch_role_timer--; 
+		if (switch_role_timer == 0)
+		{
+			System_Reset_Connect();
+		}
+	}
+
+// ble delay send secutiry request
+	if(ble_send_secutiry_request_timer)
+	{
+		ble_send_secutiry_request_timer--;
+		if(!ble_send_secutiry_request_timer)
+		{
+			if(!m_le_send_security_request_flag)
+			{
+				IPC_TxControlCmd(IPC_CMD_LE_SMP_SECURITY_REQUEST);
+			}
+		}
+	}
+
+	if (delayChgInvTimer != 0)
+	{
+		delayChgInvTimer--;
+		if (delayChgInvTimer == 0)
+		{
+			if( m_24g_led_flag)
+			{
+				m_24g_led_flag = 0;
+			}	
+	
+			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+			{
+				kscurrmult = 0x0c;
+			}
+			else if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+			{
+				kscurrmult = 0x3a;
+			}
+		}
+	}
+}
+
+
+
+static tIPCControlBlock cb = 
+{
+	kb_cb_event,
+	NULL,
+	kb_cb_Timer500ms,
+	kb_cb_Timer100ms,
+	NULL,
+	kb_cb_Hid
+};
+
+static void kb_cb_init()
+{
+	IPC_Initialize(&cb);
+}
+
+
+
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+void YC_System_Main(void)
+{
+	kb_cb_init();
+	while(1) {
+		IPC_DealSingleStep();
+		kb_need_keyscan();
+		YC_update_eeprom_data();
+		LED_handle();
+
+#ifdef PC_SLEEP_STATUS_GET		
+		if(m_pc_sleep_flag)
+		{
+			System_G24_long_lpm();
+		}
+#endif		
+		switch (current_task) {
+		case FIX_ENTER_HIBERNATE:
+			KS_Unistall();
+			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+			LED_all_shutdown();
+			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+			while(1);
+			break;
+			
+		case FIX_ENTER_LPM:
+			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer  ||control_key_flag || fn_flag ||g_variable.one_key_press_wait_release_timer
+			) 
+			{
+				IPC_AbandonLpm();
+				break;
+			}
+			else
+			{
+				KS_Unistall();
+				if(g_variable.g24_long_sleep_flag)
+					LED_all_shutdown();				
+				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+				break;
+			}
+		}
+	}
+}
+
Index: type.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/type.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/type.h	(working copy)
@@ -0,0 +1,25 @@
+#ifndef _YC_DEFINE_H_
+#define _YC_DEFINE_H_
+
+#define PUBLIC 
+#define LOCAL static
+
+typedef unsigned char byte;
+typedef unsigned char idata ibyte;
+typedef volatile unsigned char xdata xbyte;
+typedef volatile unsigned short xdata xword;
+typedef unsigned char xdata * pxbyte;
+typedef unsigned char xdata * data pxdbyte;
+typedef unsigned   short   word;
+typedef unsigned   long    ulong;
+typedef signed     long    s32_t;
+typedef bit bool;
+
+#define true 1
+#define false 0
+#ifndef NULL
+#define NULL (0)
+#endif
+
+#endif
+
Index: util/DeleteNote.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/DeleteNote.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/DeleteNote.pl	(working copy)
@@ -0,0 +1,27 @@
+
+#print "输入注释的标志:";
+
+#chomp ($text = <STDIN>);
+
+#print $text;
+
+###########################
+#该脚本的功能为删除，#为注释的注释代码。
+
+$Sched_path=$ARGV[0];
+
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	chomp @Sched[0];
+	$sched = @Sched[0]."\n";
+}
+
+open(Sched,">$Sched_path")||die("Cannot open files\n");
+print Sched @sched;
+close(Sched);
Index: util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/crc16.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/crc16.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/crc16.pl	(working copy)
@@ -0,0 +1,27 @@
+$debug = 0;
+$crc = 0xffff;
+$i = 0;
+$offset = 0xffff;
+$source_file = $ARGV[0];
+$offset = $ARGV[1];
+
+open(EEP,"$source_file") or die $!;
+
+while (<EEP>) {    
+	$c = hex();
+
+  if($i >= $offset){
+  	if($debug){printf "%02x\t", $c;}
+  	$crc  = ($crc >> 8) | ($crc << 8);
+		$crc ^= $c & 0xff;
+		$crc ^= ($crc & 0xff) >> 4;
+		$crc ^= $crc << 12;
+		$crc ^= ($crc & 0xff) << 5;
+		$crc &= 0xffff;
+  }
+  $i ++;
+  if($debug){printf "%02x\t", $crc;}
+  printf "%02x\n", $c;
+}
+
+printf "%02x\n%02x\n", (($crc >> 8) & 0xff),($crc & 0xff);
Index: util/eeprom2bin.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/eeprom2bin.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/eeprom2bin.pl	(working copy)
@@ -0,0 +1,15 @@
+
+$source_file = $ARGV[0];
+#$dest_file = $ARGV[1];
+
+
+open(EEP,"$source_file") or die $!;
+open(BINFILE, ">eeprom.bin") or die $!;
+binmode(BINFILE);
+while (<EEP>) {
+	printf BINFILE "%c", hex();
+}
+close(EEP);
+close(BINFILE);
+    
+   
Index: util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/eeprom2fulleeprom.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: util/hex2mif.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/hex2mif.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/hex2mif.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/hex2mif.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/hex2mif.pl	(working copy)
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# 2005 - David Grant.
+# Take an ihex input from STDIN, and write a .mif file to STDOUT
+# This script could probably be implemented with something like:
+#    $#!@_%^$@%$@%$_!^$@#^@%$#@_%$@^&!%$_!%!%&$*(#^#@%^) 
+# But I perfer the somewhat readable version.
+
+# Flow from within the Nios2 SDK Shell:
+# nios2-elf-as file.asm -o file.o
+# nios2-elf-objcopy file.o --target ihex file.hex
+# cat file.hex | perl hex2mif.pl > file.mif
+
+my @rom = ();
+my @ram = ();
+
+sub conv {
+	my ($in) = @_;
+	$out = substr($in,6,2).substr($in,4,2).substr($in,2,2).substr($in,0,2);
+	return hex $out;
+}
+
+sub writeromfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		printf ("%02x\n", $buf[$x]);
+	}
+}
+
+sub writebinfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		for($y=0;$y<8;$y++) {
+			printf ("%d", $buf[$x] & 1<<(7-$y) ? 1 : 0);
+		}
+		printf "\n" if(($x & 3) == 3);
+	}
+}
+
+sub writemiffile {
+	my (@buf) = @_;
+	my($x);
+	print  ("WIDTH=8;\n");
+	print ("DEPTH=".@buf.";\n");
+	print ("CONTENT BEGIN\n");
+	for($x=0; $x<@buf; $x++) {
+		printf ("\t%04x : %02x;\n", $x, $buf[$x]);
+	}
+	print ("END;\n");
+}
+
+if($ARGV[0] eq "ram" || $ARGV[0] eq "rammif")
+{
+	$org = 0x8000;
+	$limit = 0xffff;
+} elsif($ARGV[0] eq "rom" || $ARGV[0] eq "bin" || $ARGV[0] eq "mif" || $ARGV[0] eq "rommif" ) {
+	$org = 0;
+	$limit = 0x7fff;
+} else {
+	$org = 0;
+	$limit = 0xffffff;
+}
+
+
+$org = 0;
+$limit = 0x7fff;
+
+while (<STDIN>) {
+	$l = $_;
+	next if(!/\w/);
+	$count = (hex substr($l, 1, 2));
+	$addr = (hex substr($l, 3, 4));
+	$type = (hex substr($l, 7, 2));
+	last if $type eq 1;
+	if($type == 4) {
+		$org = -(hex substr($l, 9, 4))*0x10000;
+	}
+	if($addr >= $org && $addr <= $limit) 
+	{
+		$addr*=4 if($ARGV[0] eq "bin");
+		$addr -= $org;
+		for($x=0; $x<$count; $x++) {
+			$rom[$addr + $x] = (hex substr($l, 9+2*$x, 2)) ; 
+		}
+	}
+}
+
+if($ARGV[0] eq "rom" || $ARGV[0] eq "ram" || $ARGV[0] eq "mem")
+{
+	writeromfile(@rom);
+}
+elsif($ARGV[0] eq "bin")
+{
+	writebinfile(@rom);
+}
+else
+{
+	writemiffile(@rom);
+}
+
Index: util/memalloc.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/memalloc.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/memalloc.pl	(working copy)
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+$path="output/bt_format.meta";
+open file, $path;
+@f = <file>;
+close file;
+open file, ">$path";
+$path =~ s/\/.*//;
+open file1, ">output/memmap.format";
+$xaddr = 0x4000;
+$addr = 0;
+if($#ARGV == 1) {
+	$addr = hex($ARGV[0]);
+	$xaddr = hex($ARGV[1]);
+}
+for($i = 0;$i < @f;$i++) { $cmalloc[$i] = (); }
+for($i = 0;$i < @f;$i++) { 
+	$_ = $f[$i];
+	$start = 1 if(/^\s*memalloc\s*\(\s*$/);
+	$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);
+	$start = 3 if(/^\s*omemalloc\s*\(\s*$/);
+	$start = 10 + $1 if(/^\s*cmemalloc\s+([0-9])\s*\(\s*$/);
+	if($start) {
+		if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			if($start == 1) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				$bstr .= $str;
+				$sstr .= $str;
+			} elsif($start == 2) {
+				$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+				$xaddr += $1;
+				$xstr .= $str;
+			} else {
+				push @ostr, $_;
+			}
+		}
+		if(/^\s*\)\s*$/) {
+			if(@ostr > 0) {
+				if($start == 3) {
+					push @omalloc,[@ostr];
+				} elsif($start > 9) {
+					$j = $start - 10;
+					push @{$cmalloc[$j]},@ostr;
+				} 
+			}
+			$start = 0;
+			@ostr = ();
+		}
+	} else {
+		$sstr .= $_;
+	}
+}
+for($i = 0;$i <= $#cmalloc;$i++) {
+	push @omalloc,$cmalloc[$i];
+#	for($j = 0;$j <= $#{$cmalloc[$i]};$j++) {		print $cmalloc[$i][$j];	}
+}
+
+$xend = $xaddr;
+for($i = 0;$i <= $#omalloc;$i++) {
+	for($j = 0, $oaddr = $xaddr;$j <= $#{$omalloc[$i]};$j++) {
+		if($omalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			$str = sprintf "0x%04x %s%s\n", $oaddr, $2, $3;
+			$oaddr += $1;
+			$xstr .= $str;
+		}
+	}
+}
+$xend = $oaddr if($oaddr > $xend);
+print file $xstr, $sstr;
+print file1 $bstr, $xstr;
+close file;
+close file1;
+printf "\nLast allocated address is %04x\n", $addr;
+printf "\nLast allocated xmem address is %04x\n", $xend;
\ No newline at end of file
Index: util/mergepatch.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/mergepatch.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/mergepatch.pl	(working copy)
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+$defs = "";
+$fmt = 0;
+
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
+		if(/^ifdef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 1 : 0) & $valid[$#valid];
+		} elsif(/^ifndef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 0 : 1) & $valid[$#valid];
+		} elsif(/^else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+parseif("output/bt_program23.meta");
+$fmt = 1;
+parseif("output/bt_format.meta");
+
+
Index: util/sortsched.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/sortsched.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/sortsched.pl	(working copy)
@@ -0,0 +1,163 @@
+
+
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+
+open(Sched,"$Sched_path")||die("Cannot open files1\n");
+@sched=<Sched>;
+@sched[-1] = "";
+close(Sched);
+#open(Sched_test,">ResultsFile.rom")||die("Cannot open files2\n");
+#print Sched_test ("");
+#close (Sched_test);
+#open(Sched_test,">ResultsFile.rom")||die("Cannot open file3s\n");
+open(Sched_test1,">$Sched_test_path")||die("Cannot open files4\n");
+#@Sched_test=<Sched_test>;
+@Data[0]="";
+$Data_num=0;
+@Address_num;
+@OriginalRecord;
+foreach $sched (@sched)
+{
+	if($sched=~/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/)
+	{
+		#$lap_flag = 0;
+		#$le_lap_flag = 0;
+		#if($sched=~/40a0:/)
+		#{
+		#	$lap_data = $sched;
+		#	$lap_flag = 1;
+		#}
+		#elsif($sched =~ /44a0:/)
+		#{
+		#	$le_lap_data = $sched;
+		#	$le_lap_flag = 1;
+		#}
+		#else
+		#{
+			$Data_num++;
+			@OriginalRecord[$Data_num]=$sched;
+			@snap_variable=split(/[#\n]/,$sched);
+			@Data[$Data_num]=@snap_variable[0]."\n";
+		#}
+	}
+	else
+	{
+		#if($lap_flag == 1)
+		#{
+		#	$lap_data .= $sched;
+		#}
+		#elsif($le_lap_flag == 1)
+		#{
+		#	$le_lap_data .= $sched;
+		#}
+		#else
+		#{
+			@OriginalRecord[$Data_num].=$sched;
+			@snap_variable=split(/[#\n]/,$sched);
+			@Data[$Data_num].=@snap_variable[0]."\n";
+		#}
+	}
+}
+@sort_Data = sort(@Data);
+@OriginalRecord=sort(@OriginalRecord);
+$PreviousADDR=0;
+$CurrentADDR=0;
+$PreviousData="";
+$CurrentData="";
+$I=0;
+$len_sort_Data=@sort_Data;
+$NextADDR="";
+for($i=0;$i<$len_sort_Data;$i++)
+{
+	$sort_Data=@sort_Data[$i];
+	@snap_variable=split(/:/,$sort_Data);
+	$WData=@snap_variable[1];
+	
+	if($WData =~ /[1-9a-fA-F]/ && hex(@snap_variable[0]) >= 16384){
+	$WADDR=@snap_variable[0];
+	@sort_Data[$i]=@OriginalRecord[$i];
+	@LLL[$i]=0;
+	if($NextADDR eq $WADDR){
+		@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+		@sort_Data[$i]=@snap_variable[1];
+		@LLL[$i]=1;
+	}
+	if(@LLL[$i]==0 && hex($PreviousADDR)+6>hex($WADDR)){
+		$LEN=hex($WADDR) - hex($NextADDR);
+		#print $LEN;
+		for($j=0;$j<$LEN;$j++)
+		{
+			@sort_Data[$i-1].="00 "
+		}
+		@sort_Data[$i-1].="\n";
+		@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+		@sort_Data[$i]=@snap_variable[1];
+		@LLL[$i]=1;
+	}
+	if($PreviousADDR eq $WADDR){
+		@sort_Data[$i-1]="";
+		if(@LLL[$i-1]==1){
+			@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+			@sort_Data[$i]=@snap_variable[1];
+			@LLL[$i]=1;
+		}
+	}
+	else{
+		@DataNum=split(/[0-9a-fA-F][0-9a-fA-F]/,$WData);
+		$DataNum=@DataNum;
+		$PreviousADDR=$WADDR;
+		#@sort_Data[$i].="      ".$DataNum."\n";
+		$NextADDR = &hex_add($WADDR,$DataNum);
+	}
+	}
+	else{
+		if(hex(@snap_variable[0]) >= 16384)
+		{
+			@sort_Data[$i]="";
+		}
+	}
+	#@sort_Data[$i].="      ".$NextADDR."\n";
+	#$sort_Data =~ s/\n//;
+	#$sort_Data.="\n";
+}
+#print Sched_test @OriginalRecord;
+#print Sched_test1 $lap_data;
+#print Sched_test1 $le_lap_data;
+print Sched_test1 @sort_Data;
+#print  $lap_data;
+#print  $le_lap_data;
+#for($i=0;$i<$len_sort_Data;$i++)
+#foreach $sort_Data (@sort_Data)
+#{	
+	#$sort_Data=@sort_Data[$i];
+	#print Sched_test $PreviousData;
+	#@snap_variable=split(/:/,$sort_Data);
+	#$CurrentADDR=@snap_variable[0];
+	#$CurrentData=$sort_Data;
+	#print ($CurrentADDR);
+	#if($CurrentADDR-$PreviousADDR==1)
+	#{
+	#	$CurrentVal=@snap_variable[1];
+	#	@snap_variable=split(/\n/,$PreviousData);
+		
+	#	$PreviousData.=" ".$CurrentVal;
+	#	$CurrentData=$PreviousData;
+	#	@sort_Data[$i]="";
+	#	@sort_Data[$i-1]=$CurrentData;
+		#print ($CurrentData."\n");
+	#}
+	#$PreviousADDR=$CurrentADDR;
+	#$PreviousData=$CurrentData;
+	#print Sched_test $CurrentData;
+#}
+#print Sched_test @sort_Data;
+#close(Sched_test);
+close(Sched_test1);
+
+sub hex_add{
+	my($ADDR,$Len)=@_;
+	$data=hex($ADDR);
+	$data=$data+$Len-1;
+	return(sprintf("%04x",$data));
+}
\ No newline at end of file
Index: util/transform_memmap2btreg.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/transform_memmap2btreg.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/transform_memmap2btreg.pl	(working copy)
@@ -0,0 +1,45 @@
+$memmap_path=$ARGV[0];
+$memblocks_path=$ARGV[1];
+$btreg_path=$ARGV[2];
+open(btreg,">$btreg_path");
+print btreg ("");#reset file
+close(btreg);
+open(memmap,$memmap_path);
+open(memblocks,$memblocks_path);
+open(btreg,">>$btreg_path");
+@text = <memmap>;
+print btreg ("#ifndef _BT_REG_H_\n");
+print btreg ("#define _BT_REG_H_\n");
+foreach $text (@text){
+	@word = split (/[\t ]+/,$text);
+	$reg_addr = @word[0];
+	if ($reg_addr =~ /0x[0-9abcdef]*/){#Is 0x0000~0xffff
+		$word1 = @word[1];
+		@reg_name = split(/\/[\/\*]/,$word1);#delete // or /*  */
+		$reg_name = @reg_name[0];
+		$reg_name =~ s/[\r\n]//;#delete Carriage return
+		
+		printf btreg ("#define\t%-40s\t%s\n",$reg_name,$reg_addr);
+		#print btreg ("#define \t $reg_name \t\t\t $reg_addr \n");
+		#print btreg ("@word[1]\n");
+	}
+}
+@text = <memblocks>;
+foreach $text (@text){
+	@word = split (/[\t ]+/,$text);
+	$reg_addr = @word[0];
+	if ($reg_addr =~ /0x[0-9abcdef]*/){
+		$word1 = @word[1];
+		@reg_name = split(/\/[\/\*]/,$word1);
+		$reg_name = @reg_name[0];
+		$reg_name =~ s/[\r\n]//;
+		printf btreg ("#define\t%-40s\t%s\n",$reg_name,$reg_addr);
+		#print btreg ("#define \t $reg_name \t\t\t\t $reg_addr \n");
+		#print btreg ("@word[1]\n");
+	}
+}
+print btreg ("#endif\n");
+close(memblocks);
+close(memmap);
+close(btreg);
+
Index: util/transform_name2addr.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/transform_name2addr.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/transform_name2addr.pl
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/util/transform_name2addr.pl	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/util/transform_name2addr.pl	(working copy)
@@ -0,0 +1,103 @@
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+$Memmap_path=$ARGV[2];
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+open(Sched_test,">$Sched_test_path");
+print Sched_test ("");
+close(Sched_test);
+open(Sched_test,">$Sched_test_path");
+open(Memmap,$Memmap_path)||die("Cannot open files\n");
+@memmap=<Memmap>;
+close(Memmap);
+$type_add=0;
+$type_exchange=0;
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	$sched = @Sched[0];
+	@Sched[0] = "";
+	if($sched =~ /mem[\w]+/)
+	{
+		@memmap_name = split(/[\W]+/, $sched);
+		foreach $memmap_name(@memmap_name)
+		{
+			if($memmap_name =~ /mem[\w]+/)
+			{
+				$Memmap_name=$memmap_name;
+				$type_add = 0;
+				$type_exchange = 0;
+				if($sched =~ /$Memmap_name[+]/)
+				{
+					$type_add = 1;#修改的类型第一种，加
+					@ADD_Num=split(/[^0-9\+xa-fA-F]/,$sched);
+					foreach $ADD_Num(@ADD_Num)
+					{
+						if($ADD_Num =~ /\+/)
+						{
+							if($ADD_Num =~ /0x/)
+							{
+								@add_num = split(/\+0x/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = "0x".$add_num1;
+								$add_num = hex($add_num1);
+							}
+							else
+							{
+								@add_num = split(/\+/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = $add_num1;
+								$add_num = int($add_num1);
+							}
+						}#$add_num是匹配出的需要加的数值，字符串形式
+					}
+				}
+				if($sched =~ /[:] *\t*$Memmap_name/)
+				{
+					$type_exchange = 1;#修改的类型第二种，高低位交换
+				}
+				foreach $memmap(@memmap)
+				{
+					if($memmap =~ /$Memmap_name/ && $memmap !~ /$Memmap_name[\w]+/)
+					{
+						@Memmap=split(/[ \t\n]/,$memmap);
+						$memmap_address=@Memmap[0];
+						$memmap_address =~ s/0x//;
+						if($type_add==1)
+						{
+							$memmap_address_D = hex($memmap_address);
+							$memmap_address_D = $memmap_address_D+$add_num;
+							$memmap_address_H = sprintf("%x", $memmap_address_D);
+							$memmap_address = $memmap_address_H;
+							$memmap_address_add_finish = $memmap_address;
+							$sched_begin =~ s/$Memmap_name\+$add_num_begin/$memmap_address/;
+						}
+						if($type_exchange==1)
+						{
+							$memmap_address_High = substr($memmap_address,0,2);
+							$memmap_address_Low = substr($memmap_address,2,2);
+							$memmap_address = $memmap_address_Low." ".$memmap_address_High;
+							if($type_add==0)
+							{
+								$sched_begin =~ s/$Memmap_name/$memmap_address/;
+							}
+							else
+							{
+								$sched_begin =~ s/$memmap_address_add_finish/$memmap_address/;
+							}
+						}
+					}
+				}
+				$sched_begin =~ s/$Memmap_name/$memmap_address/;
+			}
+		}
+		printf Sched_test ("%s",$sched_begin);
+	}
+	else
+	{
+		printf Sched_test ("%s",$sched_begin);
+	}	
+}
+close(Sched_test);
Index: utilities.h
===================================================================
--- /ATS_Project/ATS_3mode_wc_SDK/utilities.h	(nonexistent)
+++ /ATS_Project/ATS_3mode_wc_SDK/utilities.h	(working copy)
@@ -0,0 +1,24 @@
+#ifndef _YC_UTILITIES_H_
+#define _YC_UTILITIES_H_
+#include "common.h"
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+/*==============Set a breakpoint function
+no input:
+no output
+====================*/
+void YC_Ice_break();
+
+void dmemcpy(byte *dest, byte* src, word len) ;
+
+void xmemcpy(pxbyte dest, byte* src, byte len);
+
+void Delay1ms(byte Time);
+
+void YC_DelayNOP(byte num);
+
+void xmemclear(byte *dest, word len);
+void xmemclear_ff(byte *dest, word len);
+byte compare_str(byte * str1,byte * str2,byte len);
+#endif
