Index: do.bat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/do.bat	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/do.bat	(working copy)
@@ -0,0 +1,241 @@
+cls
+@echo off
+
+::get Rom path
+set now_path=%~dp0
+call:getstrlocation %now_path% ModuleDemo location
+call:get_fix_len_str  %now_path% location soft_path
+set lib_path=%soft_path%Librarier
+set rom_path=%lib_path%\bt_rom
+set program=%rom_path%\program
+set format=%rom_path%\format
+set util=%rom_path%\util
+set patch_path=%now_path%patch
+set sched=%now_path%sched
+set format_ex=%now_path%format
+
+rem @echo rom_path=%rom_path%
+rem @echo program_path=%program%
+rem @echo format_path=%format%
+rem @echo util_path=%util%
+rem @echo patch_path=%patch_path%
+
+setlocal enabledelayedexpansion
+set progs=""
+for /f %%f in ('dir /b /o %program%\*.prog') do @if not %%f==bt.prog if not %%f==patch.prog if not %%f==sim.prog set progs=!progs! + %program%\%%f
+copy %program%\bt.prog + %progs%  output\bt_program23.meta > output\1
+
+set fmts=""
+for /f %%f in ('dir /b /o %format%\*.format') do @if not %%f==bt.format if not %%f==command.format set fmts=!fmts! + %format%\%%f
+copy %format%\bt.format + %fmts%  + %format_ex%\app_module.format + %format_ex%\bt.format + %format_ex%\le.format + %format_ex%\utility.format + %format%\command.format output\bt_format.meta > output\2
+
+perl %util%/mergepatch.pl 				output/bt_program23.meta %patch_path%
+perl %util%/memalloc.pl 				output/bt_format.meta
+
+cd output
+osiuasm bt_program23 -O-W
+copy ..\sched\DM_module.dat  + ..\sched\109x.dat ..\output\sched.rom
+Creat_patch_Module
+if "%1" equ "eep" (
+	goto genromrevc
+)else (
+  goto downloadram
+)
+
+:genromrevc
+echo off
+@echo Start to generate EEPROM code
+geneep -n
+
+
+:gen_eep_end
+cd ..
+echo **********************************
+echo EEPROM Generated.
+echo Use command "e fp" to download EEPROM.
+echo **********************************
+goto end
+
+
+
+:genrom
+@rem echo on
+perl ..\util\rom2mif.pl romcode
+del ..\..\%FPGA_PATH%\romcode.mif
+copy .\romcode.mif ..\..\%FPGA_PATH%\romcode.mif
+perl ..\util\gen_patch_h.pl >%YC_PATCH_FILE%
+copy .\%YC_PATCH_FILE% ..\..\%MV_PATCH%\%YC_PATCH_FILE%
+copy .\%YC_PATCH_FILE% D:\work\yichip\mv_proj\src\inc\%YC_PATCH_FILE%
+cd ..\..\%FPGA_PATH%
+quartus_cdb btspi -c btspi --update_mif
+quartus_asm --read_settings_files=off --write_settings_files=off btspi -c btspi
+quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "p;.\output\btspi.sof" 
+@echo bitstream_compression=on >1
+@echo memory_map_file=on >> 1
+quartus_cpf -c -o 1 -s EP3C55 -d EPCS16 output\btspi.sof output\btspi.jic  
+@rem quartus_pgm -c USB-Blaster[USB-0] -m jtag -o "pi;.\output\btspi.jic"   
+@del 1
+goto end
+
+
+
+:downloadram
+echo on
+@echo Start to download ram code
+e ku
+e hu
+e su sched.rom
+@echo **********************************
+@echo RAM CODE has been downloaded. 
+@echo **********************************
+cd ..
+
+
+:end
+echo create bt_code.c file
+perl %util%/rom2h.pl  <.\output\eeprom.dat>  .\output\bt_code.c
+goto:eof
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+::------------------------------------------
+::---------------func:getstrlocation-------
+::------------------------------------------
+:getstrlocation
+setlocal
+set "bstr=%1"
+set "cstr=%2"
+set %3=0
+set "num=0"
+set "len_bstr=0"
+set "len_cstr=0"
+
+call:getstrlen %bstr% len_bstr
+call:getstrlen %cstr% len_cstr
+
+:getstrlocation_next
+set /a len_remain=len_bstr-num
+if %len_remain% lss %len_cstr% (
+echo "cann't get str location"
+set /a num =0
+goto getstrlocation_last
+)
+
+call:get_fix_len_str %bstr%  len_cstr compar_str
+
+if not %compar_str%==%cstr% (
+set /a num+=1
+set "bstr=%bstr:~1%"
+goto getstrlocation_next
+)
+
+:getstrlocation_last
+(endlocal
+	set %3=%num%
+)
+goto:eof
+::---------------end:func-------------------
+
+
+::------------------------------------------
+::---------------func:get_fix_len_str-------
+::------------------------------------------
+:get_fix_len_str
+setlocal
+set "getstr=%NULL%"
+set str=%1
+set /a len=%2
+set num=0
+:get_fix_len_str_loop
+set getstr=%getstr%%str:~0,1%
+set /a num+=1
+set str=%str:~1%
+if %num% lss %len% goto get_fix_len_str_loop
+(endlocal
+ set %3=%getstr%
+)
+goto:eof
+::---------------end:func-------------------
+
+
+
+
+::------------------------------------------
+::---------------func:getstrlen-------------
+::------------------------------------------
+:getstrlen
+setlocal
+set str=%1
+set %2=0
+set /a "num=0"
+
+:getstrlen_next
+if "%str%"=="" goto getstrlen_last
+
+if not "%str%"=="" (
+set /a num+=1 
+set "str=%str:~1%"
+goto getstrlen_next
+)
+
+:getstrlen_last
+(endlocal
+	set /a "%2=%num%"
+)
+goto:eof
+::---------------end:func-------------------
+
+
+
+
+::------------------------------------------
+::---------------func:getcharlocation-------
+::------------------------------------------
+:getcharlocation
+setlocal
+set "str=%1"
+set "ch=%2"
+set %3=0
+set /a "num=0"
+
+:getcharnext
+if "%str%"=="" ( 
+set /a num=0
+goto getcharlast
+)
+
+if not "%str%"=="" (
+set /a num+=1
+if "%str:~0,1%"=="%ch%" goto getcharlast
+set "str=%str:~1%"
+goto getcharnext
+)
+:getcharlast
+(endlocal
+set %3=%num%
+)
+goto:eof 
+::---------------end:func-------------------
+
+
+
+
+
+
Index: format/app_module.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/app_module.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/app_module.format	(working copy)
@@ -0,0 +1,126 @@
+bmemalloc(
+	0 mem_module_prepare_write_request_packet
+	2 mem_module_prepare_write_request_PDU_length
+	2 mem_module_prepare_write_request_Channel_ID
+	1 mem_module_prepare_write_request_opcode
+	2 mem_module_prepare_write_request_handle
+	260 mem_temp_prepare_write_request_Data
+	260 mem_le_l2capbuf_new
+	0 mem_le_l2capbuf_new_end
+	464 mem_smp_buf_temp
+	0 mem_end1
+)
+omemalloc(
+	2 mem_soft_version_num
+
+	2 mem_current_packet_length
+	1 mem_module_state
+	
+	1 mem_module_spp_lpm_mult
+	1 mem_module_le_lpm_mult	
+	1 mem_module_bluetooth_stauts_by_command
+
+	//ble
+	1 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+	//ble write handle
+	2 mem_module_data_write_handle
+	2 mem_module_data_write_handle2
+	//flag
+	1 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+
+	4 mem_last_transmite_clock	
+	0 mem_module_uuid_list_end
+	450 mem_module_le_att_list
+	0 mem_module_le_att_list_end
+	0 mem_module_nv_data
+	34 mem_module_nv_data0
+	34 mem_module_nv_data1
+	34 mem_module_nv_data2
+	34 mem_module_nv_data3
+	34 mem_module_nv_data4
+	34 mem_module_nv_data5
+	34 mem_module_nv_data6
+	34 mem_module_nv_data7
+	
+
+	2 mem_le_buff_len
+	2 mem_le_buff_len_all	
+
+	1 mem_ipcbuf_bt2m0_flag
+	2 mem_ipcbuf_bt2m0_write
+	2 mem_ipcbuf_bt2m0_read
+	
+	1 mem_context_cnt
+	1 mem_context_map
+	80 mem_context_new
+	80 mem_context_new2
+	80 mem_context_new3
+	80 mem_context_new4
+	80 mem_context_new5
+	80 mem_context_new6
+	80 mem_context_new7
+	80 mem_context_new8
+	
+	608 mem_context_extend 
+	// (39+37)*8
+	
+	1 mem_le_pairing_sm_flag
+	1 mem_le_fifo_error
+	
+	0 mem_end2
+	// Be aware of memory boundaries  limit 0x4bff
+)
+(//mem_ble_dle_enable
+0x00 DLE_ENABLE
+0x01 DLE_DISABLE
+)
+
+
+(
+80 BLE_L2CAP_TX_BUFF_SIZE
+
+8 CONTEXT_NUM_NEW
+//144 context_size_tx_buf
+76 CONTEXT_SIZE_EXTEND
+58 CONTEXT_SMP
+)
+
+(
+249 LE_BASEBAND_MAX_BUFFER
+)
+(//mem_module_flag
+//bit3~bit7 module states change
+3 MODULE_RECEIVE_COMPLETE_PREPARE_WRITE_REQ
+
+7 MODULE_RECV_CONFIRM
+)
+
+(
+	0x200 UART_AIR_CONTROL_THRESHOLD
+)
+(//Command
+
+0x15 HCI_CMD_SET_COD
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+
+0xfe HCI_CMD_ALL_ROUND
+)
+
+(//event
+
+0x29 HCI_EVENT_UUID_HANDLE
+
+)
+
+(
+0x44 BT_EVT_LE_CONN_PARAM_UPDATE
+)
+
Index: format/bt.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/bt.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/bt.format	(working copy)
@@ -0,0 +1,6 @@
+
+/* ============== mark ============= *//*0 - 47 */
+(
+
+44 mark_buf_full
+)
Index: format/le.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/le.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/le.format	(working copy)
@@ -0,0 +1,20 @@
+
+
+	/* LE control packet type */
+	(
+
+	0x14 LL_LENGTH_REQ
+	0x15 LL_LENGTH_RSP
+	)
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+
+
Index: format/utility.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/utility.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/format/utility.format	(working copy)
@@ -0,0 +1,111 @@
+
+bmemalloc(
+1 mem_usb_status
+1 mem_usb_fifo_empty
+1 mem_usb_read_len
+64 mem_usb_rxbuf
+2 mem_bufptr
+1 mem_remain
+20 mem_devicedesc
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+100 mem_confdesc
+5 mem_string0
+30 mem_string1
+64 mem_string2
+30 mem_string3
+2 mem_usb_zero_packet
+2 mem_usb_ones_packet
+2 mem_usb_two_packet
+1 mem_usb0_state
+
+1 mem_usb_offline_check_gpio
+1 mem_usb_tx_interval
+
+0 mem_usb_clear_mem_start
+0 mem_usb_setup
+1 mem_usb_setup_bmRequestType
+1 mem_usb_setup_bRequest
+1 mem_usb_setup_bValue
+1 mem_usb_setup_bValueH
+2 mem_usb_setup_wIndex
+1 mem_usb_setup_bLength
+1 mem_usb_setup_bLengthH
+64 mem_usb0_setup
+64 mem_usb0_set_report_data
+64 mem_usb0_get_report_data
+1 mem_usb_state
+1 mem_usb_tx_wait
+1 mem_usb_tx_enable
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+1 mem_usb_ep0_stall_status
+1 mem_usb_ep1_stall_status
+1 mem_usb_ep2_stall_status
+1 mem_usb_ep3_stall_status
+2 mem_dsc_info_data_pointer
+1 mem_dsc_info_len
+1 mem_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_enable
+1 mem_usb_device_enumeration_endflag
+1 mem_usb_wakestate_onetime_flag
+1 mem_usb_mac_wakeup_trig
+1 mem_usb_set_high_addr_flag
+1 mem_usb_set_protocol_value
+1 mem_usb_set_protocol_status
+1 mem_usb_get_protocol_flag
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_multikey
+8 mem_usb_kb_data_sta_data
+8 mem_usb_kb_data_last_data
+3 mem_usb_kb_multikey_sta_data
+3 mem_usb_kb_multikey_last_data
+1 mem_usb_kb_blank_data_enable
+1 mem_usb_kb_mul_blank_data_enable
+1 mem_usb_test_cnt
+0 mem_usb_clear_mem_end
+1 mem_usb_test_kb
+
+256 mem_rssi_noise_buffer
+256 mem_rssi_noise_dg_buffer
+256 mem_rssi_noise_ms_buffer
+256 mem_rssi_noise_kb_buffer
+32 mem_24g_common_temp
+
+
+)
+(// mem_bb_flag
+0 OLD_PACKET				//0:new packet   1: old packet  
+1 USE_BB_BUFFER_NOW		//0:BB BUFFER1  1:BB BUFFER2
+)
+(
+0 CACHE_BUFFER_FLAG
+1 CACHE_BUFFER_LCH
+2 CACHE_BUFFER_LEN
+4 CACHE_BUFFER_DATA_PTR
+
+
+)
+(
+0x0b1b mem_bb_cache_bufptr
+0x0b1d mem_bb_flag
+
+0x0b20 mem_baseband_buffer1_flag
+0x0b21 mem_baseband_buffer1_lch
+0x0b22 mem_baseband_buffer1_len
+0x0b24 mem_baseband_buffer1
+
+0x0c20 mem_baseband_buffer2_flag
+0x0c21 mem_baseband_buffer2_lch
+0x0c22 mem_baseband_buffer2_len
+0x0c24 mem_baseband_buffer2 
+)
Index: output/bt_code.c
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/output/bt_code.c	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/output/bt_code.c	(working copy)
@@ -0,0 +1,302 @@
+const unsigned char bt_code[] = {
+0x00,0x02,0xaa,0x55,0xee,0x0e,0xc2,0x84,0x00,0x15,0xc0,0x00,0x80,0x40,0xc0,0x02,
+0x83,0xa5,0xc0,0x15,0x03,0x2e,0xc0,0x15,0x83,0x51,0xc0,0x16,0x03,0x7d,0xc0,0x17,
+0x03,0xa2,0xc0,0x42,0x80,0x46,0xc0,0x44,0x80,0x67,0xc0,0x4a,0x00,0x26,0xc0,0x51,
+0x00,0x70,0xc0,0x51,0x80,0x31,0xc0,0x54,0x80,0x34,0xc0,0x56,0x00,0x77,0xc0,0x5c,
+0x00,0x78,0xc0,0x5d,0x80,0xc3,0xc0,0x5e,0x00,0xb0,0xc0,0x75,0x83,0x22,0xc0,0x79,
+0x83,0x24,0xc0,0x7b,0x03,0x29,0x20,0x20,0x4a,0x8b,0xc0,0x01,0x81,0x4c,0xc0,0x02,
+0x81,0x58,0xc0,0x08,0x01,0x49,0xc0,0x0e,0x02,0x10,0xc0,0x11,0x02,0x19,0xc0,0x11,
+0x82,0x75,0xc0,0x12,0x82,0x7b,0xc0,0x19,0x81,0x76,0xc0,0x1a,0x81,0xa2,0xc0,0x1d,
+0x02,0x85,0xc0,0x1f,0x02,0x90,0xc0,0x20,0x82,0xa2,0xc0,0x29,0x02,0xa8,0xc0,0x4c,
+0x82,0xbc,0xc0,0x4f,0x82,0xc8,0xc0,0x50,0x82,0xc0,0x20,0x20,0x4a,0x8b,0x18,0x42,
+0x7e,0x00,0x20,0x40,0x7d,0x2b,0x1c,0x30,0x7e,0x00,0x79,0x20,0x7e,0x2c,0x20,0x40,
+0x7d,0x14,0x79,0x3f,0xfe,0x2c,0x20,0x40,0x4a,0x76,0x20,0x40,0x7d,0x14,0x20,0x74,
+0x00,0x00,0x20,0x40,0x00,0x3d,0x20,0x20,0x4a,0x2f,0x1b,0x42,0x7e,0x00,0x20,0x40,
+0x00,0x3c,0x20,0x20,0x4a,0xe9,0x6f,0xe4,0x40,0x4e,0x1f,0xe3,0x7e,0x00,0x20,0x40,
+0x7d,0x2b,0x1e,0x02,0x7e,0x00,0x20,0x40,0x7d,0x14,0x1b,0x42,0x04,0x00,0x20,0x40,
+0x00,0x3c,0x20,0x20,0x4b,0x67,0x20,0x40,0x7d,0x14,0x98,0x00,0x0c,0x00,0x79,0x3f,
+0x8c,0x10,0x20,0x20,0x7d,0x1f,0x20,0x40,0x68,0xc4,0x20,0x40,0x60,0xd7,0x20,0x40,
+0x00,0x44,0x20,0x20,0x40,0x0a,0x20,0x75,0x80,0x00,0x20,0x20,0x7b,0x9a,0x20,0x30,
+0x80,0x56,0x70,0x89,0x55,0xd4,0x20,0x00,0x00,0x04,0x70,0x89,0x55,0xd2,0x20,0x00,
+0x00,0x04,0x70,0x89,0x55,0xd1,0x20,0x00,0x00,0x04,0x6f,0xe2,0x41,0xdf,0xc0,0x00,
+0x00,0x54,0xc0,0x00,0x80,0x64,0xc0,0x01,0x00,0x54,0xc0,0x01,0x80,0x64,0xc0,0x02,
+0x00,0x64,0xc0,0x10,0x00,0x64,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xe0,0x18,0x00,
+0x2a,0x08,0x18,0x00,0x2a,0x00,0x78,0x50,0xfc,0x00,0x78,0x50,0x7c,0x00,0x78,0x2f,
+0x7c,0x00,0x70,0x89,0x02,0x00,0x70,0x89,0x01,0x00,0x70,0x89,0x00,0x00,0x70,0x89,
+0x03,0x00,0x70,0x89,0x04,0x70,0x6f,0xe2,0x89,0x06,0x79,0x20,0x7e,0x00,0x67,0xe2,
+0x89,0x06,0x20,0x60,0x00,0x00,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xc0,0x20,0x20,
+0x00,0x56,0x60,0x42,0x00,0x17,0x20,0x40,0x49,0x2a,0x20,0x40,0x49,0x80,0x58,0x00,
+0x05,0x00,0x20,0x40,0x4a,0x8e,0x6f,0xe2,0x89,0x06,0x79,0x20,0x7e,0x00,0x67,0xe2,
+0x89,0x06,0x20,0x20,0x49,0x37,0x70,0x89,0x06,0x7c,0x20,0x75,0x80,0x00,0x58,0x00,
+0x00,0x00,0x67,0xe4,0x41,0xdd,0x1c,0x43,0x7e,0x00,0x67,0xe8,0x40,0x94,0x20,0x60,
+0x00,0x00,0x20,0x20,0x4b,0x7f,0x58,0x00,0x00,0x00,0x67,0xe4,0x41,0xf6,0x67,0xe4,
+0x41,0xfe,0x58,0x00,0x00,0x87,0x67,0xe4,0x41,0xfa,0x58,0x00,0x4d,0xbd,0x67,0xe4,
+0x41,0xea,0x58,0x00,0x00,0x9a,0x67,0xe4,0x41,0xf2,0x58,0x00,0x00,0x9d,0x67,0xe4,
+0x45,0x41,0x20,0x40,0x4d,0xaf,0x20,0x40,0x4d,0xbc,0x20,0x40,0x4c,0x2a,0x20,0x20,
+0x50,0x4d,0x20,0x40,0x4f,0x11,0x20,0x74,0x00,0x00,0x1a,0x22,0x7e,0x00,0x67,0xe4,
+0x46,0x71,0x1a,0x42,0x7e,0x00,0x67,0xe2,0x46,0x70,0x68,0x44,0x04,0x74,0x60,0x44,
+0x46,0x73,0x20,0x40,0x5b,0x6c,0x24,0x3a,0x4a,0x8b,0x6f,0xe2,0x04,0x9e,0x70,0x0a,
+0xff,0x08,0x6f,0xe2,0x46,0x70,0x1f,0xe2,0x72,0x00,0x1f,0xe0,0xfe,0x03,0x20,0x40,
+0x50,0xa5,0x6f,0xe2,0x04,0x51,0xe7,0xe2,0x00,0x0a,0x20,0x20,0x50,0x47,0x20,0x40,
+0x00,0x9c,0x20,0x20,0x50,0xd3,0x20,0x20,0x4d,0xc8,0x20,0x40,0x4d,0xd7,0x70,0x0a,
+0xff,0x07,0x6f,0xe4,0x04,0xfb,0x20,0x7a,0x00,0x00,0xd8,0x40,0x00,0xff,0x20,0x40,
+0x7d,0xb5,0x1f,0xe2,0x72,0x00,0x6f,0xe4,0x04,0xfb,0x9f,0x26,0x7e,0x00,0x67,0xe4,
+0x04,0xfb,0x1f,0x22,0x7e,0x00,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x04,0xfd,0x1f,0xe2,
+0x0c,0x00,0x20,0x40,0x67,0xc1,0x18,0xc2,0x7e,0x00,0x67,0xe4,0x04,0xfd,0x20,0x40,
+0x67,0xb9,0x20,0x20,0x00,0x9e,0x18,0x40,0xff,0xfd,0x68,0x42,0x46,0x7a,0x20,0x40,
+0x7d,0xb5,0x1f,0xe2,0x22,0x00,0x18,0x42,0x7e,0x00,0x9a,0x26,0x7e,0x00,0x67,0xe2,
+0x46,0x7a,0x68,0x44,0x46,0x7b,0x20,0x40,0x5e,0x44,0x6f,0xe4,0x46,0x7d,0x1f,0xe2,
+0x06,0x00,0x1a,0x22,0x72,0x00,0x20,0x40,0x67,0xda,0x20,0x40,0x02,0x53,0x18,0x62,
+0x7e,0x00,0x67,0xe4,0x46,0x7d,0x6f,0xe2,0x46,0x7a,0x24,0x7a,0x00,0x00,0x20,0x20,
+0x50,0xde,0x6f,0xe2,0x0a,0xff,0xc0,0x04,0x81,0x0d,0xc0,0x13,0x81,0x43,0xc0,0x13,
+0x00,0xed,0xc0,0x1b,0x00,0xca,0xc0,0x1c,0x00,0xd6,0x20,0x20,0x4e,0x5c,0x20,0x40,
+0x5c,0x72,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x0b,0x00,0xc0,0x84,0xd0,0x1c,0x20,0x40,
+0x00,0xf9,0x24,0x7a,0x00,0x00,0x70,0x0b,0x01,0x01,0xef,0xf0,0x00,0x03,0x67,0xf0,
+0x44,0x68,0x20,0x40,0x5e,0x9f,0x20,0x40,0x02,0x53,0x20,0x20,0x50,0x1f,0x20,0x40,
+0x5c,0x72,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x44,0x98,0x20,0x3a,0x50,0x1c,0x20,0x40,
+0x00,0xf9,0x24,0x7a,0x00,0x00,0x70,0x0b,0x01,0x01,0xef,0xe2,0x00,0x02,0xc2,0x82,
+0x50,0x1c,0x20,0x40,0x50,0x1f,0x20,0x40,0x5e,0xe2,0x20,0x20,0x02,0x53,0xda,0x60,
+0x00,0xe4,0x20,0x20,0x42,0x5d,0xc3,0x00,0x42,0x62,0x1a,0x20,0x8c,0x01,0xef,0xe2,
+0x00,0x06,0xc3,0x00,0x42,0x62,0x1a,0x20,0x8c,0x16,0xef,0xe2,0x00,0x06,0x98,0x46,
+0x7c,0x00,0x20,0x62,0x80,0x00,0x20,0x20,0x42,0x62,0x6f,0xe2,0x0b,0x00,0x1f,0xe2,
+0x72,0x00,0x1f,0x20,0xf3,0xfe,0x1a,0x22,0x06,0x00,0x6f,0xe4,0x42,0x14,0xe8,0x44,
+0x00,0x03,0x98,0x40,0x8a,0x00,0x20,0x40,0x67,0xda,0x20,0x20,0x50,0x1f,0x68,0x42,
+0x04,0x51,0x98,0x46,0x7c,0x00,0x20,0x60,0x00,0x00,0x1a,0x22,0x6e,0x00,0xe8,0x42,
+0x00,0x03,0x20,0x40,0x01,0x02,0x24,0x22,0x81,0x09,0x70,0x0b,0x01,0x00,0x60,0x42,
+0x04,0x51,0x1a,0x22,0x04,0x00,0x1e,0xe2,0x22,0x00,0x20,0x20,0x7d,0xc9,0xda,0x60,
+0x01,0x04,0x20,0x20,0x42,0x5d,0xc3,0x00,0x42,0x62,0x1a,0x20,0x8c,0x01,0xef,0xe2,
+0x00,0x06,0xc3,0x00,0x42,0x62,0x20,0x20,0x42,0x72,0x20,0x40,0x01,0x0b,0x20,0x20,
+0x7d,0xc7,0x70,0x0b,0x01,0x01,0x20,0x20,0x50,0x1c,0x20,0x40,0x00,0xf9,0x24,0x7a,
+0x00,0x00,0x1a,0x22,0x06,0x00,0x70,0x0b,0x01,0x00,0x6f,0xe2,0x46,0x79,0xc2,0x82,
+0x4e,0xf1,0x6f,0xe2,0x46,0x7a,0x24,0x7a,0x00,0x00,0x70,0x0b,0x01,0x01,0xef,0xe2,
+0x00,0x03,0xef,0xe4,0x00,0x03,0x67,0xe4,0x46,0x7b,0x18,0x62,0x7e,0x00,0x67,0xe4,
+0x46,0x7d,0x6f,0xe2,0x0b,0x00,0x1f,0xe0,0xff,0xfd,0x24,0x21,0x50,0x1c,0x20,0x22,
+0xd0,0x1c,0x67,0xe2,0x46,0x7a,0x70,0x0b,0x01,0x00,0x20,0x40,0x4e,0xf4,0x20,0x40,
+0x4e,0xf4,0x20,0x40,0x4e,0xf4,0x6f,0xe2,0x46,0x79,0xc4,0x02,0x00,0x00,0x20,0x20,
+0x4e,0xf1,0xef,0xe2,0x00,0x03,0x1f,0xe2,0x72,0x00,0xe7,0xe2,0x00,0x05,0x20,0x20,
+0x67,0xed,0x20,0x40,0x01,0x2e,0xe0,0x44,0x00,0x05,0x20,0x60,0x00,0x00,0x6f,0xe4,
+0x44,0x8e,0x98,0x00,0x0c,0x00,0xef,0xe4,0x00,0x06,0x20,0x7a,0x00,0x00,0x1f,0xe0,
+0x84,0x01,0xef,0xe2,0x00,0x06,0x98,0xc0,0x8c,0x00,0xef,0xe2,0x00,0x06,0x98,0xc0,
+0x8c,0x00,0x18,0xc2,0x0a,0x00,0x20,0x20,0x01,0x30,0x60,0x44,0x0a,0x9e,0x70,0x0a,
+0xff,0x29,0x58,0x00,0x00,0x02,0x20,0x40,0x50,0xa5,0x68,0x44,0x0a,0x9e,0xe0,0x44,
+0x00,0x0a,0x20,0x20,0x67,0xb9,0xef,0xe6,0x00,0x03,0x67,0xe6,0x40,0xaa,0x20,0x20,
+0x50,0x1f,0x20,0x40,0x50,0x1f,0x20,0x20,0x4d,0x85,0x70,0x46,0x7a,0x00,0x70,0x0b,
+0x01,0x01,0x20,0x40,0x50,0xe0,0x20,0x20,0x50,0x1c,0x70,0x0a,0x95,0x44,0x20,0x40,
+0x7b,0xab,0x20,0x20,0x59,0x57,0x20,0x40,0x49,0xba,0x78,0x23,0xfc,0x00,0x78,0x24,
+0xfc,0x00,0x09,0x80,0x00,0x08,0x19,0x89,0x7e,0x00,0x67,0xe2,0x02,0xd5,0x09,0x80,
+0x00,0x08,0x19,0x89,0x7e,0x00,0xe7,0xe2,0x00,0x05,0x1f,0xe2,0x72,0x00,0x20,0x3a,
+0x58,0x8b,0x20,0x20,0x58,0x87,0x20,0x40,0x58,0xa3,0x20,0x40,0x49,0x15,0x68,0x42,
+0x00,0x17,0x20,0x40,0x49,0x1c,0x20,0x00,0x05,0xdc,0x20,0x40,0x49,0x21,0x78,0x28,
+0x7c,0x00,0xd9,0x60,0x15,0x7c,0x20,0x20,0x58,0x69,0x70,0x49,0x59,0x00,0x68,0x44,
+0x4f,0xf0,0x6f,0xe4,0x4f,0xf2,0x98,0x46,0x22,0x00,0x68,0x44,0x4f,0xf4,0x6f,0xe4,
+0x4f,0xf6,0x60,0x44,0x49,0x5c,0x67,0xe4,0x49,0x5a,0x98,0x46,0x7e,0x00,0x20,0x21,
+0x01,0x71,0x20,0x22,0x81,0x71,0x1a,0x22,0x04,0x00,0x6f,0xe4,0x49,0x5a,0x98,0x40,
+0xfe,0x00,0x68,0x44,0x49,0x5c,0x98,0x46,0x7e,0x00,0xd8,0x40,0x03,0x00,0x98,0x46,
+0x7c,0x00,0x24,0x61,0x00,0x00,0x70,0x49,0x59,0x01,0x20,0x60,0x00,0x00,0x20,0x40,
+0x5c,0x72,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x44,0x96,0xc0,0x00,0x5f,0xcf,0xc0,0x00,
+0x81,0x92,0xc0,0x01,0x5f,0xcf,0xc0,0x01,0x81,0x82,0xc0,0x02,0x81,0x95,0xc0,0x03,
+0x81,0x90,0xc0,0x04,0x01,0x88,0xc0,0x04,0x81,0x84,0x20,0x60,0x00,0x00,0x70,0x44,
+0x96,0x04,0x20,0x20,0x5b,0xf6,0x20,0x40,0x5b,0xf4,0x20,0x40,0x5f,0x80,0x20,0x40,
+0x02,0x53,0x20,0x20,0x5f,0xf2,0x6f,0xe2,0x44,0x24,0x68,0x42,0x44,0x2b,0x98,0x41,
+0x7e,0x00,0x2f,0xec,0x00,0x01,0x20,0x20,0xdf,0xf2,0x70,0x44,0x96,0x09,0x20,0x40,
+0x5f,0x78,0x20,0x20,0x02,0x53,0x20,0x40,0x5f,0xe7,0x20,0x20,0x02,0x53,0x70,0x44,
+0x96,0x02,0x20,0x40,0x5e,0xe2,0x20,0x20,0x02,0x53,0x6f,0xe2,0x44,0x97,0xc0,0x02,
+0x01,0x98,0x20,0x60,0x00,0x00,0x70,0x44,0x96,0x07,0x70,0x0a,0x95,0x29,0x20,0x40,
+0x7b,0xab,0x20,0x40,0x5f,0x62,0x20,0x40,0x02,0x53,0x6f,0xe2,0x40,0x92,0xc1,0x85,
+0x00,0x00,0x20,0x40,0x5f,0x99,0x20,0x74,0x00,0x00,0x20,0x20,0x4d,0x8b,0x6f,0xe2,
+0x02,0xd7,0xc0,0x00,0x60,0x5c,0xc0,0x00,0xe0,0x64,0xc0,0x01,0x60,0x6f,0xc0,0x01,
+0x81,0xc8,0xc0,0x02,0x60,0xc2,0xc0,0x02,0xe0,0xc7,0xc0,0x03,0x01,0xc6,0xc0,0x03,
+0xe0,0xd6,0xc0,0x04,0x01,0xc4,0xc0,0x04,0xe0,0xd6,0xc0,0x05,0x01,0xbf,0xc0,0x05,
+0xe0,0xd6,0xc0,0x06,0x01,0xbd,0xc0,0x06,0xe0,0xd6,0xc0,0x09,0x01,0xbb,0xc0,0x09,
+0xe0,0xd6,0xc0,0x0a,0x01,0xdc,0xc1,0x0a,0x80,0x00,0xda,0x20,0x00,0x02,0xda,0x40,
+0x00,0x07,0x20,0x40,0x5c,0x22,0x6f,0xe2,0x02,0xd7,0xe7,0xe2,0x00,0x05,0x20,0x60,
+0x00,0x00,0x20,0x40,0x60,0x87,0x20,0x20,0x02,0x53,0x20,0x40,0x60,0x80,0x20,0x20,
+0x02,0x53,0x70,0x44,0x97,0x02,0x20,0x40,0x60,0xd4,0x20,0x40,0x02,0x53,0x70,0x0a,
+0x95,0x33,0x20,0x20,0x7b,0xab,0x20,0x40,0x60,0x7a,0x20,0x20,0x02,0x53,0x20,0x40,
+0x60,0xcc,0x20,0x20,0x02,0x53,0xef,0xf0,0x00,0x06,0x67,0xf0,0x44,0x9f,0xef,0xe4,
+0x00,0x06,0x67,0xe4,0x44,0x9d,0xef,0xf0,0x00,0x06,0x67,0xf0,0x44,0x7c,0xef,0xe8,
+0x00,0x06,0x67,0xe8,0x43,0xe3,0x20,0x40,0x60,0xb0,0x20,0x40,0x02,0x53,0x6f,0xe2,
+0x44,0x96,0xc0,0x02,0x81,0xd8,0x6f,0xe2,0x42,0x16,0x24,0x5a,0x68,0xb0,0x6f,0xe2,
+0x43,0xfb,0xc0,0x00,0x60,0xa5,0x70,0x44,0x97,0x01,0x20,0x40,0x60,0xbe,0x20,0x40,
+0x02,0x53,0x20,0x20,0x72,0x58,0xda,0x20,0x00,0x09,0xda,0x40,0x00,0x15,0x20,0x40,
+0x5c,0x22,0x58,0x00,0x00,0x1b,0xe7,0xe4,0x00,0x05,0x58,0x00,0x08,0x48,0xe7,0xe4,
+0x00,0x05,0x58,0x00,0x00,0x1b,0xe7,0xe4,0x00,0x05,0x58,0x00,0x08,0x48,0xe7,0xe4,
+0x00,0x05,0x20,0x20,0x02,0x53,0xef,0xe2,0x00,0x06,0x98,0xc0,0x8c,0x00,0x18,0xc0,
+0x8c,0x02,0xef,0xe2,0x00,0x06,0x20,0x3a,0x4a,0x8b,0x68,0x42,0x04,0x51,0x98,0x46,
+0x7c,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x5c,0x53,0x20,0x7a,0x00,0x00,0x18,0xc2,
+0x22,0x00,0x20,0x40,0x01,0xe8,0x20,0x22,0xfd,0xc7,0x20,0x40,0x01,0xfd,0x24,0x22,
+0x81,0xf8,0x20,0x20,0x7d,0xc9,0x6f,0xe2,0x4e,0x41,0x1f,0xe0,0xfe,0x01,0x67,0xe2,
+0x4e,0x41,0x20,0x40,0x5c,0x76,0x20,0x20,0x7d,0xc9,0x20,0x20,0x42,0x54,0x20,0x40,
+0x5c,0x56,0x20,0x7a,0x00,0x00,0x20,0x40,0x01,0xe8,0x20,0x22,0xfd,0xc7,0x20,0x20,
+0x7d,0xc9,0xef,0xe2,0x00,0x06,0xe8,0x42,0x00,0x06,0x98,0x46,0x7e,0x00,0x1f,0xe6,
+0x7c,0x1b,0x20,0x21,0x5a,0x2c,0x20,0x20,0x5a,0x2a,0x20,0x40,0x02,0x03,0xc6,0x14,
+0x80,0x00,0x6f,0xe2,0x44,0xbb,0xc3,0x01,0x5a,0x2c,0x20,0x40,0x01,0xfe,0x20,0x3a,
+0x5a,0x2c,0x20,0x20,0x5a,0x2a,0x6f,0xe2,0x04,0x52,0xc3,0x82,0x80,0x00,0x20,0x40,
+0x01,0xf0,0x20,0x3a,0x5a,0x3e,0x1a,0x22,0x26,0x00,0x1a,0x22,0x0c,0x00,0x20,0x40,
+0x02,0x09,0x1a,0x62,0x0c,0x00,0x20,0x20,0x59,0xfe,0xef,0xe4,0x00,0x06,0xc0,0x02,
+0x02,0x32,0xc0,0x03,0x02,0x1e,0xc0,0x02,0xde,0x96,0x20,0x60,0x00,0x00,0xef,0xe2,
+0x00,0x06,0xc0,0x00,0x82,0x2c,0xc0,0x01,0x82,0x2e,0xc0,0x02,0x02,0x30,0xc0,0x02,
+0xdf,0x3a,0xc0,0x03,0x5f,0x60,0xc0,0x03,0xdf,0xa4,0xc0,0x04,0x5f,0x8f,0xc0,0x04,
+0xdf,0xa0,0xc0,0x05,0x5f,0xa4,0xc0,0x05,0xdf,0xa4,0xc0,0x06,0x5f,0xa5,0xc0,0x06,
+0xdf,0xaa,0x20,0x60,0x00,0x00,0x20,0x40,0x5e,0xe9,0x20,0x20,0x02,0x4e,0x20,0x40,
+0x5f,0x10,0x20,0x20,0x02,0x4e,0x20,0x40,0x5f,0x2d,0x20,0x20,0x02,0x4e,0xef,0xe6,
+0x00,0x06,0x67,0xe6,0x04,0x73,0xc0,0x08,0x02,0x56,0xc0,0x04,0x02,0x60,0xc0,0x02,
+0x02,0x4d,0xc0,0x03,0x02,0x4b,0xc0,0x05,0x02,0x49,0xc0,0x06,0x02,0x47,0xc0,0x09,
+0x02,0x45,0xc0,0x0b,0x02,0x43,0xc0,0x0c,0x02,0x41,0xc0,0x29,0x5e,0x40,0xc0,0x01,
+0x02,0x5e,0xc0,0x01,0xdc,0xa9,0x20,0x60,0x00,0x00,0x20,0x40,0x5e,0x3b,0x20,0x20,
+0x02,0x4e,0x20,0x40,0x5e,0x28,0x20,0x20,0x02,0x4e,0x20,0x40,0x5e,0x0f,0x20,0x20,
+0x02,0x4e,0x20,0x40,0x5d,0xc4,0x20,0x20,0x02,0x4e,0x20,0x40,0x5d,0x9c,0x20,0x20,
+0x02,0x4e,0x20,0x40,0x5c,0xd2,0x20,0x20,0x02,0x4e,0x20,0x40,0x5c,0xac,0x20,0x40,
+0x5c,0x59,0x20,0x3a,0x4a,0x8b,0xef,0xe2,0x00,0x06,0x98,0xc0,0x8a,0x00,0x18,0xa0,
+0x8a,0x02,0x6f,0xe2,0x04,0x51,0xe7,0xe2,0x00,0x05,0x20,0x60,0x00,0x00,0x20,0x40,
+0x02,0x58,0x20,0x20,0x02,0x4e,0x20,0x40,0x5e,0x91,0x20,0x40,0x5a,0xb3,0xd9,0x60,
+0x00,0x01,0x20,0x20,0x5d,0xde,0xd8,0xe0,0x00,0x07,0x20,0x20,0x50,0xe6,0x20,0x40,
+0x5c,0xa2,0x20,0x20,0x02,0x4e,0x20,0x40,0x02,0x62,0x20,0x20,0x02,0x4e,0x20,0x40,
+0x5e,0x91,0x20,0x40,0x5a,0xbb,0x20,0x20,0x02,0x65,0x68,0x44,0x44,0x2c,0x60,0x44,
+0x0a,0x9e,0x20,0x40,0x5b,0x36,0x20,0x40,0x5b,0x4d,0x18,0xc0,0x8d,0xfe,0x18,0xc2,
+0x7e,0x00,0x67,0xe4,0x04,0x98,0x68,0x44,0x44,0x44,0x58,0x00,0x2a,0x00,0x98,0x46,
+0x7c,0x00,0x20,0x22,0x82,0x71,0x20,0x20,0x5d,0x2d,0xd8,0x40,0x2a,0x00,0x20,0x40,
+0x5b,0x5c,0x20,0x3a,0x5e,0x56,0x20,0x20,0x5d,0x8b,0x6f,0xe2,0x43,0x40,0x20,0x7a,
+0x00,0x00,0xd8,0xe0,0x00,0x00,0x20,0x40,0x7c,0xf1,0x24,0x7a,0x00,0x00,0x20,0x20,
+0x5a,0xd5,0x18,0x0a,0x7e,0x00,0xd8,0x40,0x00,0x1f,0x98,0x41,0x7e,0x00,0x1f,0xe0,
+0xfe,0x03,0x20,0x40,0x5a,0xef,0x6f,0xe2,0x0a,0xbe,0x68,0x42,0x44,0x5f,0x98,0x46,
+0x7c,0x00,0x24,0x22,0xda,0xd5,0x20,0x20,0x5a,0xec,0x6f,0xe2,0x00,0x7d,0xc0,0x08,
+0x02,0x89,0xc0,0x0b,0x82,0x8f,0x20,0x20,0x60,0xfe,0x68,0x42,0x05,0x4e,0x18,0x46,
+0x7c,0x06,0x20,0x21,0x02,0x8d,0x20,0x20,0x62,0x06,0x70,0x00,0x7e,0x24,0x20,0x20,
+0x61,0x34,0x20,0x20,0x62,0xb8,0x78,0x54,0x7c,0x00,0x20,0x40,0x66,0xa3,0x6f,0xe2,
+0x00,0x48,0x20,0x7a,0x00,0x00,0xc2,0x83,0x82,0x96,0x20,0x20,0x63,0xf2,0xc0,0x42,
+0x02,0x99,0xc0,0x41,0x82,0x9c,0x20,0x20,0x64,0x21,0x20,0x40,0x02,0x9f,0x6f,0xe2,
+0x00,0x48,0x20,0x20,0x64,0x7b,0x20,0x40,0x02,0x9f,0x6f,0xe2,0x00,0x48,0x20,0x20,
+0x64,0xef,0x6f,0xe2,0x46,0x2c,0x20,0x3a,0x65,0x0d,0x20,0x20,0x65,0x06,0x6f,0xe2,
+0x40,0x9e,0x79,0x3f,0xfe,0x03,0x67,0xe2,0x40,0x9e,0x58,0x00,0x00,0x01,0x67,0xe4,
+0x04,0xca,0x20,0x60,0x00,0x00,0x6f,0xe2,0x04,0xf9,0xc0,0x1f,0xe9,0x3e,0xc0,0x39,
+0xe9,0x47,0xc0,0x77,0x82,0xae,0xc0,0x29,0xea,0x05,0x20,0x60,0x00,0x00,0x6f,0xe4,
+0x04,0xfd,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x69,0x84,0x6f,0xe2,0x04,0xff,0xc0,0x20,
+0xe9,0x66,0xc0,0x20,0x69,0x6e,0xc0,0x38,0xe9,0xa7,0xc0,0x38,0x02,0xb8,0xc0,0x24,
+0xe9,0xbe,0x20,0x20,0x6a,0x58,0x70,0x0a,0x95,0x08,0x20,0x40,0x7b,0xab,0x20,0x40,
+0x69,0x72,0x20,0x20,0x69,0xba,0x6f,0xe2,0x44,0x90,0x20,0x3a,0x5e,0xd0,0x20,0x40,
+0x74,0x38,0x20,0x20,0x79,0x32,0xda,0x20,0x46,0x42,0x20,0x40,0x7d,0x9c,0x20,0x7a,
+0x00,0x00,0xc0,0x01,0x7c,0x04,0xc0,0x06,0xfc,0x16,0xc0,0x07,0x7c,0x1c,0xc0,0x0f,
+0xe7,0xfd,0x20,0x60,0x00,0x00,0x6f,0xe2,0x0a,0x95,0xc0,0x0a,0x03,0x11,0xc0,0x20,
+0x83,0x0f,0xc0,0x18,0x03,0x03,0xc0,0x18,0x83,0x01,0xc0,0x19,0x02,0xf9,0xc0,0x19,
+0x82,0xf7,0xc0,0x1a,0x50,0x82,0xc0,0x1e,0x82,0xdb,0xc0,0x22,0x02,0xd4,0xc0,0x0a,
+0x83,0x1c,0x20,0x60,0x00,0x00,0x70,0x0a,0xff,0x17,0x58,0x00,0x00,0x07,0x20,0x40,
+0x50,0xa5,0x20,0x40,0x03,0x0c,0x6f,0xec,0x43,0xa8,0xe7,0xec,0x00,0x0a,0x20,0x20,
+0x67,0xb9,0x70,0x0a,0xff,0x0d,0x6f,0xe2,0x42,0x16,0x1f,0xe6,0x7c,0x07,0x20,0x21,
+0x02,0xef,0xdf,0xe0,0x00,0x07,0x20,0x40,0x02,0xef,0x6f,0xe2,0x42,0x16,0x68,0x42,
+0x0a,0x96,0x98,0x46,0x7e,0x00,0x1f,0xef,0xfe,0x22,0x1f,0xe2,0x72,0x00,0x1f,0xe0,
+0xfe,0x02,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x42,0x14,0x68,0x42,0x0a,0x96,0x18,0x4f,
+0x84,0x22,0xe0,0x44,0x00,0x0a,0x98,0x40,0x8c,0x00,0x20,0x40,0x67,0xc1,0x20,0x20,
+0x67,0xb9,0x67,0xe2,0x0a,0x96,0x1f,0xef,0xfe,0x22,0x1f,0xe2,0x72,0x00,0x1f,0xe0,
+0xfe,0x02,0x20,0x40,0x50,0xa5,0xdf,0xe0,0x00,0x00,0xe7,0xe4,0x00,0x0a,0x20,0x20,
+0x50,0x74,0xda,0x60,0x00,0x00,0x20,0x20,0x02,0xfa,0xda,0x60,0x00,0x01,0x70,0x0a,
+0xff,0x15,0x58,0x00,0x00,0x02,0x20,0x40,0x50,0xa5,0x20,0x40,0x03,0x0c,0x1a,0x62,
+0x7e,0x00,0xe7,0xe2,0x00,0x0a,0x20,0x20,0x67,0xb9,0xda,0x20,0x00,0x80,0x20,0x20,
+0x03,0x04,0xda,0x20,0x01,0x80,0x70,0x46,0x33,0x00,0x70,0x0a,0xff,0x14,0x58,0x00,
+0x00,0x03,0x20,0x40,0x50,0xa5,0x20,0x40,0x03,0x0c,0x1a,0x22,0x7e,0x00,0xe7,0xe4,
+0x00,0x0a,0x20,0x20,0x67,0xb9,0x6f,0xe2,0x04,0x51,0xe7,0xe2,0x00,0x0a,0x20,0x60,
+0x00,0x00,0x20,0x40,0x60,0xaa,0x20,0x20,0x02,0x53,0x20,0x40,0x4c,0xe4,0x20,0x40,
+0x4e,0x8f,0x6f,0xe2,0x46,0x6e,0x67,0xe2,0x41,0x73,0x70,0x0a,0xff,0x02,0x58,0x00,
+0x00,0x07,0x20,0x40,0x50,0xa5,0x20,0x40,0x03,0x0c,0x6f,0xec,0x04,0x4b,0xe7,0xec,
+0x00,0x0a,0x20,0x20,0x67,0xb9,0x20,0x40,0x4c,0xe8,0x70,0x0a,0xff,0x05,0x58,0x00,
+0x00,0x01,0x20,0x40,0x50,0xa5,0x20,0x40,0x03,0x0c,0x20,0x20,0x67,0xb9,0x78,0x55,
+0xfc,0x00,0x20,0x20,0x57,0x0b,0x20,0x40,0x5f,0xc4,0x20,0x40,0x7b,0xc1,0x6f,0xe2,
+0x04,0x5e,0xc2,0x81,0xd7,0x83,0x20,0x20,0x57,0x75,0x20,0x40,0x57,0x8c,0x20,0x40,
+0x4d,0x3f,0x70,0x0a,0x95,0x15,0x20,0x40,0x7b,0xab,0x20,0x20,0x03,0x94,0x79,0x20,
+0x00,0x09,0x1a,0x22,0x7e,0x00,0x67,0xe4,0x00,0x1e,0x18,0x00,0x72,0x50,0xd8,0xa0,
+0x04,0x3b,0x1a,0x22,0x0c,0x00,0x20,0x40,0x7c,0xcf,0x20,0x40,0x03,0x72,0x1f,0xe2,
+0x0c,0x00,0xd8,0xa0,0x43,0xae,0x18,0x00,0x72,0x27,0x20,0x40,0x7c,0xcf,0xef,0xe4,
+0x00,0x06,0x67,0xe4,0x46,0x52,0xef,0xea,0x00,0x06,0x67,0xea,0x43,0xd5,0xef,0xea,
+0x00,0x06,0x67,0xea,0x43,0xda,0xef,0xf0,0x00,0x06,0x67,0xf0,0x43,0xe3,0xef,0xe2,
+0x00,0x06,0x67,0xe2,0x44,0xbb,0xef,0xe2,0x00,0x06,0x67,0xe2,0x44,0x96,0xef,0xe2,
+0x00,0x06,0x67,0xe2,0x44,0x97,0xd8,0xa0,0x43,0xa0,0xdf,0x20,0x00,0x0e,0x20,0x40,
+0x7c,0xcf,0x1e,0xef,0xee,0x3a,0xdf,0xe0,0x0d,0x2d,0x9e,0xe0,0x8c,0x00,0xd8,0xa0,
+0x43,0xeb,0x18,0x00,0x72,0x3a,0x20,0x20,0x7c,0xcf,0x6f,0xe4,0x00,0x1e,0x98,0x00,
+0x0a,0x00,0x18,0x00,0x72,0x50,0xd8,0xc0,0x04,0x3b,0x20,0x40,0x7c,0xcf,0x20,0x40,
+0x03,0x72,0x1f,0xe2,0x0a,0x00,0xd8,0xc0,0x43,0xae,0x18,0x00,0x72,0x27,0x20,0x40,
+0x7c,0xcf,0x6f,0xe4,0x46,0x52,0xe7,0xe4,0x00,0x05,0x6f,0xea,0x43,0xd5,0xe7,0xea,
+0x00,0x05,0x6f,0xea,0x43,0xda,0xe7,0xea,0x00,0x05,0x6f,0xf0,0x43,0xe3,0xe7,0xf0,
+0x00,0x05,0x6f,0xe2,0x44,0xbb,0xe7,0xe2,0x00,0x05,0x6f,0xe2,0x44,0x96,0xe7,0xe2,
+0x00,0x05,0x6f,0xe2,0x44,0x97,0xe7,0xe2,0x00,0x05,0xd8,0xc0,0x43,0xa0,0xdf,0x20,
+0x00,0x0e,0x20,0x40,0x7c,0xcf,0x1e,0xef,0xee,0x3a,0xdf,0xe0,0x0d,0x2d,0x9e,0xe0,
+0x8a,0x00,0xd8,0xc0,0x43,0xeb,0x18,0x00,0x72,0x3a,0x20,0x20,0x7c,0xcf,0x6f,0xe4,
+0x00,0x1e,0xd8,0x40,0x49,0x60,0x98,0x46,0x7e,0x00,0x1f,0xe6,0xfc,0x50,0x20,0x40,
+0x7d,0x61,0x18,0x07,0xfe,0x00,0x1f,0xe2,0x6e,0x00,0x1f,0xef,0xfe,0x4c,0xd8,0x40,
+0x4b,0xe0,0x98,0x40,0xfe,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x03,0x7f,0x20,0x20,
+0x42,0x3a,0x68,0x42,0x49,0x5f,0xd8,0xe0,0x00,0x00,0xa8,0x4f,0xff,0xff,0x20,0x20,
+0x83,0x90,0xf9,0x20,0x04,0x00,0x60,0x42,0x49,0x5f,0x18,0xe2,0x7e,0x00,0x67,0xe2,
+0x00,0x15,0x1f,0xef,0xa2,0x50,0x1f,0xe0,0xfe,0x01,0x67,0xe2,0x04,0x51,0xdf,0xe0,
+0x49,0x60,0x9a,0x20,0xa2,0x00,0x6f,0xe2,0x49,0x5e,0x1f,0xe0,0xfe,0x01,0x67,0xe2,
+0x49,0x5e,0x20,0x20,0x42,0x4c,0x18,0xe0,0x8e,0x01,0x28,0xe0,0x1e,0x08,0x24,0x20,
+0x83,0x81,0x20,0x20,0x42,0x4a,0x6f,0xe4,0x00,0x1e,0xda,0x20,0x49,0x60,0x9a,0x26,
+0x7e,0x00,0x1f,0xe6,0xfc,0x50,0x20,0x40,0x7d,0x61,0x18,0x07,0xfe,0x00,0x98,0x00,
+0x0e,0x00,0x6f,0xe2,0x49,0x5f,0xf9,0x3f,0xfe,0x00,0x67,0xe2,0x49,0x5f,0x6f,0xe2,
+0x49,0x5e,0x1f,0xe0,0xff,0xff,0x67,0xe2,0x49,0x5e,0x20,0x60,0x00,0x00,0xda,0x20,
+0x49,0x60,0xdf,0x20,0x00,0x08,0x20,0x20,0x42,0x60,0x20,0x40,0x42,0x5a,0x24,0x22,
+0x83,0xa8,0x20,0x20,0x40,0x25,0x20,0x40,0x03,0xab,0x1f,0x26,0x7c,0x00,0x20,0x20,
+0x40,0x2d,0xdf,0x20,0x00,0x08,0x68,0x42,0x00,0x15,0x18,0x40,0x84,0x01,0x18,0x46,
+0x7c,0x07,0x20,0x21,0x03,0xb1,0xd8,0x40,0x00,0x00,0x60,0x42,0x00,0x15,0x18,0x4f,
+0xfe,0x50,0xda,0x20,0x49,0x60,0x9a,0x20,0xa2,0x00,0xef,0xe2,0x00,0x11,0xc2,0x80,
+0x83,0xb9,0xc3,0x80,0x00,0x00,0xc3,0x81,0x80,0x00,0xc2,0x00,0x03,0xad,0x20,0x60,
+0x00,0x00,0x42,0x0d,0xaa,0x55,0x40,0x00,0x00,0x40,0x22,0x00,0x00,0x00,0x00,0x5c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x02,0x10,0x00,0x0c,0x12,
+0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x08,0x48,0x00,0x28,0x00,0x01,0x10,0x2c,0x00,
+0x28,0x44,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x02,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x55,0x01,0x00,0x92,0x40,
+0x0a,0xaa,0x55,0x01,0x00,0x54,0x46,0x40,0xaa,0x55,0x01,0x00,0x06,0x42,0x13,0xaa,
+0x55,0x01,0x00,0x5b,0x41,0x01,0xaa,0x55,0x08,0x00,0x98,0x40,0xff,0xfb,0x8f,0xfa,
+0x8b,0x85,0x59,0x83,0xaa,0x55,0x03,0x00,0x14,0x42,0x45,0x48,0x08,0xaa,0x55,0x04,
+0x00,0x3d,0x45,0x01,0xff,0x00,0x03,0xaa,0x55,0x03,0x00,0x2d,0x46,0x03,0x00,0x04,
+0xaa,0x55,0x01,0x00,0x2c,0x46,0x00,0xaa,0x55,0x06,0x00,0x57,0x46,0x04,0x30,0x30,
+0x30,0x30,0x30,0xaa,0x55,0x10,0x00,0xf0,0x4f,0x00,0x1c,0xff,0x1f,0x00,0x1c,0x00,
+0x1c,0x80,0x4e,0xe0,0x4f,0x80,0x4e,0x80,0x4e,0xaa,0x55,0x02,0x00,0x68,0x46,0x10,
+0x0b,0xaa,0x55,0x01,0x00,0x6c,0x46,0x02,0xaa,0x55,0x01,0x00,0x6f,0x46,0x04,0xaa,
+0x55,0x03,0x00,0xaa,0x40,0x24,0x04,0x04,0xaa,0x55,0x01,0x00,0x79,0x46,0x00,0xaa,
+0x55,0x01,0x00,0x91,0x40,0x00,0xaa,0x55,0x03,0x00,0x54,0x41,0x00,0x01,0x08,0xaa,
+0x55,0x01,0x00,0x74,0x41,0x02,0xaa,0x55,0x01,0x00,0x93,0x40,0x00,0xaa,0x55,0x01,
+0x00,0x6d,0x46,0x28,0xaa,0x55,0x06,0x00,0xa0,0x40,0xaa,0xaa,0x2a,0x21,0x10,0x55,
+0xaa,0x55,0x07,0x00,0xe7,0x44,0x06,0x59,0x69,0x43,0x68,0x69,0x70,0xaa,0x55,0x03,
+0x00,0xe4,0x41,0x20,0x00,0x02,0xaa,0x55,0x01,0x00,0xe8,0x41,0x01,0xaa,0x55,0x01,
+0x00,0x90,0x44,0x00,0xaa,0x55,0x01,0x00,0x5f,0x44,0x07,0xaa,0x55,0x01,0x00,0x98,
+0x44,0x01,0xaa,0x55,0x04,0x00,0x75,0x46,0x2d,0x00,0x2f,0x00,0xaa,0x55,0x01,0x00,
+0x40,0x43,0x01,0xaa,0x55,0x02,0x00,0x54,0x44,0x01,0x03,0xaa,0x55,0x01,0x00,0x6e,
+0x46,0x01,0xaa,0x55,0x06,0x00,0x72,0x44,0x21,0xaa,0xaa,0x33,0x02,0x3a,0xaa,0x55,
+0x0a,0x00,0x81,0x43,0x09,0x59,0x69,0x43,0x68,0x69,0x70,0x2d,0x6c,0x65,0xaa,0x55,
+0x04,0x00,0x41,0x43,0x03,0x02,0x01,0x06,0xaa,0x55,0x0c,0x00,0x61,0x43,0x0b,0x0a,
+0x09,0x59,0x69,0x43,0x68,0x69,0x70,0x2d,0x6c,0x65,0xaa,0x55,0x07,0x00,0x25,0x44,
+0x02,0x03,0x00,0x05,0x10,0x02,0x03,0xaa,0x55,0x08,0x00,0x68,0x44,0x08,0x00,0x10,
+0x00,0x00,0x00,0x2c,0x01,0xaa,0x55,0x01,0x00,0x78,0x44,0x17,0xaa,0x55,0x01,0x00,
+0x7a,0x44,0x17,0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x02,0x00,0x47,
+0x45,0x00,0x00,0xaa,0x55,0x02,0x00,0x8e,0x44,0x83,0x46,0xaa,0x55,0x4e,0x01,0x83,
+0x46,0x01,0x00,0x02,0x00,0x28,0x02,0x01,0x18,0x02,0x00,0x02,0x03,0x28,0x01,0x20,
+0x03,0x00,0x02,0x05,0x2a,0x01,0x00,0x04,0x00,0x02,0x02,0x29,0x02,0x01,0x00,0x05,
+0x00,0x02,0x00,0x28,0x02,0x00,0x18,0x06,0x00,0x02,0x03,0x28,0x01,0x02,0x07,0x00,
+0x02,0x00,0x2a,0x13,0x59,0x69,0x43,0x68,0x69,0x70,0x2d,0x6c,0x65,0x20,0x20,0x20,
+0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x08,0x00,0x02,0x03,0x28,0x01,0x02,0x09,0x00,
+0x02,0x01,0x2a,0x02,0x00,0x00,0x0a,0x00,0x02,0x03,0x28,0x01,0x02,0x0b,0x00,0x02,
+0x04,0x2a,0x08,0x10,0x00,0x80,0x00,0x05,0x00,0x2c,0x01,0x0c,0x00,0x02,0x00,0x28,
+0x10,0x55,0xe4,0x05,0xd2,0xaf,0x9f,0xa9,0x8f,0xe5,0x4a,0x7d,0xfe,0x43,0x53,0x53,
+0x49,0x0d,0x00,0x02,0x03,0x28,0x01,0x10,0x0e,0x00,0x10,0x16,0x96,0x24,0x47,0xc6,
+0x23,0x61,0xba,0xd9,0x4b,0x4d,0x1e,0x43,0x53,0x53,0x49,0x14,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x10,0x00,0x02,0x03,0x28,0x01,0x08,0x11,
+0x00,0x10,0xb3,0x9b,0x72,0x34,0xbe,0xec,0xd4,0xa8,0xf4,0x43,0x41,0x88,0x43,0x53,
+0x53,0x49,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x02,0x03,0x28,0x01,0x04,0x13,0x00,
+0x10,0xfe,0x69,0xca,0x9a,0x56,0x19,0xf6,0xab,0x02,0x4d,0xaa,0x6d,0x43,0x53,0x53,
+0x49,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x02,0x03,0x28,0x01,0x1a,0x15,0x00,0x10,
+0x18,0x03,0xa6,0x28,0x5e,0xd8,0xec,0x91,0x1c,0x48,0xa3,0xac,0x43,0x53,0x53,0x49,
+0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x00,0x00,0xaa,
+0x55,0x07,0x00,0x76,0x41,0x0f,0x84,0xf0,0x0a,0x0b,0xb2,0x32,0xaa,0x55,0x02,0x00,
+0x57,0x41,0x8b,0x0b,0xaa,0x55,0x08,0x00,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0xaa,0x55,0x02,0x00,0xbd,0x40,0x02,0x24,0xaa,0x55,0x08,0x00,0xad,0x40,
+0x40,0x00,0x00,0x02,0x32,0x00,0x00,0x02,0xaa,0x55,0x02,0x00,0xbb,0x40,0x20,0x00,
+0xaa,0x55,0x04,0x00,0xb7,0x40,0x20,0x00,0x00,0x20,0xaa,0x55,0x04,0x00,0xbf,0x40,
+0x80,0x04,0x00,0x10,0xaa,0x55,0x05,0x00,0xe2,0x44,0x08,0x0e,0x05,0x04,0x00,0xaa,
+0x55,0x02,0x00,0x02,0x42,0x30,0x1f,0xaa,0x55,0x01,0x00,0x10,0x42,0x20,0xaa,0x55,
+0x01,0x00,0xe0,0x41,0x01,0xaa,0x55,0x0f,0x00,0x40,0x40,0x4b,0xba,0x55,0xd0,0x56,
+0xe0,0x57,0x88,0x58,0x6c,0x59,0x10,0x07,0xff,0xff,0xaa,0x55,0x02,0x00,0xc3,0x40,
+0x40,0x40,0xf0,0x30
+};
Index: output/memmap.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/output/memmap.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/output/memmap.format	(working copy)
@@ -0,0 +1,1054 @@
+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_sniff_timeout_temp
+0x008d mem_nfreq_index_inq
+0x008e mem_nfreq_index_page
+0x008f mem_ninqy_index
+0x0090 mem_fhs_misc
+0x0091 mem_subsniff_instant
+0x0095 mem_subsniff_rate
+0x0096 mem_subsniff_tcmax
+0x0098 mem_subsniff_tsniff
+0x0099 mem_lpm_adjust
+0x009a mem_sync_clke
+0x00a0 mem_lpm_current_mult
+0x00a1 mem_gpio_wakeup
+0x00a7 mem_air_mode
+0x00a8 mem_sco_asso_handle
+0x00a9 mem_sco_handle
+0x00ab mem_esco_desco
+0x00ac mem_esco_type
+0x00ad mem_neogotiation_state
+0x00ae mem_saved_amaddr
+0x00af mem_esco_arq
+0x00b0 mem_esco_saved_arq
+0x00b1 mem_sco_obuf
+0x00cf mem_sco_ibuf
+0x00ed mem_sco_poll
+0x00ee mem_npage_index
+0x00ef mem_page_mode
+0x00f0 mem_page_clk
+0x00f4 mem_tst_pktcnt_sync
+0x00f6 mem_tst_pktcnt_hec
+0x00f8 mem_tst_pktcnt_crc
+0x00fa mem_tst_pktcnt_dmh
+0x00fc mem_tmp_buffer_head
+0x00ff mem_tmp_buffer
+0x014f mem_tester_emulate
+0x0150 mem_temp_payload
+0x0150 test_mode_scenario
+0x0151 test_mode_hopping_mode
+0x0152 test_mode_tx_freq
+0x0153 test_mode_rx_freq
+0x0154 test_mode_power_mode
+0x0155 test_mode_poll_period
+0x0156 test_mode_packet_type
+0x0157 test_mode_data_length
+0x0159 mem_test_mode_old_debug_config
+0x015a mem_tester_cnt
+0x015b mem_temp_am_addr
+0x015c mem_temp_arq
+0x015d mem_len
+0x015f mem_clkn_bt
+0x0163 mem_clke_bt
+0x0167 mem_dpll_clkn
+0x016b mem_connection_options
+0x016c mem_nameres_cnt
+0x016d mem_txptr
+0x016f mem_slot_offset
+0x0171 extm_fhs_misc
+0x0172 extm_newconn_am_addr
+0x0173 extm_class
+0x0176 extm_lap
+0x0179 extm_uap
+0x017a extm_nap
+0x017d mem_debug_config
+0x017e mem_lch_code
+0x017f mem_fhs_am_addr
+0x0180 mem_dpll_error
+0x0182 mem_select_list_item
+0x0183 mem_temp_reconn_record
+0x0183 mem_record_bt_mode
+0x0184 mem_temp_lap
+0x018a mem_list_item_ptr
+0x018c mem_eir
+0x01f0 mem_ucode_status
+0x01f1 mem_otp_ucode_flag
+0x01f3 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x01f4 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x01f4 mem_addr_hi
+0x01f5 mem_addr_mi
+0x01f6 mem_addr_lo
+0x01f7 mem_iicd_addr
+0x01f8 mem_spid_rbuf
+0x01fc mem_ucode_buf
+0x01fe mem_ucode_len
+0x0200 mem_sched_addr
+0x0202 mem_ucode_ptr
+0x0204 mem_ucode_keybuf
+0x0214 mem_check_plap_temp
+0x0226 mem_reconnect_flag
+0x0227 mem_switch_fail_master_count
+0x0228 mem_app_evt_timer_count
+0x0229 mem_h5rx_ackcnt
+0x022a mem_check_err_acl_cont
+0x022b mem_rp_packets
+0x022c mem_packet_type
+0x022e mem_hci_sniff_conn_handle
+0x0230 mem_hci_sniff_max_interval
+0x0232 mem_hci_sniff_min_interval
+0x0234 mem_hci_sniff_attempt
+0x0236 mem_hci_sniff_timeout
+0x0238 mem_voice_setting
+0x023a mem_retransmission_effort
+0x023b mem_sco_ptype
+0x023d mem_extm_uap_restore
+0x0240 mem_h5rx_rptr
+0x0242 mem_h5rx_ack
+0x0243 mem_h5tx_ack
+0x0244 mem_h5tx_rptr
+0x0246 mem_h5tx_wptr
+0x0248 mem_h5tx_free
+0x024a mem_h5rx_tmp
+0x024b mem_h5tx_seq
+0x024c mem_hci_acl_queue_wptr
+0x024e mem_hci_acl_queue_rptr
+0x0250 mem_hci_acl_queue_end
+0x0252 mem_hci_acl_queue_wcnt
+0x0253 mem_hci_acl_cnt
+0x0254 mem_hci_acl_tx_trigger_wptr//tx via uart
+0x0256 mem_hci_curr_len
+0x0257 mem_hci_curr_target
+0x0259 mem_l2cap_mem_start
+0x0259 mem_l2cap_rxbuff1_len
+0x025b mem_l2cap_rxbuff2_len
+0x025d mem_l2cap_rxbuff_new
+0x025f mem_l2cap_rxbuff_inuse
+0x0260 mem_l2cap_payload_ptr
+0x0262 mem_l2cap_rx_pkt_length
+0x0264 mem_l2cap_rx_cid
+0x0266 mem_l2cap_rx_done
+0x0267 mem_l2cap_signal_tx_buff_ptr
+0x0269 mem_l2cap_signal_tx_payload_ptr
+0x026b mem_l2cap_signal_tx_length
+0x026d mem_sdp_tx_buff_ptr
+0x026f mem_sdp_tx_payload_ptr
+0x0271 mem_sdp_tx_pkt_length
+0x0273 mem_rfcomm_tx_buff_ptr
+0x0275 mem_rfcomm_tx_payload_ptr
+0x0277 mem_rfcomm_tx_pkt_length
+0x0279 memL2CAP_T1
+0x027b mem_CONTROL_tasks
+0x027c mem_send_config_req
+0x027d mem_config_identifier
+0x027e mem_config_req_dest_CID
+0x0280 mem_rfcomm_malloc_fail_flag
+0x0281 mem_message_to_uppersm
+0x0282 mem_upper_sm_remote_page
+0x0283 mem_upper_sm_reconn
+0x0284 mem_upper_sm_ss
+0x0285 mem_tx_malloc_log
+0x02c5 mem_l2cap_mem_end
+0x02c5 mem_scid
+0x02c7 mem_cmd_length
+0x02c9 mem_tt2
+0x02cb mem_tt3
+0x02cd mem_id
+0x02cf mem_psm
+0x02d1 mem_l2cap_sdpres_delay_time
+0x02d5 mem_le_rxbuf
+0x030d mem_le_l2capbuf
+0x0413 mem_le_mic
+0x0417 mem_le_peer_mic
+0x041b mem_le_peer_ltk
+0x042b mem_le_mrand
+0x043b mem_le_state
+0x043c mem_le_mode
+0x043d mem_le_tsniff
+0x043f mem_le_anchor
+0x0443 mem_le_clk_offset
+0x0449 mem_le_receive_window
+0x044b mem_le_plap
+0x0451 mem_le_conn_handle
+0x0452 mem_le_arq
+0x0453 mem_le_ch
+0x0454 mem_le_hop
+0x0455 mem_le_event_count
+0x0457 mem_le_supervision_timer
+0x045b mem_le_instant
+0x045d mem_le_channels
+0x045e mem_le_op
+0x045f mem_le_access
+0x0463 mem_le_crcinit
+0x0466 mem_le_window_size
+0x0467 mem_le_slave_latency
+0x0469 mem_le_superto
+0x046b mem_le_channel_map
+0x0470 mem_le_no_using
+0x0472 mem_le_peer_sca
+0x0473 mem_le_att_opcode
+0x0474 mem_le_att_handle
+0x0476 mem_le_err_code
+0x0477 mem_le_ll_pairing_fail_reason
+0x0478 mem_le_sk
+0x0488 mem_le_testtype
+0x0489 mem_le_test_sync
+0x048b mem_le_test_pcnt
+0x048d mem_le_rxon_ts
+0x0493 mem_le_rx_ll_opcode
+0x0494 mem_le_notify_attr_start
+0x0496 mem_le_notify_len
+0x0497 mem_cmd_le_create_conn
+0x0498 mem_le_cur_attlist_start_ptr
+0x049a mem_le_cur_handle_start
+0x049c mem_le_cur_handle_end
+0x049e mem_le_cur_uuid_length
+0x049f mem_le_cur_uuid
+0x04af mem_le_curr_att_len
+0x04b0 mem_le_search_res
+0x04b1 mem_le_continue_type
+0x04b2 mem_lmo_header_length
+0x04b3 mem_lmo_header_opcode
+0x04b4 mem_lmo_payload
+0x04c5 mem_lmi_accepted_opcode
+0x04c6 mem_disconn_reason_send
+0x04c7 mem_tx_fixed_freq
+0x04c8 mem_rx_fixed_freq
+0x04c9 mem_ext_features_page
+0x04ca mem_lmpext_ssp_enable
+0x04cc mem_remote_sppcap
+0x04cd mem_lmp_conn_state
+0x04ce mem_soft_timer
+0x04d0 mem_pincode_state
+0x04d1 mem_sres_tid
+0x04d2 mem_accptsco_tid
+0x04d3 mem_auth_enable
+0x04d4 mem_wait_encryption
+0x04d5 mem_sniff_payload
+0x04e5 mem_aurand_send_delay_time
+0x04e9 memRemoteRPNBitRate
+0x04ea memRemotePRNDataBits
+0x04eb memRemotePRNStopBit
+0x04ec memRemotePRNParity
+0x04ed memRemotePRNFlowControl
+0x04ee memRemotePRNXon
+0x04ef memRemotePRNXoff
+0x04f0 mem_mod2div_temp
+0x04f3 mem_contw_temp
+0x04f5 mem_attrib_list
+0x04f7 mem_current_adss
+0x04f8 mem_current_channel
+0x04f9 mem_current_frame_type
+0x04fa mem_current_fcs
+0x04fb mem_current_length
+0x04fd mem_rfcomm_uih_payload_ptr
+0x04ff mem_uih_cmd_type
+0x0500 mem_uih_length
+0x0502 mem_param_payload_ptr
+0x0504 mem_ms_param
+0x0505 mem_pn_credit_flow_type_info
+0x0506 mem_pn_priority
+0x0507 mem_pn_acknowledg_timer
+0x0508 mem_pn_max_retrans
+0x0509 mem_rfcomm_send_adss
+0x050a mem_rfcomm_send_frame_type
+0x050b mem_rfcomm_send_fcs
+0x050c mem_rfcomm_send_offset
+0x050d mem_sdp_mem_start
+0x050d mem_sdp_uuid_search_ptr
+0x0515 mem_sdp_continue_byte
+0x0517 mem_sdp_pduid
+0x0518 mem_sdp_transactionid
+0x051a mem_sdp_transactionid_local
+0x051c mem_sdp_attribute_maxbyte
+0x051e mem_sdp_record_maxcnt
+0x0520 mem_sdp_record_handle
+0x0524 mem_sdp_LACAP_found
+0x0525 mem_sdp_RFCOMM_found
+0x0526 mem_sdp_handle_list
+0x0526 mem_sdp_attrib_list
+0x0546 mem_sdp_error_code
+0x0548 mem_sdp_all_length
+0x054a mem_handle_humber
+0x054b mem_search_uuid
+0x054d mem_sdp_mem_end
+0x054d mem_rxbuf
+0x055e mem_random_number
+0x056e mem_round_key
+0x057e mem_kinit
+0x058e mem_input_store
+0x059e mem_x
+0x05ae mem_y
+0x05bd mem_y15
+0x05be mem_key_store
+0x05cf mem_key_store_end
+0x05d0 memp_ar_key
+0x05d2 memp_ar_input
+0x05d4 mem_ar_hround
+0x05de mem_ec_infinite
+0x05df mem_ec_loopc
+0x05e1 mem_aes_cmac_data_length
+0x05e2 memdat
+0x05e2 mem_ax
+0x05fa mem_ay
+0x0612 mem_az
+0x062a mem_bx
+0x0642 mem_ax_256//32 bytes
+0x0642 mem_by
+0x065a mem_bz
+0x0662 mem_ay_256// 32 bytes
+0x0672 mem_cx
+0x0682 mem_az_256// 32 bytes
+0x068a mem_cy
+0x06a1 mem_cy5
+0x06a2 mem_bx_256// 32 bytes
+0x06a2 mem_cz
+0x06ba mem_k
+0x06c2 mem_by_256// 31 bytes
+0x06d2 mem_align
+0x06e2 mem_bz_256//32 bytes
+0x06e2 mem_tmp1
+0x06e2 memahbak
+0x06fa mem_tmp5
+0x0702 mem_cx_256//32 bytes
+0x0702 memahsave
+0x0712 mem_tmp2
+0x0722 mem_cy_256// 32 bytes
+0x0722 memahsave_end
+0x0722 mem_addr_padding
+0x0723 mem_addr_value/* 12 bytes     */ 
+0x072a mem_tmp3
+0x072a mem_t1
+0x072f mem_addr_value_end
+0x0732 mem_addr_iocap_end
+0x0741 mem_cy5_256// 1 byte
+0x0742 mem_cz_256// 32 bytes
+0x0742 mem_tmp0
+0x0742 mem_t0
+0x074a mem_tmp0a
+0x075a mem_t2
+0x0762 mem_k_256//32 bytes
+0x0772 mem_t3
+0x0782 mem_tmp1_256//32 bytes
+0x078a mem_t7
+0x07a2 mem_tmp5_256
+0x07c2 mem_tmp2_256
+0x07e2 mem_tmp3_256
+0x07e2 mem_t1_256
+0x0802 mem_tmp0_256
+0x0802 mem_t0_256
+0x0822 mem_t2_256
+0x0842 mem_t3_256
+0x0862 mem_t7_256
+0x0882 mem_p
+0x089a mem_a
+0x08b2 mem_b
+0x08ca mem_gx
+0x08e2 mem_gy
+0x08fa memh0
+0x091a mem_p_256
+0x093a mem_a_256
+0x095a mem_gx_256
+0x097a mem_gy_256
+0x099a mem_le_slat
+0x09aa mem_sp_state_start
+0x09aa mem_sp_state
+0x09ab mem_master_sp_state
+0x09ac mem_sp_flag
+0x09ad mem_master_sp_flag
+0x09ae mem_sp_calc
+0x09af mem_sp_dh_ready
+0x09b0 mem_sp_localsm
+0x09b1 mem_pairing_auth
+0x09b2 mem_sp_flag_start
+0x09b2 mem_sp_local_key_send_count
+0x09b3 mem_sp_remote_key_recv_count
+0x09b4 mem_sp_remote_key_invalid
+0x09b5 mem_sp_dhkey_invalid
+0x09b6 mem_gkey
+0x09ba mem_le_pubkey_remote_x_256
+0x09c2 mem_sp_pubkey_remote
+0x09c2 mem_sp_pubkey_remote_x
+0x09da mem_sp_pubkey_remote_x_end
+0x09da mem_le_pubkey_remote_y_256
+0x09e2 mem_sp_pubkey_remote_y
+0x09fa mem_le_dhkey_256
+0x0a02 mem_sp_dhkey
+0x0a1a mem_sp_dhkey_end
+0x0a1a mem_sp_random_local
+0x0a2a mem_sp_random_local_end
+0x0a2a mem_sp_random_remote
+0x0a3a mem_sp_random_remote_end
+0x0a3a memresult
+0x0a3a mem_sp_calc_result
+0x0a3a memh
+0x0a3e memg
+0x0a42 memf
+0x0a46 meme
+0x0a4a mem_sp_calc_result_high
+0x0a4a memd
+0x0a4e memc
+0x0a52 memb
+0x0a56 mema
+0x0a5a mem_sp_check_result
+0x0a6a mem_sp_confirm_remote
+0x0a7a mem_sp_prarm_stack
+0x0a8a mem_UI_data_txbuff_length
+0x0a8c mem_ipc_skip_continue_proc
+0x0a8d mem_ui_timer_temp//length 4
+0x0a8d mem_ipc_rega_temp
+0x0a91 mem_hold_contr
+0x0a93 mem_hold_contw
+0x0a95 mem_fifo_temp
+0x0a96 mem_pdatatemp
+0x0a9e mem_temp//8 bytes
+0x0aa6 mem_timeup// 4 bytes
+0x0aaa mem_rega//4 bytes
+0x0aae mem_regb//4 bytes
+0x0ab2 mem_regc//3 bytes
+0x0ab5 mem_contr//2 bytes
+0x0ab7 mem_contw//2 bytes
+0x0ab9 mem_wakup_from_power_flag
+0x0aba mem_saved_gpio_in
+0x0abe mem_shutter_random_mac_data_temp
+0x0abe mem_shutter_config_data_temp
+0x0abe mem_le_adv_channel_map_temp
+0x0abe mem_le_data_len_temp//1byte
+0x0abe mem_tx_fifo_map_temp
+0x0abe mem_rpn_dlci//1byte
+0x0abe mem_event_cmd_response_content//2byte
+0x0abe mem_le_prand//16byte
+0x0abe mem_AES_CMAC_k//16 bytes
+0x0abe mem_regext_index//1 bytes
+0x0abe mem_temp_block0
+0x0abf mem_le_data_temp//15bytes
+0x0abf mem_temp_block1
+0x0ace mem_le_aes_128//16byte
+0x0ace mem_regext//64 bytes
+0x0ace mem_AES_CMAC_k1//16 bytes
+0x0ace mem_temp_block2
+0x0ade mem_AES_CMAC_k2//16 bytes
+0x0ade mem_temp_block3
+0x0aee mem_AES_CMAC_temp// 16 bytes
+0x0aee mem_temp_block4
+0x0afe mem_AES_CMAC_M_last// 16 bytes
+0x0afe mem_module_uart_cmd
+0x0aff mem_module_uart_opcode
+0x0b00 mem_module_uart_len
+0x0b01 mem_module_temp_nl_discard_packet
+0x0b02 mem_temp_block5
+0x0b0e mem_le_mackey//16 bytes
+0x0b0e mem_app_receive_temp
+0x0b0e mem_key_value_temp
+0x0b10 mem_key_value
+0x0b12 mem_key_value_temp1
+0x0b13 mem_key_value_temp2
+0x0b14 mem_key_value_temp3
+0x0b15 mem_key_value_temp4
+0x0b16 mem_key_value_temp5
+0x0b17 mem_key_value_temp6
+0x0b18 mem_temp_block6
+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
+0x4090 mem_current_amaddr
+0x4091 mem_lpm_mode
+0x4092 mem_device_option
+0x4093 mem_scan_mode
+0x4094 mem_last_clkn
+0x4098 mem_features
+0x40a0 mem_lap
+0x40a3 mem_uap
+0x40a4 mem_nap
+0x40a6 mem_npage
+0x40a7 mem_glap
+0x40aa mem_class
+0x40ad mem_iscan_window
+0x40af mem_iscan_interval
+0x40b1 mem_pscan_window
+0x40b3 mem_pscan_interval
+0x40b5 mem_page_interval
+0x40b7 mem_page_window
+0x40b9 mem_page_to
+0x40bb mem_inq_window
+0x40bd mem_fcomp_mul
+0x40be mem_fcomp_div
+0x40bf mem_rx_window_init
+0x40c1 mem_rx_window_sniff
+0x40c3 mem_rf_init_ptr
+0x40c5 mem_last_type
+0x40c6 mem_last_type_esco
+0x40c7 mem_last_type_saved
+0x40c8 mem_retransmission_cnt
+0x40ca mem_next_btclk
+0x40ce mem_rf_rccal
+0x40cf mem_handle_num
+0x40d0 mem_max_slot
+0x40d1 mem_eir_enable
+0x40d2 mem_afh_instant
+0x40d6 mem_afh_error_total
+0x40d8 mem_afh_cfg
+0x40d9 mem_afh_new_mod
+0x40da mem_afh_map_lo
+0x40df mem_afh_map_hi
+0x40e4 mem_afh_used
+0x40e5 mem_afh_index
+0x40e7 mem_afh_map_new
+0x40f2 mem_afh_map
+0x4142 mem_afh_timer
+0x4146 mem_afh_classify_channel_map
+0x4150 mem_chip_functions
+0x4152 mem_lpm_wake_lock
+0x4154 mem_lpm_interval
+0x4156 mem_lpm_overhead
+0x4157 mem_lpm_hibernate_switch
+0x4158 mem_lpm_doze_switch
+0x4159 mem_esco_addr
+0x415a mem_sniff_unint_lost
+0x415b mem_ptt
+0x415c mem_sleep_counter//should be 0x41fc in REVC
+0x4160 mem_sleep_counter_all
+0x4164 mem_sleep_clkn
+0x416a mem_sniff_rcv
+0x416d mem_sniff_lost
+0x4170 mem_clks_per_lpo
+0x4173 mem_lpm_mult
+0x4174 mem_lpm_mult_timeout
+0x4175 mem_lpm_mult_cnt
+0x4176 mem_lpm_config
+0x4179 mem_lpm_xtalcnt
+0x417a mem_lpm_buckcnt
+0x417b mem_lpm_ldocnt
+0x417c mem_lpm_isogate
+0x417d mem_lpm_isogate_final
+0x417e mem_saved_gpio// should be 0x421e in REVC
+0x418e mem_saved_gsel
+0x4191 mem_saved_mark
+0x4199 mem_saved_spidctrl
+0x419a mem_patch_ptr
+0x419c mem_patch_len
+0x419e mem_timers
+0x41be mem_link_key_exists
+0x41bf mem_link_key
+0x41cf mem_hci_cmd
+0x41d0 mem_hci_conn_handle
+0x41d1 mem_hci_plap
+0x41d4 mem_hci_puap
+0x41d5 mem_hci_pnap
+0x41d7 mem_uartd_rxitems_got_data
+0x41d8 mem_uartd_rxitems_threshold
+0x41d9 mem_uartd_rx_timeout
+0x41db mem_loadcode_times
+0x41dc mem_tx_lch
+0x41dd mem_tx_len
+0x41df mem_tx_power
+0x41e0 mem_context_number
+0x41e1 mem_250k_freq_enable
+0x41e2 mem_rf_init_data
+0x41e3 mem_app_handshake_flag
+0x41e4 mem_sniff_param_interval
+0x41e6 mem_sniff_param_attempt
+0x41e8 mem_sniff_param_timeout
+0x41ea mem_cb_check_wakelock
+0x41ec mem_cb_before_hibernate
+0x41ee mem_cb_before_lpm
+0x41f0 mem_cb_le_process
+0x41f2 mem_cb_bt_process
+0x41f4 mem_cb_idle_process
+0x41f6 mem_cb_bb_event_process
+0x41f8 mem_cb_discovry_timeout
+0x41fa mem_cb_att_write
+0x41fc mem_cb_ble_transmit
+0x41fe mem_cb_event_timer
+0x4200 mem_cb_bt_set_mult
+0x4202 mem_eeprom_base
+0x4204 mem_unsniff2sniff_timer_count
+0x4205 mem_wake_up_delay_timer
+0x4206 mem_app_connection_options
+0x4207 mem_app_disconn_reason
+0x4209 mem_app_disconn_reason_flag
+0x420b mem_lpm_delay_after_sniff
+0x420f mem_xrecord_mode
+0x4210 mem_eeprom_block_size
+0x4211 mem_spi_init_clk
+0x4212 mem_spi_init_delay_time
+0x4213 mem_spi_ncs_gpio
+0x4214 mem_nv_data_ptr
+0x4216 mem_nv_data_number
+0x4217 mem_hci_lt_rx_state
+0x4218 mem_l2cap_xmem_start
+0x4218 mem_l2cap_tx_multi_offset//0 means single packet
+0x421a mem_sdp_remote_cid
+0x421c mem_rfcomm_remote_cid
+0x421e mem_hid_ctrl_remote_cid
+0x4220 mem_hid_int_remote_cid
+0x4222 mem_sdp_state
+0x4223 mem_rfcomm_state
+0x4224 mem_hid_control_state
+0x4225 mem_hid_interrupt_state
+0x4226 mem_spp_state
+0x4227 mem_ML2CAP_comm_id
+0x4228 mem_used_map
+0x4229 mem_tx_fifo0
+0x4229 mem_tx_fifo0_map
+0x422a mem_tx_fifo0_ptr
+0x422c mem_tx_fifo1
+0x422c mem_tx_fifo1_map
+0x422d mem_tx_fifo1_ptr
+0x422f mem_tx_fifo2
+0x422f mem_tx_fifo2_map
+0x4230 mem_tx_fifo2_ptr
+0x4232 mem_tx_fifo3
+0x4232 mem_tx_fifo3_map
+0x4233 mem_tx_fifo3_ptr
+0x4235 mem_tx_fifo_end
+0x4235 mem_l2cap_lpm_txbuf
+0x4335 mem_l2cap_flow_ctrl_flag
+0x4336 mem_l2cap_pending_item
+0x4337 mem_l2cap_xmem_end
+0x4337 mem_le_dsniff
+0x4339 mem_le_conn_interval
+0x433b mem_le_scan_enable
+0x433c mem_le_scan_interval
+0x433e mem_le_scan_window
+0x4340 mem_le_adv_enable
+0x4341 mem_le_adv_data_len
+0x4342 mem_le_adv_data
+0x4361 mem_le_scan_data_len
+0x4362 mem_le_scan_data
+0x4381 mem_le_name_len
+0x4382 mem_le_name
+0x43a0 mem_le_new_map
+0x43a5 mem_le_new_param
+0x43a5 mem_le_new_transmitwindowsize
+0x43a6 mem_le_new_transmitwindowoffset
+0x43a8 mem_le_new_conninterval
+0x43aa mem_le_new_connslavelatency
+0x43ac mem_le_new_connsupervisiontimeout
+0x43ae mem_le_txheader
+0x43af mem_le_txlen
+0x43b0 mem_le_txpayload
+0x43b2 mem_le_txcid
+0x43b4 mem_le_l2cap
+0x43b5 mem_le_l2cap_response
+0x43b6 mem_le_txbdy
+0x43d5 mem_le_pcnt_tx
+0x43da mem_le_pcnt_rx
+0x43df mem_le_last_mic
+0x43e3 mem_le_ivm
+0x43e7 mem_le_ivs
+0x43eb mem_le_ltk
+0x43fb mem_ltk_exists
+0x43fc mem_le_rconfirm
+0x440c mem_le_srand
+0x441c mem_le_iat
+0x441d mem_le_rat
+0x441e mem_le_preq
+0x441f mem_le_preq_iocap
+0x4420 mem_le_preq_oob
+0x4421 mem_le_preq_auth
+0x4422 mem_le_preq_max_keysize
+0x4423 mem_le_preq_init_key_distribution
+0x4424 mem_le_preq_resp_key_distribution
+0x4425 mem_le_pres
+0x4426 mem_le_pres_iocap
+0x4427 mem_le_pres_oob
+0x4428 mem_le_pres_auth
+0x4429 mem_le_pres_max_keysize
+0x442a mem_le_pres_init_key_distribution
+0x442b mem_le_pres_resp_key_distribution
+0x442c mem_le_search_handle_start
+0x442e mem_le_search_handle_end
+0x4430 mem_le_att_offset
+0x4430 mem_le_search_att_type_length
+0x4431 mem_le_search_att_type
+0x4441 mem_le_notify_handle
+0x4443 mem_le_search_uuid_length
+0x4444 mem_le_search_uuid
+0x4454 mem_le_adv_param
+0x4454 mem_le_adv_interval
+0x4456 mem_le_adv_type
+0x4457 mem_le_adv_own_addr_type
+0x4458 mem_le_adv_direct_addr_type
+0x4459 mem_le_adv_direct_addr
+0x445f mem_le_adv_channel_map
+0x4460 mem_le_conn_param
+0x4460 mem_le_conn_peer_addr_type
+0x4461 mem_le_conn_peer_addr
+0x4467 mem_le_conn_own_addr_type
+0x4468 mem_le_interval_min
+0x446a mem_le_interval_max
+0x446c mem_le_latency
+0x446e mem_le_timeout
+0x4470 mem_le_scan_params
+0x4470 mem_le_scan_type
+0x4471 mem_le_scan_own_addr_type
+0x4472 mem_le_lap
+0x4475 mem_le_uap
+0x4476 mem_le_nap
+0x4478 mem_le_local_mtu
+0x447a mem_le_remote_mtu
+0x447c mem_le_skdm
+0x4484 mem_le_skds
+0x448c mem_le_init_superto
+0x448e mem_ui_le_uuid_table
+0x4490 mem_le_secure_connect_enable
+0x4491 mem_le_secure_connect_flag
+0x4492 mem_le_sc_calc
+0x4493 mem_le_secure_connect_state
+0x4494 mem_le_sc_confirm_gkey_flag
+0x4495 mem_le_sc_local_key_invalid
+0x4496 mem_le_pairing_state
+0x4497 mem_le_enc_state
+0x4498 mem_le_pairing_mode
+0x4499 mem_le_tk
+0x449d mem_le_ediv
+0x449f mem_le_rand
+0x44a7 mem_le_irk
+0x44b7 mem_le_transmit_window
+0x44bb mem_le_configuration
+0x44bc mem_le_fixed_ltk
+0x44cc mem_le_pairing_handle
+0x44ce mem_le_l2cap_size
+0x44d0 mem_le_packet_len_recved
+0x44d1 mem_le_tx_buff_used
+0x44d2 mem_le_tx_ptr0
+0x44d4 mem_le_tx_ptr1
+0x44d6 mem_le_tx_ptr2
+0x44d8 mem_le_tx_ptr3
+0x44da mem_le_signaling_identifier
+0x44db mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x44dd mem_le_packet_size
+0x44de mem_le_packet_llid
+0x44df mem_le_payload_ptr
+0x44e1 mem_le_md_count
+0x44e2 mem_lmp_version
+0x44e5 mem_lmp_subversion
+0x44e7 mem_local_name_length
+0x44e8 mem_local_name
+0x44eb mem_local_name2
+0x452b mem_local_name_end
+0x452c mem_unsniff2sniff_timer
+0x452d mem_switch_flag
+0x452e mem_classic_bt_flag
+0x452f mem_pn_dlci
+0x4530 mem_pn_max_frame_size
+0x4532 memFCStemp1
+0x4533 memFCStemp2
+0x4534 memFCStemp3
+0x4535 mem_rfcomm_initiator
+0x4536 mem_remote_spp_channel
+0x4537 mem_HIUfcs_SPP
+0x4538 mem_HIUfcs_SPP_WCredits
+0x4539 mem_rfcomm_send_more_pkt
+0x453a mem_remote_credits
+0x453b mem_credit_given
+0x453c mem_ms_channel
+0x453d mem_credit_flag
+0x453e mem_rfcomm_max_frame_size
+0x4540 mem_rfcomm_credit_init_data
+0x4541 mem_cb_receive_spp_data
+0x4543 mem_nl_rx_data_src
+0x4545 mem_nl_rx_len_all
+0x4547 mem_ui_uuid_table
+0x4549 mem_all_uuid_16bits
+0x455f mem_all_uuid_128bits
+0x4581 mem_sdp_l2capch_ptr
+0x4583 mem_sp_local_key_invalid
+0x4584 mem_le_private_key_256
+0x45a4 mem_le_pubkey_local_x_256
+0x45c4 mem_le_pubkey_local_y_256
+0x45e4 mem_sp_private_key
+0x45fc mem_sp_pubkey_local
+0x45fc mem_sp_pubkey_local_x
+0x4614 mem_sp_pubkey_local_x_end
+0x4614 mem_sp_pubkey_local_y
+0x462c mem_ssp_enable
+0x462d mem_sp_iocap_local
+0x4630 mem_sp_iocap_remote
+0x4633 mem_flag_mode_ssp_pin
+0x4634 mem_ssp_mode_flag
+0x4635 mem_authentication_passkey_times
+0x4636 mem_passkey_1bit
+0x4637 mem_flag_pairing_state
+0x4638 mem_ipc_lock_bt
+0x4639 mem_ipc_lock_c51
+0x463a mem_ipc_fifo_bt2c51
+0x4642 mem_ipc_fifo_c512bt
+0x464a mem_ui_timer_last_btclk
+0x464e mem_discovery_timeout_timer_count
+0x4650 mem_hid_handshake_timer_count
+0x4651 memui_reconnect_mode
+0x4652 mem_ui_state_map
+0x4654 mem_ui_profile_supported
+0x4655 mem_discovery_timeout
+0x4657 mem_pin_length
+0x4658 mem_pin
+0x4668 mem_soft_version_num
+0x466a mem_current_packet_length
+0x466c mem_module_state
+0x466d mem_module_spp_lpm_mult
+0x466e mem_module_le_lpm_mult
+0x466f mem_module_bluetooth_stauts_by_command
+0x4670 mem_module_le_rx_data_len
+0x4671 mem_module_le_rx_data_address
+0x4673 mem_module_le_rx_data_handle
+0x4675 mem_module_data_write_handle
+0x4677 mem_module_data_write_handle2
+0x4679 mem_module_flag
+0x467a mem_module_hci_notify_len
+0x467b mem_module_hci_notify_handle
+0x467d mem_module_hci_nofiy_addr
+0x467f mem_last_transmite_clock
+0x4683 mem_module_uuid_list_end
+0x4683 mem_module_le_att_list
+0x4845 mem_module_le_att_list_end
+0x4845 mem_module_nv_data
+0x4845 mem_module_nv_data0
+0x4867 mem_module_nv_data1
+0x4889 mem_module_nv_data2
+0x48ab mem_module_nv_data3
+0x48cd mem_module_nv_data4
+0x48ef mem_module_nv_data5
+0x4911 mem_module_nv_data6
+0x4933 mem_module_nv_data7
+0x4955 mem_le_buff_len
+0x4957 mem_le_buff_len_all
+0x4959 mem_ipcbuf_bt2m0_flag
+0x495a mem_ipcbuf_bt2m0_write
+0x495c mem_ipcbuf_bt2m0_read
+0x495e mem_context_cnt
+0x495f mem_context_map
+0x4960 mem_context_new
+0x49b0 mem_context_new2
+0x4a00 mem_context_new3
+0x4a50 mem_context_new4
+0x4aa0 mem_context_new5
+0x4af0 mem_context_new6
+0x4b40 mem_context_new7
+0x4b90 mem_context_new8
+0x4be0 mem_context_extend
+0x4e40 mem_le_pairing_sm_flag
+0x4e41 mem_le_fifo_error
+0x4e42 mem_end2
+0x0b1e mem_module_prepare_write_request_packet
+0x0b1e mem_module_prepare_write_request_PDU_length
+0x0b20 mem_module_prepare_write_request_Channel_ID
+0x0b22 mem_module_prepare_write_request_opcode
+0x0b23 mem_module_prepare_write_request_handle
+0x0b25 mem_temp_prepare_write_request_Data
+0x0c29 mem_le_l2capbuf_new
+0x0d2d mem_le_l2capbuf_new_end
+0x0d2d mem_smp_buf_temp
+0x0efd mem_end1
+0x0b1e mem_usb_status
+0x0b1f mem_usb_fifo_empty
+0x0b20 mem_usb_read_len
+0x0b21 mem_usb_rxbuf
+0x0b61 mem_bufptr
+0x0b63 mem_remain
+0x0b64 mem_devicedesc
+0x0b78 mem_hidreportdesc_kb
+0x0b7a mem_hidreportdesc_m
+0x0b7c mem_confdesc
+0x0be0 mem_string0
+0x0be5 mem_string1
+0x0c03 mem_string2
+0x0c43 mem_string3
+0x0c61 mem_usb_zero_packet
+0x0c63 mem_usb_ones_packet
+0x0c65 mem_usb_two_packet
+0x0c67 mem_usb0_state
+0x0c68 mem_usb_offline_check_gpio
+0x0c69 mem_usb_tx_interval
+0x0c6a mem_usb_clear_mem_start
+0x0c6a mem_usb_setup
+0x0c6a mem_usb_setup_bmRequestType
+0x0c6b mem_usb_setup_bRequest
+0x0c6c mem_usb_setup_bValue
+0x0c6d mem_usb_setup_bValueH
+0x0c6e mem_usb_setup_wIndex
+0x0c70 mem_usb_setup_bLength
+0x0c71 mem_usb_setup_bLengthH
+0x0c72 mem_usb0_setup
+0x0cb2 mem_usb0_set_report_data
+0x0cf2 mem_usb0_get_report_data
+0x0d32 mem_usb_state
+0x0d33 mem_usb_tx_wait
+0x0d34 mem_usb_tx_enable
+0x0d35 mem_usb_remote_wakeup
+0x0d36 mem_usb_clear_remote_wakeup
+0x0d37 mem_usb_ep0_stall_status
+0x0d38 mem_usb_ep1_stall_status
+0x0d39 mem_usb_ep2_stall_status
+0x0d3a mem_usb_ep3_stall_status
+0x0d3b mem_dsc_info_data_pointer
+0x0d3d mem_dsc_info_len
+0x0d3e mem_usb0_data_ready_report
+0x0d3f mem_usb_tx_win_enable
+0x0d40 mem_usb_tx_mac_enable
+0x0d41 mem_usb_device_enumeration_endflag
+0x0d42 mem_usb_wakestate_onetime_flag
+0x0d43 mem_usb_mac_wakeup_trig
+0x0d44 mem_usb_set_high_addr_flag
+0x0d45 mem_usb_set_protocol_value
+0x0d46 mem_usb_set_protocol_status
+0x0d47 mem_usb_get_protocol_flag
+0x0d48 mem_usb_idle_flag
+0x0d49 mem_usb_idle_rate
+0x0d4a mem_usb_setup_bValue_temp
+0x0d4c mem_usb0_get_set_report
+0x0d4d mem_usb_ep1_data
+0x0d4e mem_usb_ep2_data
+0x0d4f mem_usb_clear_halt
+0x0d50 mem_usb_mouse_data
+0x0d60 mem_usb_kb_data
+0x0d70 mem_usb_kb_multikey
+0x0d80 mem_usb_kb_data_sta_data
+0x0d88 mem_usb_kb_data_last_data
+0x0d90 mem_usb_kb_multikey_sta_data
+0x0d93 mem_usb_kb_multikey_last_data
+0x0d96 mem_usb_kb_blank_data_enable
+0x0d97 mem_usb_kb_mul_blank_data_enable
+0x0d98 mem_usb_test_cnt
+0x0d99 mem_usb_clear_mem_end
+0x0d99 mem_usb_test_kb
+0x0d9a mem_rssi_noise_buffer
+0x0e9a mem_rssi_noise_dg_buffer
+0x0f9a mem_rssi_noise_ms_buffer
+0x109a mem_rssi_noise_kb_buffer
+0x119a mem_24g_common_temp
Index: patch/patch.prog
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/patch/patch.prog	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/patch/patch.prog	(working copy)
@@ -0,0 +1,1435 @@
+
+
+/******************************************/
+/**************   Start   *****************/
+/******************************************/
+
+p_start:
+	bbit1 8,pf_patch_ext
+	beq patch00_1,p_soft_reset
+	beq patch00_5,p_connection_incontext
+	beq patch05_2,p_context_load
+	beq patch05_3,p_context_save
+	beq patch05_4,p_context_new
+	beq patch05_6,p_context_search
+	beq patch10_5,p_shutdown_radio
+	beq patch11_1,p_set_freq_tx
+	beq patch12_4,p_ahead_window
+	beq patch14_2,p_init_param
+	beq patch14_3,p_lpm_adjust_clk
+	beq patch15_1,p_lpm_dispatch_next
+	beq patch15_4,p_lpm_unconn_nossp
+//	beq patch16_1,p_lpm_check_wake_lock
+	beq patch17_0,p_module_init
+	beq patch17_3,p_module_hci_cmd_control
+	beq patch17_4,p_module_hci_cmd_transmit_le_notify
+	beq patch1d_3,p_le_init_conn
+	beq patch1e_3,p_le_slave_cont
+	beq patch1e_6,p_le_disconnect
+	branch assert
+	
+pf_patch_ext:
+	beq patch20_3,p_le_receive_skip
+	beq patch20_5,p_le_transmit_receive_sifs
+	beq patch22_0,p_le_update_param
+	beq patch23_4,p_le_prepare_tx
+	beq patch24_2,p_le_parse_l2cap	
+	beq patch24_3,p_le_adv_loop
+	beq patch24_5,p_le_adv_not_match
+	beq patch26_3,p_le_pairing_sm
+	beq patch26_5,p_le_parse_ll
+	beq patch27_2,p_parse_lmp
+
+	beq patch27_6,p_send_lmp
+	beq patch28_1,p_ssp_disable
+	beq patch2a_2,p_parse_dlci0_rp
+	beq patch33_1,p_sp_initialize_256
+	beq patch33_7,p_ui_ipc_send_event
+	beq patch34_1,p_check_51cmd
+	branch assert
+
+
+	
+p_ahead_window:
+	copy temp,pdata
+	call clk2bt
+	lshift16 bt_clk,pdata
+	set1 44,pdata
+	call clk_diff
+	set0 44,pdata
+	call get_clk
+	call clk_diff
+	rtn user
+	call p_clk2rt
+	branch ahead_window+12
+    
+p_lpm_adjust_clk:
+	deposit clke
+	call p_clk_diff_rt
+	branch lpm_adjust_clk+3
+
+p_lpm_dispatch_next:
+	fetch 2,mem_context + coffset_rx_window
+	rshift pdata,pdata
+	call clk2bt
+	deposit alarm
+	call clk_diff
+	copy clke,temp
+	call p_clk_diff_rt
+	branch lpm_dispatch_next+30
+
+p_clk_diff_rt:
+	call clk_diff
+p_clk2rt:
+	iforce contr
+	set0 16,contr
+	branch clk2rt+1
+
+	
+p_soft_reset:
+	call rfcomm_init
+	call init_lmp
+	call p_ui_init
+	branch soft_reset + 9
+
+p_ui_init:
+	rtn wake
+	branch ui_timer_init
+
+p_shutdown_radio:
+	branch p_shutdown_radio0,is_rx
+	hjam 0xd4, 0x955
+	nop 4
+	hjam 0xd2, 0x955
+	nop 4
+	hjam 0xd1, 0x955
+	nop 4	
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,p_shutdown_radio_0db
+	beq TX_POWER_3DB,p_shutdown_radio_3db
+	beq TX_POWER_5DB,p_shutdown_radio_5db
+	beq TX_POWER_f3DB,p_shutdown_radio_f3db
+	beq TX_POWER_f5DB,p_shutdown_radio_f5db
+	beq TX_POWER_PAIR,p_shutdown_radio_pair
+p_shutdown_radio_5db:	
+p_shutdown_radio_0db:
+	hjam 0xd0, 0x955
+	hjam 0xe0, 0x956
+p_shutdown_radio0:
+	force 0x08,radio_ctrl
+	force 0,radio_ctrl
+	disable is_rx
+	disable is_tx
+	pulse packet_end
+	hjam 0x0,rfen_mdm
+	hjam 0x0,rfen_tx
+	hjam 0x0,rfen_rx
+	hjam 0,rfen_sn
+	hjam 0x70,rfen_msc
+	fetch 1,rfen_adc
+	set1 0,pdata
+	store 1,rfen_adc
+	rtn
+	
+p_shutdown_radio_pair:
+p_shutdown_radio_f5db:
+p_shutdown_radio_f3db:
+p_shutdown_radio_3db:
+	hjam 0xd0,0x955
+	hjam 0xc0,0x956
+	branch p_shutdown_radio0
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	call set_freq_tx_offset
+	call rf_write_freq
+	setarg param_pll_setup
+	call sleep
+p_txon:	
+	fetch 1,rfen_adc
+	set1 0,pdata
+	store 1,rfen_adc
+	branch txon+1
+
+
+p_init_param:
+	hjam 0x7c,rfen_adc
+	rtn wake
+	setarg 0
+	store 2,mem_tx_len
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn
+	rtn
+	
+p_lpm_unconn_nossp:
+	branch lpm_unconn_cont				//BT/BLE discover don't infect lpm
+
+
+p_module_init:
+//	setarg p_module_process_bb_event
+	setarg 0
+	store 2,mem_cb_bb_event_process
+	store 2,mem_cb_event_timer
+
+	setarg p_module_le_receive_data
+	store 2,mem_cb_att_write
+
+	setarg module_lpm_lock
+	store 2,mem_cb_check_wakelock
+
+	setarg p_module_bt_conn_process
+	store 2,mem_cb_bt_process
+
+	setarg p_module_hci_event_receive_spp_data
+	store 2,mem_cb_receive_spp_data
+
+	call module_lpm_uart_init
+	call module_gpio_init
+	call check_module_disabled
+	branch module_hci_event_enter_standby_mode
+
+
+p_module_le_receive_data:
+	call module_check_ble_encrypt_state
+	rtn user
+	copy rega,pdata
+	store 2,mem_module_le_rx_data_address
+	copy regb,pdata
+//	copy loopcnt,pdata
+	store 1,mem_module_le_rx_data_len
+	fetcht 2,mem_le_att_handle
+	storet 2,mem_module_le_rx_data_handle
+
+	call le_att_get_handle_info
+	nbranch assert,blank
+	fetch 1,mem_le_cur_uuid_length	//	uuid length
+//	bne 0x02,module_hci_event_receive_le_data
+//	ifetcht 2,contr
+//	setarg CLIENT_CHARACTERTIC_CONFIGURATION
+//	isub temp,null
+//	rtn zero		//filter ccc handle data
+//	branch p_module_hci_event_receive_le_data_notify,zero
+	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
+	fetch 1,mem_module_le_rx_data_len
+	icopy loopcnt
+	increase 3,pdata
+	call module_hci_prepare_tx
+	fetch 1,mem_le_conn_handle
+	istore 1,contwu
+	branch module_hci_event_receive_le_data+5
+
+
+	
+p_module_bt_conn_process:
+	call p_module_spp_enter_sniff
+	branch module_control_air_flow
+
+p_module_spp_enter_sniff:
+	branch module_spp_enter_sniff+1
+
+p_module_hci_event_receive_spp_data:
+	call module_spp_clear_last_transmite_clock
+p_ng_event_receive_spp_data0:
+	jam HCI_EVENT_SPP_DATA_REP,mem_module_uart_opcode
+	fetch 2,mem_current_length
+	rtn blank
+	arg 255,temp
+	call not_greater_than
+	copy pdata,loopcnt
+	fetch 2,mem_current_length
+	isub loopcnt,pdata
+	store 2,mem_current_length
+	copy loopcnt,pdata
+	call module_hci_prepare_tx
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	call uart_copy_tx_bytes_fast
+	copy contr,pdata
+	store 2,mem_rfcomm_uih_payload_ptr
+	call uartd_send
+	branch p_ng_event_receive_spp_data0
+
+
+p_module_hci_cmd_transmit_le_notify:
+//	bpatch patch17_4,mem_patch17
+	add temp,-3,pdata		//sub handle and opcode
+	fetcht 1,mem_module_hci_notify_len
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 1,mem_module_hci_notify_len
+	fetcht 2,mem_module_hci_notify_handle
+	call le_att_malloc_tx_notify
+	fetch 2,mem_module_hci_nofiy_addr
+	copy pdata,contru
+	copy rega,loopcnt
+	call uart_copy_rx_bytes_fast
+	call p_le_add_handle2	
+	copy contru,pdata
+	store 2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	branch module_set_le_tx_data_flag
+
+
+p_module_hci_cmd_control:
+	fetch 1,mem_module_uart_opcode
+//	beq HCI_CMD_SET_PAIRING_REQ,p_module_hci_cmd_set_pairing_mode
+//	beq HCI_CMD_SET_COD,module_hci_cmd_le_set_adv_data_set_cod
+	beq HCI_CMD_LE_DATA_REQ,p_module_hci_cmd_receive_le_data
+	beq HCI_CMD_SLEEP,p_module_hci_cmd_enter_sleep
+	beq HCI_CMD_SET_NVRAM_REQ,p_module_hci_cmd_set_nvram
+	beq HCI_CMD_LE_SEND_CONN_UPDATE_REQ,p_module_hci_cmd_le_send_conn_update_req
+	beq HCI_CMD_LE_START_PAIRING,p_module_hci_cmd_le_start_pairing
+	branch module_hci_cmd_control + 2
+
+p_module_hci_cmd_le_send_conn_update_req:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_module_uart_len
+	bne 0x09,module_hci_event_receive_invalid_cmd
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet	
+//	copy rega,contru
+//	ifetch 1,contru
+	ifetch 8,contru
+	store 8,mem_le_interval_min
+	call le_l2cap_tx_update_req
+	call p_le_add_handle2
+	branch module_hci_event_receive_valid_cmd	
+
+//command opcode 0x38
+p_module_hci_cmd_le_start_pairing:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_le_pairing_mode
+	branch module_hci_event_receive_invalid_cmd,blank
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet	
+	ifetch 1,temp
+	bbit1 lestate_encryption,module_hci_event_receive_invalid_cmd
+	call module_hci_event_receive_valid_cmd	
+	call le_send_smp_security_request
+	branch p_le_add_handle2
+
+
+p_context_check_enc:
+	arg p_context_search_handle_enc,regc
+	branch context_search
+	
+p_context_search_handle_enc:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit0 mode_le,context_search_next
+	add rega,coffset_conn_handle,contr
+	ifetch 1,contr
+	isub temp,null
+	rtn zero
+	branch context_search_next
+	
+p_module_hci_cmd_set_nvram:
+	fetch 1,mem_module_uart_len
+	copy pdata,loopcnt
+	increase -2,loopcnt
+	copy rega,contru
+	fetch 2,mem_nv_data_ptr
+	ifetcht 2,contru
+	iadd temp,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+p_check_handle:	
+	fetcht 1,mem_le_conn_handle
+	isub temp,null
+	rtn
+
+p_module_hci_check_conn_handle:
+//call ice_break
+	copy rega,rege
+	ifetcht 1,contru
+//	rshift4 temp,temp
+	call p_context_search_conn_handle2
+	nbranch p_module_hci_event_invalid_cmd_disblank,zero
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	storet 1,mem_le_conn_handle
+	copy rega,temp
+	copy rege,rega
+	branch enable_blank
+	
+
+/*
+p_module_hci_check_conn_handle:
+//call ice_break
+	copy rega,rege
+	ifetcht 1,contru
+//	rshift4 temp,temp
+	call p_context_search_conn_handle2
+	nbranch p_module_hci_event_invalid_cmd_disblank,zero
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+//	bmark0 mark_context,disable_blank
+	copy rege,rega
+	ifetch 1,rega
+//	rshift4 pdata,pdata
+	call p_check_handle
+	branch enable_blank,zero
+	branch disable_blank
+*/
+	
+p_context_search_conn_handle2:
+	arg p_context_search_handle,regc
+	branch context_search
+	
+p_context_search_handle:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit0 mode_le,context_search_next
+	branch context_search_handle+1
+	
+p_module_hci_event_invalid_cmd_disblank:
+	call p_module_hci_event_receive_invalid_cmd
+	branch disable_blank
+	
+p_module_hci_event_receive_invalid_cmd:
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet	
+	branch module_hci_event_receive_invalid_cmd	
+
+p_module_hci_cmd_receive_le_data:
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	copy rega,contru
+//	call module_check_ble_encrypt_state
+//	branch module_hci_event_receive_invalid_cmd,user
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	fetch 1,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_FINISH,module_hci_cmd_receive_le_data_finish
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	ifetch 1,contru
+	ifetch 2,contru		//handle
+	store 2,mem_module_hci_notify_handle
+	copy contru,pdata
+	store 2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_uart_len
+	pincrease -3
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	branch module_hci_event_receive_invalid_cmd,zero
+	store 1,mem_module_hci_notify_len
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+//	call le_set_config_more_data
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	fetch 1,mem_module_flag
+	rtnbit0 MODULE_FLAG_BLE_DATA_FINISH
+	branch module_hci_cmd_receive_le_data_finish
+
+uart_copy_rx_bytes_len_data:
+	ifetch 1,contru
+	copy pdata,loopcnt
+	istore 1,contw
+	branch uart_copy_rx_bytes
+
+
+le_att_creat_new_handle:
+	call le_att_get_last_handle
+	istoret 2,contw
+	rtn
+
+//output:temp:new handle num
+//contr:address write data
+le_att_get_last_handle:
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_last_handle_loop:
+	ifetch 2,contr
+	rtn blank
+	add pdata,1,temp
+	ifetch 1,contr
+	iadd contr,contr	
+	ifetch 1,contr			// length
+	iadd contr,contr
+	copy contr,contw
+	branch le_att_get_last_handle_loop
+
+
+//input:temp uuid number
+module_hci_event_uuid_handle:
+	storet 2,mem_temp
+	jam HCI_EVENT_UUID_HANDLE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetcht 2,mem_temp
+	istoret 2,contwu
+	branch uartd_send
+
+module_hci_cmd_le_set_adv_data_set_cod:
+	ifetch 3,contru
+	store 3,mem_class
+	branch module_hci_event_receive_valid_cmd
+	
+
+
+p_module_hci_cmd_enter_sleep:
+	call module_hci_event_receive_valid_cmd
+	branch app_enter_hibernate
+
+
+p_module_hci_cmd_transmit_handle_error:
+	jam 0,mem_module_hci_notify_len
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_invalid_cmd
+
+p_le_update_param:
+	jam BT_EVT_LE_CONN_PARAM_UPDATE,mem_fifo_temp
+	call ui_ipc_send_event	
+	branch le_update_param+8
+
+p_le_receive_skip:
+	call save_rssi
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	copy pdata,loopcnt
+	branch lerx_nopayload,blank
+	branch lerx_loop
+
+p_le_transmit_receive_sifs:
+	call le_transmit
+	call set_sync_on
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	nop 1500
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup 
+	branch le_receive_rxon
+
+
+p_check_ipcbuf_size:
+	jam 0,mem_ipcbuf_bt2m0_flag
+	//call	p_get_ipc_tx_buff
+	fetcht 2,IPC_BT2M0_START_ADDR
+	fetch 2,IPC_BT2M0_END_ADDR
+	isub temp,rega
+	fetcht 2,IPC_BT2M0_READ_PTR
+	fetch 2,IPC_BT2M0_WRITE_PTR
+	storet 2,mem_ipcbuf_bt2m0_read
+	store 2,mem_ipcbuf_bt2m0_write
+	isub temp,pdata
+	branch start_calc_ipcbuf,positive
+	branch start_calc_ipcbuf,zero
+	copy rega,temp
+	fetch 2,mem_ipcbuf_bt2m0_write
+	iadd temp,pdata
+	fetcht 2,mem_ipcbuf_bt2m0_read
+	isub temp,pdata
+	//store 2,0x4bfc
+start_calc_ipcbuf:	
+	arg 0x300,temp
+	isub temp,null
+	nrtn positive
+	jam 1,mem_ipcbuf_bt2m0_flag
+	rtn
+	
+p_le_pairing_sm:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_NULL,le_pairing_sm_null
+	beq FLAG_LE_PAIRING_START,p_le_pairing_sm_start
+	beq FLAG_LE_PAIRING_SEND_RECURITY_REQ,le_pairing_sm_send_sec_req
+	beq FLAG_LE_PAIRING_RCV_PAIRING_REQ,p_le_pairing_sm_rcv_pairing_req
+	beq FLAG_LE_PAIRING_AFTER_AUTH,p_le_pairing_sm_after_auth
+	beq FLAG_LE_PARING_SEND_ENC_INFORMATION,p_le_pairng_sm_send_enc_information
+	beq FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,p_le_pairng_sm_send_master_indentification
+	beq FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,p_le_pairng_sm_send_indentity_information
+	rtn
+
+p_le_pairing_sm_rcv_pairing_req:
+	jam FLAG_LE_PAIRING_AUTH,mem_le_pairing_state
+	branch le_clr_config_more_data
+
+p_le_pairng_sm_send_indentity_information:	
+	call le_set_config_more_data
+	call le_send_smp_identity_address_information
+	call p_le_add_handle2
+	branch le_parse_start_enc_rsp_after_auth_end
+
+p_le_pairng_sm_send_master_indentification:	
+	fetch 1,mem_le_preq_resp_key_distribution
+	fetcht 1,mem_le_pres_resp_key_distribution
+	iand temp,pdata
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_parse_start_enc_rsp_after_auth_end,true
+	jam FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,mem_le_pairing_state
+	call le_send_smp_identity_information
+	branch p_le_add_handle2
+
+p_le_pairng_sm_send_enc_information:
+	call le_pairng_sm_send_enc_information
+	branch p_le_add_handle2
+
+p_le_pairing_sm_start:
+	jam FLAG_LE_PAIRING_SEND_RECURITY_REQ,mem_le_pairing_state
+	call le_send_smp_security_request
+	branch p_le_add_handle2
+
+	
+p_le_pairing_sm_after_auth:
+	fetch 1,mem_le_enc_state
+	beq FLAG_LE_SEND_START_ENC_RSP,p_le_pairing_sm_after_auth_start_enc
+	rtn
+	
+p_le_pairing_sm_after_auth_start_enc:
+	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	call le_send_smp_encryption_information
+	call p_le_add_handle2
+	fetch 1,mem_device_option
+	rtnne dvc_op_module
+	call le_check_master_addr_type
+	rtn user
+	branch app_ble_store_reconn_info
+		
+p_le_parse_ll:
+	fetch 1,mem_le_rxbuf+2
+	beq LL_CONNECTION_UPDATE_REQ,le_parse_connection_update_req
+	beq LL_CHANNEL_MAP_REQ,le_parse_channel_map_req
+	beq LL_TERMINATE_IND,le_parse_terminate_ind
+	beq LL_ENC_REQ,p_le_parse_enc_req
+	beq LL_ENC_RSP,le_parse_enc_rsp
+	beq LL_START_ENC_REQ,le_parse_start_enc_req
+	beq LL_START_ENC_RSP,p_le_parse_start_enc_rsp
+	beq LL_UNKNOWN_RSP,le_parse_unknown_rsp
+	beq LL_FEATURE_REQ,p_le_parse_feature_req
+	beq LL_FEATURE_RSP,le_parse_feature_rsp
+	beq LL_PAUSE_ENC_REQ,p_le_parse_pause_enc_req
+	beq LL_PAUSE_ENC_RSP,le_parse_pause_enc_rsp
+	beq LL_VERSION_IND,p_le_parse_version_ind
+	beq LL_REJECT_IND,le_parse_reject_ind
+	beq LL_PING_REQ,p_le_parse_ping_req
+	beq LL_PING_RSP,le_parse_ping_rsp
+	beq LL_LENGTH_REQ,le_parse_length_request
+	rtneq  LL_LENGTH_RSP
+	arg 2,rega
+	arg LL_UNKNOWN_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 1,mem_le_rxbuf+2
+	istore 1,contw
+	rtn		
+
+p_le_parse_ping_req:
+	call le_parse_ping_req
+	branch p_le_add_handle2
+
+p_le_parse_version_ind:
+	call le_parse_version_ind
+	branch p_le_add_handle2
+
+p_le_parse_pause_enc_req:
+	jam FLAG_LE_ENC_PAUSE,mem_le_enc_state
+	call le_send_pause_enc_rsp	
+	call p_le_add_handle2
+	jam BT_EVT_LE_PAUSE_ENC,mem_fifo_temp
+	branch ui_ipc_send_event	
+
+p_le_parse_feature_req:
+	call le_parse_feature_req
+	branch p_le_add_handle2
+	
+p_le_parse_start_enc_rsp:
+	call le_parse_start_enc_rsp+1
+	branch p_le_add_handle2
+	
+p_le_parse_enc_req:
+	ifetch 8,contr
+	store 8,mem_le_rand
+	ifetch 2,contr
+	store 2,mem_le_ediv
+	ifetch 8,contr
+	store 8,mem_le_skdm
+	ifetch 4,contr
+	store 4,mem_le_ivm
+	call le_send_enc_rsp
+	call p_le_add_handle2
+//	bpatchx patch26_6,mem_patch26
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_AFTER_AUTH,p_le_parse_enc_req_after_auth
+//	fetch 1,mem_le_configuration
+//	bbit1  BIT_BLE_PAIRING_FIXED_LTK,le_parse_enc_req_fixed_ltk
+	fetch 1,mem_nv_data_number
+	ncall load_device_list_mode_4,blank
+	fetch 1,mem_ltk_exists
+	beq 0,le_ltk_lost
+p_le_parse_enc_req_after_auth:
+	jam FLAG_LE_RCV_ENC_START,mem_le_enc_state
+	call  le_send_start_enc_req
+	call p_le_add_handle2
+	branch generate_sk
+	
+le_parse_length_request:
+//	ifetch 2,contr
+//	store 2,mem_module_master_rx_max
+//	branch le_send_length_res
+le_send_length_res:
+	arg 9,rega
+	arg LL_LENGTH_RSP,regb
+	call le_fifo_malloc_tx_ll
+	//MaxRxOctets >=27B <=251
+	setarg 27
+	istore 2,contw
+	//MaxRxTime >=328ms <=2120
+	setarg 2120
+	istore 2,contw
+	//MaxTxOctets >=27B
+	setarg 27
+	istore 2,contw
+	//MaxTxTime >=328ms
+	setarg 2120
+	istore 2,contw
+	branch p_le_add_handle2
+
+
+p_le_check_fifo_with_handle:
+	ifetch 1,contr
+	iadd contr,contr
+	add contr,2,contr
+	ifetch 1,contr
+	branch assert,blank
+	fetcht 1,mem_le_conn_handle
+	isub temp,null
+	rtn
+	
+//return flag blank 
+p_le_check_first_fifo_with_handle:
+	call le_fifo_get_first_tx_ptr
+	rtn blank
+	copy contr,rega
+	call p_le_check_fifo_with_handle
+	branch disable_blank,zero
+	call p_le_check_connect_handle
+	nbranch p_le_fifo_release_first_node,zero
+	branch enable_blank
+
+p_le_fifo_release_first_node:	
+	fetch 1,mem_le_fifo_error
+	increase 1,pdata
+	store 1,mem_le_fifo_error
+	call le_fifo_release_first_node
+	branch enable_blank
+
+p_le_check_connect_handle:
+	/* return zero if conn handle is found */
+	branch context_search_conn_handle2
+
+//return flag blank 
+p_le_check_sec_fifo_with_handle:
+	call le_fifo_get_second_tx_ptr
+	rtn blank
+	call p_le_check_fifo_with_handle
+	branch disable_blank,zero
+	branch enable_blank
+	
+p_le_check_continue:
+	ifetch 1,contr				//pdata:length
+	ifetcht 1,contr				//temp:offest
+	isub temp,pdata			//pdata:length - offset
+	sub pdata,LE_MAX_PAKET_LEN,null	
+	branch le_clear_md,positive				//27 > length -offset
+	branch le_set_md
+
+p_le_check_tx_md:	
+	call p_le_check_continue
+	rtnmark1 mark_ble_tx_md
+	fetch 1,mem_le_configuration
+	bbit0 BIT_BLE_TRANSMIT_PACKET_BY_MD,le_clear_md
+	call p_le_check_sec_fifo_with_handle 	//no packet to send
+	branch le_clear_md,blank
+	branch le_set_md
+
+p_le_prepare_tx:
+//	bpatchx patch23_4,mem_patch23
+	fetch 1,mem_le_arq
+	rtnbit1 wak
+//	call le_fifo_get_first_tx_ptr	//no packet to send
+//	branch le_send_empty,blank
+	call p_le_check_first_fifo_with_handle
+	branch le_send_empty,blank	
+	copy rega,regc
+	copy rega,contr
+	call p_le_check_tx_md
+	copy regc,contr
+	branch le_prepare_tx+6
+
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	beq LE_L2CAP_CID_SMP,p_le_parse_smp
+	beq LE_L2CAP_CID_SIGNAL,le_parse_signaling
+	rtn
+	
+p_le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
+//	beq SMP_PAIRING_RESPONSE,le_parse_smp_pairing_response
+	beq SMP_PAIRING_CONFIRM,p_le_parse_smp_pairing_confirm
+	beq SMP_PAIRING_RANDOM,p_le_parse_smp_pairing_random
+	beq SMP_PAIRING_FAILED,le_parse_smp_pairing_failed
+	beq SMP_ENCRYPTION_INFORMATION,le_parse_smp_encryption_information
+	beq SMP_MASTER_IDENTIFICATION,le_parse_smp_master_identification
+	beq SMP_IDENTITY_INFORMATION,le_parse_smp_identity_information
+	beq SMP_IDENTITY_ADDRESS_INFORMATION,le_parse_smp_identity_address_information
+	beq SMP_SIGNING_INFORMATION,le_parse_smp_signing_information
+	beq SMP_SECURITY_REQUEST,le_parse_smp_security_request
+	beq SMP_PAIRING_PUBLIC_KEY,le_parse_smp_public_key
+	beq SMP_PAIRING_DHKEY_CHECK,le_parse_smp_dhkey_check
+	rtn
+
+p_le_parse_smp_pairing_request:
+	call le_parse_smp_pairing_request
+	branch p_le_add_handle
+
+p_le_parse_smp_pairing_confirm:
+	call le_parse_smp_pairing_confirm
+	branch p_le_add_handle
+
+p_le_parse_smp_pairing_random:
+	call le_parse_smp_pairing_random
+	branch p_le_add_handle
+	
+	
+p_le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+//	beq ATTOP_HANDLE_VALUE_CONFIRMATION,p_le_parse_handle_value_confirmation
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
+	beq ATTOP_READ_BY_TYPE_REQUEST,p_le_parse_att_read_by_type_request
+
+	beq ATTOP_FIND_INFORMATION_REQUEST,p_le_parse_att_find_information_request
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,p_le_parse_att_find_by_type_value_request
+//	beq ATTOP_READ_BY_TYPE_REQUEST,le_parse_att_read_by_type_request
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	beq ATTOP_READ_BLOB_REQUEST,p_le_parse_att_read_blob_request
+//	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,le_parse_att_read_by_group_type_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_PREPARE_WRITE_REQUEST,p_le_parse_att_prepare_write_request
+	beq ATTOP_EXECUTE_WRITE_REQUEST,p_le_parse_att_execute_write_request
+	beq ATTOP_WRITE_COMMAND,le_parse_att_write_command
+	beq ATTOP_EXCHANGE_MTU_REQUEST,p_le_parse_att_exchange_mtu_request
+	beq ATTOP_EXCHANGE_MTU_RESPONSE,le_parse_att_exchange_mtu_response
+	rtn
+
+p_le_parse_att_execute_write_request:
+	call le_parse_att_execute_write_request
+	branch p_le_add_handle
+
+p_le_parse_att_prepare_write_request:
+	call le_parse_att_prepare_write_request
+	branch p_le_add_handle
+
+p_le_parse_att_write_request:
+	call le_parse_att_write_request
+	branch p_le_add_handle
+
+p_le_parse_att_read_blob_request:
+	call le_parse_att_read_blob_request	
+	branch p_le_add_handle
+
+p_le_parse_att_read_request:
+	call le_parse_att_read_request
+	branch p_le_add_handle
+
+p_le_parse_att_find_by_type_value_request:
+	call le_parse_att_find_by_type_value_request
+	branch p_le_add_handle
+	
+p_le_parse_att_find_information_request:
+	call le_parse_att_find_information_request
+p_le_add_handle:
+	call le_fifo_get_last_tx_ptr
+	branch assert,blank
+	ifetch 1,contr
+	iadd contr,contw
+	increase 2,contw
+p_le_add_handle2:
+	fetch 1,mem_le_conn_handle
+	istore 1,contw
+	rtn	
+	
+
+p_le_parse_att_read_by_group_type_request:
+	call p_le_parse_att_read_by_group_type_request2
+	branch p_le_add_handle
+	
+p_le_parse_att_read_by_group_type_request2:
+	call le_get_search_handle_start_end_common
+ 	call le_get_search_att_type
+	arg 1,timeup
+	branch le_send_att_read_by_group_type_response+1
+
+module_set_recv_confirm_flag:
+	arg MODULE_RECV_CONFIRM,queue
+	branch module_set_state
+
+p_le_parse_att_exchange_mtu_request:
+	call  le_send_att_exchange_mtu_response
+	branch p_le_add_handle
+
+p_le_parse_att_read_by_type_request:
+	call p_le_parse_att_read_by_type_request2
+	branch p_le_add_handle
+	
+p_le_parse_att_read_by_type_request2:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_uuid
+	branch p_le_send_att_read_by_type_response
+
+p_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_uuid
+	setarg UUID_CHRCTR_DEVICE_NAME
+	isub temp,null
+	branch p_le_send_att_read_by_type_res_device_name,zero
+	branch le_send_att_read_by_type_response+11
+
+
+
+p_le_send_att_read_by_type_res_device_name:
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	call le_att_get_short_uuid_ptr
+//	rtn blank
+	branch le_send_att_error_response_notfound,blank
+	branch le_send_att_read_by_type_res_device_name+3
+
+
+p_le_adv_loop:
+	fetch 1,mem_le_adv_enable
+	rtn blank
+//	fetch 1,mem_module_l2cap_rx_flag
+//	nrtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+//	call p_le_save_tx
+	branch le_adv_loop_tx
+/*
+p_le_pop_tx:
+	arg mem_le_txheader,contw
+	arg mem_temp_block2,contr
+p_le_cpy_39:
+	arg 39,loopcnt
+	branch memcpy_fast	
+
+p_le_save_tx:
+	arg mem_le_txheader,contr
+	arg mem_temp_block2,contw
+	branch p_le_cpy_39
+*/	
+
+p_le_adv_not_match:
+//	bpatchx patch24_5,mem_patch24
+	random pdata 
+	arg 0x1f,temp
+	iand temp,pdata
+	add pdata,3,pdata
+	call delay
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop_tx,zero
+	branch le_adv_not_match+10
+	
+
+p_parse_lmp:
+	fetch 1,mem_lmi_opcode2
+ 	beq LMP_ENCRYPTION_KEY_SIZE_REQ,p_parse_lmp_crypt_key
+	beq LMP_SNIFF_REQ, p_parse_lmp_sniff_req
+ 	branch parse_lmp + 21
+
+p_parse_lmp_crypt_key:
+	fetcht 1,mem_rxbuf+1
+	sub temp,6,null
+	branch reject_lmp_packet_pdu_not_allowed,positive
+	branch parse_lmp_crypt_key + 1
+	
+reject_lmp_packet_pdu_not_allowed:
+	jam PDU_NOT_ALLOWED,mem_lmo_reason2
+	branch reject_lmp_packet
+
+p_parse_lmp_sniff_req:
+	branch parse_lmp_sniff_req+1
+
+
+p_send_lmp:
+	disable user
+	call lmo_fifo_process
+	fetch 1,mem_lmp_to_send
+	rtn blank
+	bbit1 7,p_send_lmp_escape
+	branch send_lmp0
+	
+p_send_lmp_escape:
+	beq LMP_EXT_FEATURES_RES,p_send_lmpext_features_res
+	beq LMP_EXT_FEATURES_REQ,p_send_lmpext_features_req	
+	branch send_lmp_escape
+
+p_send_lmpext_features_res:
+	call p_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_res
+p_send_lmpext_features_req:
+	call p_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_req
+
+p_check_ssp_enable:
+	fetch 1,mem_ssp_enable 
+	branch ssp_disable, blank
+	branch  ssp_enable
+
+p_ssp_disable:
+	fetch 1,mem_features+6
+	set0 param_featrue_ssp,pdata
+	store 1,mem_features+6
+	setarg 0x1
+	store 2,mem_lmpext_ssp_enable
+	rtn
+
+
+p_parse_dlci0_rp:
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_SABM,rfcomm_rx_process_DLCI0_sabm
+	beq RFCOMM_FRAME_TYPE_UA,rfcomm_rx_process_DLCI0_ua
+	beq RFCOMM_FRAME_TYPE_UIH,p_parse_DLCI0_rp_uih
+	beq RFCOMM_FRAME_TYPE_DISCONN,parse_uih_rp_spp_disconn_send_event
+	rtn
+p_parse_DLCI0_rp_uih:
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_uih_head_struct
+	fetch 1,mem_uih_cmd_type
+	beq UIH_PARAM_NEG_CMD,parse_DLCI0_rp_uih_pn_cmd
+	beq UIH_PARAM_NEG_RES,parse_DLCI0_rp_uih_pn_res
+	beq UIH_MODEM_STATUS_CMD,parse_DLCI0_rp_uih_ms_cmd
+	beq UIH_MODEM_STATUS_RES,p_parse_DLCI0_rp_uih_ms_res
+	beq UIH_PARAM_CMD_REMOVE_PORT,parse_DLCI0_rp_uih_cmd_port	
+	branch rfcomm_rx_process_end
+p_parse_DLCI0_rp_uih_ms_res:
+	jam BT_EVT_SPP_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	call get_rfcomm_param_modem_status
+	branch parse_DLCI0_rp_uih_ms_res_spp
+
+
+p_sp_initialize_256:	
+	fetch 1,mem_le_secure_connect_enable
+	branch  le_secure_connection_disable,blank
+//	call le_secure_connection_enable
+	call sp_clear_flags
+	branch sp_pubkey_calc_256
+	
+p_check_51cmd:
+//	bpatchx patch34_1,mem_patch34
+//	arg mem_ipc_fifo_c512bt,rega
+//	call fifo_is_empty
+//	rtn blank
+//check_51cmd_once:
+//	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+//	copy pdata,temp
+//	call ui_ipc_put_lock
+//	bpatchx patch34_2,mem_patch34
+//	copy temp,pdata
+	rtn blank
+//	beq BT_CMD_START_DISCOVERY,check_51cmd_start_discovery
+  	beq BT_CMD_STOP_DISCOVERY,check_51cmd_stop_discovery
+	beq BT_CMD_START_ADV,check_51cmd_adv
+	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv  	
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	rtn
+	
+
+p_ui_ipc_send_event:
+//	bpatchx patch33_7,mem_patch33
+	fetch 1,mem_fifo_temp
+p_module_process_bb_event:
+	beq BT_EVT_LE_CONNECTED,p_module_process_le_conn
+	beq BT_EVT_LE_LTK_LOST,p_module_process_ble_ltk_lost
+	beq BT_EVT_LE_PAIRING_FAIL,p_module_hci_event_le_pairing_fail
+	beq BT_EVT_LE_PAIRING_SUCCESS,p_module_hci_event_le_pairing_success
+	beq BT_EVT_LE_START_ENC,p_module_hci_event_start_enc
+	beq BT_EVT_LE_PAUSE_ENC,p_module_hci_event_pause_enc
+	beq BT_EVT_LE_TK_GENERATE,module_hci_event_le_tk
+//	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_le_gkey
+	beq BT_EVT_STORE_NVRAM,p_module_hci_event_store_device
+	beq BT_EVT_LE_CONN_PARAM_UPDATE,p_module_process_bb_event_le_conn_update
+	beq BT_EVT_LE_DISCONNECTED,p_module_process_bb_even_le_disconn
+	rtn
+
+p_module_process_bb_event_le_conn_update:
+	jam  HCI_EVENT_LE_CONNECTION_UPDATE,mem_module_uart_opcode
+	setarg 7
+	call module_hci_prepare_tx
+	call p_event_add_handle
+	fetch 6,mem_le_new_conninterval
+	istore 6,contwu
+	branch uartd_send
+	
+p_module_hci_event_store_device:
+	jam HCI_EVENT_NVRAM_REP,mem_module_uart_opcode
+	fetch 1,mem_nv_data_number
+	sub pdata,7,null
+	branch p_module_hci_event_store_device1,positive
+	arg 7,pdata
+	call p_module_hci_event_store_device1
+p_module_hci_event_store_device2:
+	fetch 1,mem_nv_data_number
+	fetcht 1,mem_pdatatemp
+	isub temp,pdata
+	mul32 pdata,34,pdata
+	icopy loopcnt
+	add pdata,2,pdata
+	call module_hci_prepare_tx
+	fetch 2,mem_nv_data_ptr
+	fetcht 1,mem_pdatatemp
+	mul32 temp,34,temp
+	istoret 2,contwu
+	iadd temp,contr
+	call uart_copy_tx_bytes_fast
+	branch uartd_send
+	
+p_module_hci_event_store_device1:
+	store 1,mem_pdatatemp
+	mul32 pdata,34,pdata
+	icopy loopcnt
+	add pdata,2,pdata
+	call module_hci_prepare_tx
+	arg 0,pdata
+	istore 2,contwu
+	branch module_hci_event_store_device+5
+
+
+	
+p_module_hci_event_pause_enc:
+	arg FLAG_EVENT_PAUSE_ENC,regc
+	branch p_module_hci_event_enc
+
+p_module_hci_event_start_enc:
+	arg FLAG_EVENT_START_ENC,regc
+p_module_hci_event_enc:
+	jam HCI_EVENT_LE_ENCRYPTION_STATE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	call p_event_add_handle
+	copy regc,pdata
+	istore 1,contwu
+	branch uartd_send
+
+
+p_module_hci_event_le_pairing_success:
+	arg FLAG_BLE_PAIRING_SUCCESS,rega
+	branch p_module_hci_event_pairing_completed
+	
+p_module_hci_event_le_pairing_fail:
+	arg FLAG_BLE_PAIRING_FAIL,rega
+p_module_hci_event_pairing_completed:
+	jam 0,mem_flag_mode_ssp_pin
+	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
+	setarg 3
+	call module_hci_prepare_tx
+	call p_event_add_handle
+	copy rega,pdata
+	istore 2,contwu
+	branch uartd_send
+
+p_event_add_handle:
+	fetch 1,mem_le_conn_handle
+	istore 1,contwu	
+	rtn
+
+p_module_process_ble_ltk_lost:
+	call le_send_reject_ind
+	branch p_le_add_handle2
+//	branch p_le_pairing_sm_start
+	
+p_module_process_le_conn:
+	call app_le_event_bb_connected
+	call module_start_adv_discovery_by_command
+	fetch 1,mem_module_le_lpm_mult
+	store 1,mem_lpm_mult
+p_module_hci_event_le_connect:
+	jam  HCI_EVENT_LE_CONN_REP,mem_module_uart_opcode
+	setarg 7
+	call module_hci_prepare_tx
+	call p_event_add_handle
+	fetch 6,mem_le_plap
+	istore 6,contwu
+	branch uartd_send
+	
+p_module_process_bb_even_le_disconn:	
+	call app_le_event_bb_disconn
+//	call le_clr_config_more_data
+//	call module_disconn_start
+	jam  HCI_EVENT_LE_DIS_REP,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	call p_event_add_handle
+	branch uartd_send
+	
+p_le_init_conn:
+//	bpatch patch1d_3,mem_patch1d
+	disable wake
+//	jam 1,mem_le_conn_handle
+	branch le_init_conn+3
+
+p_le_slave_cont:
+//	bpatch patch1e_3,mem_patch1e
+	call le_pairing_sm
+ //	call le_check_paring_time
+	call check_51cmd
+	fetch 1,mem_le_op
+	bbit1 op_disconn,le_slave_disconn
+	branch le_slave_unsync
+	
+p_le_disconnect:
+//	bpatch patch1e_6,mem_patch1e
+	call le_clear_connection_info+3
+	call app_disconn_reason_collect_ble
+	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	branch p_context_free
+
+	
+p_context_load:
+	set1 mark_context,mark
+	deposit rega
+	store 2,mem_context_ptr
+	force CONTEXT_SIZE,loopcnt
+	arg mem_le_state,contw
+	copy rega,contr
+	call memcpy_fast
+
+	call p_context_extend_ptr
+	copy pdata,contr
+	
+	arg mem_le_txheader,contw
+	force 39,loopcnt
+	call memcpy_fast
+	
+	ifetch 2,contr
+	store 2,mem_ui_state_map
+	
+	ifetch 5,contr
+	store 5,mem_le_pcnt_tx
+	ifetch 5,contr
+	store 5,mem_le_pcnt_rx
+
+	ifetch 8,contr
+	store 8,mem_le_ivm
+		
+	ifetch 1,contr
+	store 1,mem_le_configuration
+
+//	ifetch 1,contr
+//	store 1,mem_le_ll_sm
+	
+	ifetch 1,contr
+	store 1,mem_le_pairing_state
+	ifetch 1,contr
+	store 1,mem_le_enc_state
+	arg mem_le_new_map,contw
+	arg 14,loopcnt
+	call memcpy_fast
+	
+	mul32 rege,CONTEXT_SMP,rege
+	arg mem_smp_buf_temp,pdata
+	iadd rege,contr	
+	arg mem_le_ltk,contw
+	force CONTEXT_SMP,loopcnt
+	branch memcpy_fast
+
+
+p_context_save:
+//	fetch 2,mem_le_remote_mtu 
+//	store 2,mem_le_context_mtu
+//	fetch 2,mem_remote_rx_max_octets 
+//	store 2,mem_le_context_remote_rx_max_octets
+
+	fetch 2,mem_context_ptr
+	iforce contw
+	force CONTEXT_SIZE,loopcnt
+	arg mem_le_state,contr
+	call memcpy_fast
+	
+	call p_context_extend_ptr
+	copy pdata,contw
+	
+	arg mem_le_txheader,contr
+	force 39,loopcnt
+	call memcpy_fast
+	
+	fetch 2,mem_ui_state_map
+	istore 2,contw
+	
+//	arg  mem_used_map,contr
+//	call memcpy16
+	fetch 5, mem_le_pcnt_tx
+	istore 5,contw
+	fetch 5,mem_le_pcnt_rx
+	istore 5,contw
+	
+	fetch 8,mem_le_ivm
+	istore 8,contw
+	
+	fetch 1,mem_le_configuration
+	istore 1,contw	
+
+//	fetch 1,mem_le_ll_sm
+//	istore 1,contw
+	
+	fetch 1,mem_le_pairing_state
+	istore 1,contw
+	fetch 1,mem_le_enc_state
+	istore 1,contw
+	arg mem_le_new_map,contr
+	arg 14,loopcnt
+	call memcpy_fast
+
+p_check_smp_buf:
+//	fetch 1,mem_le_pairing_state
+	mul32 rege,CONTEXT_SMP,rege
+	arg mem_smp_buf_temp,pdata
+	iadd rege,contw	
+	arg mem_le_ltk,contr
+	force CONTEXT_SMP,loopcnt
+	branch memcpy_fast
+
+
+p_context_extend_ptr:
+	fetch 2,mem_context_ptr
+	arg mem_context_new,temp
+	isub temp,pdata
+	div pdata, CONTEXT_SIZE
+	call wait_div_end
+	quotient pdata
+	copy pdata,rege
+	mul32 pdata,CONTEXT_SIZE_EXTEND,pdata
+	arg mem_context_extend,temp
+	iadd temp,pdata
+	rtn
+
+	
+p_context_new:
+//fetch 1,0xd
+//increase 1,pdata
+//store 1,0xd
+	call p_context_new2
+	branch context_new+3
+	
+p_context_new2:	
+	fetcht 1,mem_context_map
+	arg 0,queue
+p_context_new_loop:
+	qisolate1 temp
+	branch p_context_used,true
+	qset1 temp
+	storet 1,mem_context_map
+	deposit queue
+	store 1,mem_current_context
+	mul32 pdata,CONTEXT_SIZE,rega
+	increase 1,pdata
+	store 1,mem_le_conn_handle
+	arg mem_context_new,pdata
+	iadd rega,rega
+	
+	fetch 1,mem_context_cnt
+	increase 1,pdata
+	store 1,mem_context_cnt
+	branch context_esco_wack
+	
+p_context_used:
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_context_new_loop,true
+	branch context_check_esco_wack + 3
+
+
+p_context_free:
+//fetch 1,0xe
+//increase 1,pdata
+//store 1,0xe	
+	fetch 2,mem_context_ptr
+	arg mem_context_new,rega
+	isub rega,pdata
+	div pdata,CONTEXT_SIZE
+	call wait_div_end
+	quotient pdata	
+	
+	iforce queue
+	fetch 1,mem_context_map
+	qset0 pdata
+	store 1,mem_context_map
+	fetch 1,mem_context_cnt
+	increase -1,pdata
+	store 1,mem_context_cnt
+	rtn
+
+p_context_search:
+	arg mem_context_new,rega
+	arg CONTEXT_NUM_NEW,loopcnt
+	branch context_search_loop
+
+
+p_connection_incontext:
+	call context_search_insniff
+	nbranch p_connection_nosniff,zero
+	branch connection_incontext+3
+	
+p_connection_nosniff:
+	call p_context_get_next
+	sub loopcnt,0,null
+	branch connection_nosniff+2
+  
+p_context_get_next:
+	arg CONTEXT_NUM_NEW,loopcnt
+	fetcht 1,mem_current_context
+p_context_get_next_loop:
+	increase 1,temp
+	sub temp,CONTEXT_NUM_NEW+-1,null
+	branch p_context_get_next_cont,positive
+	arg 0,temp
+p_context_get_next_cont:
+	storet 1,mem_current_context
+	mul32 temp,CONTEXT_SIZE,pdata
+	arg mem_context_new,rega
+	iadd rega,rega
+	ifetch 1,rega
+	bbit1 state_insniff,p_context_get_next_sniff
+	rtnbit1 state_inconn
+	rtnbit1 state_inpage
+p_context_get_next_sniff:
+	loop p_context_get_next_loop
+	rtn
+
+
Index: sched/109x.dat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/sched/109x.dat	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/sched/109x.dat	(working copy)
@@ -0,0 +1,52 @@
+mem_patch00:02
+mem_patch10:20
+mem_patch11:02
+mem_patch14:04
+mem_patch17:09
+mem_patch20:68
+mem_patch27:44
+mem_patch28:02
+mem_patch2a:04
+mem_patch33:02
+
+#mem_lpm_config:0f 84 30
+mem_lpm_config:0f 84 f0
+mem_lpm_xtalcnt:0a 0b b2 32
+mem_lpm_hibernate_switch:8b
+mem_lpm_doze_switch:0b
+mem_gpio_wakeup:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:40 00
+mem_iscan_interval:00 02
+mem_pscan_window:32 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 04
+mem_rx_window_sniff:00 10
+
+
+
+mem_lmp_version:08 0e 05 04 00
+
+mem_eeprom_base:30 1f
+mem_eeprom_block_size:20
+mem_context_number:01
+
+mem_context:
+4b ba
+55 d0
+56 e0
+57 88
+58 6c
+59 10
+07 ff
+ff
+mem_rf_init_ptr:mem_context
+
+
+
Index: sched/DM_module.dat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/sched/DM_module.dat	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/key/trunk/sched/DM_module.dat	(working copy)
@@ -0,0 +1,177 @@
+
+mem_device_option:0a
+mem_ui_profile_supported:40
+mem_app_connection_options:13
+mem_ptt:01
+mem_features:
+ff
+fb
+8f
+fa	#openACL3M fe    2M fa
+8B	#AFHclose 83
+85
+59
+83	#83 ssp
+
+
+##############NVRAM CONFIG##############
+mem_nv_data_ptr:mem_module_nv_data
+mem_nv_data_number:08
+#####################################
+
+##############SPP CONFIG##############
+mem_credit_flag:01
+mem_rfcomm_max_frame_size:ff 00 
+mem_rfcomm_credit_init_data:03
+#####################################
+
+##############SSP CONFIG##############
+mem_sp_iocap_local:03 00 04
+mem_ssp_enable:00
+mem_pin_length:04  30 30 30 30 30
+#####################################
+
+
+################IPC BUFFER INIT#####################
+4FF0:00 1C
+4FF2:FF 1F
+4FF4:00 1C
+4FF6:00 1C
+4FF8:80 4e
+4FFA:E0 4F
+4FFC:80 4e
+4FFE:80 4e
+#####################################
+
+##############BLUETOOTH CONFIG##############
+###commom###
+mem_soft_version_num:10 0b
+mem_module_state:02
+mem_module_bluetooth_stauts_by_command:04
+mem_class:24 04 04
+
+mem_module_flag:00
+#bit0 MODULE_FLAG_UART_FLOW_CONTROL
+#bit1 MODULE_FLAG_BLE_SEND_MTU23
+#bit2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+mem_lpm_mode:00
+mem_lpm_interval:00 01
+mem_lpm_overhead:08
+mem_lpm_mult_timeout:02
+
+
+###3.0###
+mem_scan_mode:00
+mem_module_spp_lpm_mult:28
+mem_lap:aa aa 2a 21 10 55
+mem_local_name_length:
+'YiChip
+
+###3.0 sinff param###
+mem_sniff_param_interval:20 00
+mem_sniff_param_attempt:02
+mem_sniff_param_timeout:01
+
+
+###ble###
+mem_le_secure_connect_enable:00
+mem_le_adv_channel_map:07
+mem_le_pairing_mode:01
+
+mem_module_data_write_handle:2d 00
+mem_module_data_write_handle2:2f 00
+
+
+mem_le_adv_enable:01
+mem_le_adv_interval:01 03
+mem_module_le_lpm_mult:01
+mem_le_lap:21 aa aa 33 02 3a
+mem_le_name_len:
+'YiChip-le
+
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 06
+
+mem_le_scan_data_len:0b
+
+mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+'\09YiChip-le
+
+mem_le_pres:02 03 00 05 10 02 03
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+
+mem_le_local_mtu:17
+mem_le_remote_mtu:17
+
+mem_le_pairing_handle:31 00
+
+#####################################
+
+
+
+mem_ui_uuid_table:0000
+
+
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service yichip transmit ------
+01 00 02 00 28 02 01 18
+#Service Changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 01 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 02
+07 00 02 00 2a 13 59 69 43 68 69 70 2d 6c 65 20 20 20 20 20 20 20 20 20 20
+
+#Apperance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 00 00
+
+#Perpheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 10 00 80 00 05 00 2c 01
+
+
+#Primary service yichip transmit ------
+0c 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+0d  00 02 03 28 01 10
+0e 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+10 00 02 03 28 01 08
+11 00 10 B3 9B 72 34 BE EC D4 A8 F4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+12 00 02 03 28 01 04
+13 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+14 00 02 03 28 01 1a
+15 00 10 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+16 00 02 02 29 02 00 00
+
+#End of Attribute list
+00 00
+
+
