Index: do.bat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/do.bat	(revision 830)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/do.bat	(working copy)
@@ -27,7 +27,7 @@
 
 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
+copy %format%\bt.format + %fmts%  + %format_ex%\app_module.format + %format_ex%\bt.format + %format_ex%\app.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
Index: format/app.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/app.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/app.format	(working copy)
@@ -0,0 +1,5 @@
+
+(
+0x39 HCI_CMD_SET_MULTI_PICONET
+)
+
Index: format/app_module.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/app_module.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/app_module.format	(working copy)
@@ -0,0 +1,178 @@
+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
+	600 mem_temp_prepare_write_request_Data
+	260 mem_le_l2capbuf_new
+	0 mem_le_l2capbuf_new_end
+)
+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	
+	190 mem_module_uuid_list
+	0 mem_module_uuid_list_end
+///	400 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
+	1 mem_rfcomm_lmp_dis_flag
+	1 mem_module_rfcomm_disconnect_count
+
+	2 mem_le_buff_len
+	2 mem_le_buff_len_all
+	2 mem_module_prepare_write_request_contw
+	2 mem_module_prepare_write_request_contr
+
+	2 mem_module_master_rx_max
+	
+	1 mem_le_txheader_temp
+	1 mem_le_txlen_temp
+	2 mem_le_txpayload_temp
+	2 mem_le_txcid_temp
+	1 mem_le_l2cap_temp
+	1 mem_le_l2cap_response_temp
+	251 mem_le_txbdy_temp
+	1 mem_ble_dle_enable
+	1 mem_judge_clear_got_tx_falg
+	3 mem_2m0_tmier_address
+
+	1 mem_ipcbuf_bt2m0_flag
+	2 mem_ipcbuf_bt2m0_write
+	2 mem_ipcbuf_bt2m0_read
+
+	1 mem_retransmit_attempt
+	1 mem_context_map
+	1 mem_context_cnt
+	1 mem_l2cap_malloc_handle
+	1 mem_l2cap_rx_handle
+	1 mem_scheduler_handle_flag
+
+	1 mem_multi_piconet_flag
+	1 mem_sdp_channel_offset
+	
+	1 mem_rfcomm_channel_map
+	1 mem_rfcomm_next_channal
+	1 mem_rfcomm_channel_cnt
+
+	0 mem_spp_context1
+	//SPP channel status
+	//bit7:	0:com not exsit	1:com exsit
+	//bit6~5:REV
+	//bit4~0:channel NO
+	1 mem_spp_com1
+	1 mem_remote_credits1
+	1 mem_credit_given1
+	1 mem_HIUfcs_SPP1
+	1 mem_HIUfcs_SPP_WCredits1
+
+	0 mem_spp_context2
+	1 mem_spp_com2
+	1 mem_remote_credits2
+	1 mem_credit_given2
+	1 mem_HIUfcs_SPP2
+	1 mem_HIUfcs_SPP_WCredits2
+	
+	0 mem_spp_context3
+	1 mem_spp_com3
+	1 mem_remote_credits3
+	1 mem_credit_given3
+	1 mem_HIUfcs_SPP3
+	1 mem_HIUfcs_SPP_WCredits3
+	
+	0 mem_spp_context4
+	1 mem_spp_com4
+	1 mem_remote_credits4
+	1 mem_credit_given4
+	1 mem_HIUfcs_SPP4
+	1 mem_HIUfcs_SPP_WCredits4
+
+	560 mem_context_new
+	420 mem_context_extend
+	161 mem_rfcomm_channel_context
+	0 mem_module_end
+	
+)
+ 
+
+(//mem_ble_dle_enable
+0x00 DLE_ENABLE
+0x01 DLE_DISABLE
+)
+(
+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
+	0x100 UART_AIR_CONTROL_THRESHOLD_NEW
+)
+(//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
+)
+
+
+(
+0x80	SPP_COM_EXSIT
+0x1F	SPP_COM_CHANNEL
+7		SPP_COM_EXSITBIT
+)
+
+(
+5 SPP_CONTEXT_SIZE
+4 SPP_CONTEXT_NUMBER 
+
+2 SPP_CONTEXT_OFFSIT_CREDIT_GIVEN
+0 SPP_CONTEXT_OFFSIT_CREDIT_CHANNEL
+)
+
+(
+23 SPP_CONTEXT_ALL_SIZE
+)
+
Index: format/bt.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/bt.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/bt.format	(working copy)
@@ -0,0 +1,12 @@
+
+(
+
+44 mark_buf_full
+)
+
+(
+7 CONTEXT_NUM_NEW
+//80 context_size_new
+14 CONTEXT_SIZE_EXTEND
+)
+
Index: format/le.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/format/le.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/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/print/branches/mult_connect/format/utility.format	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/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/print/branches/mult_connect/output/bt_code.c	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/output/bt_code.c	(working copy)
@@ -0,0 +1,511 @@
+const unsigned char bt_code[] = {
+0x00,0x02,0xaa,0x55,0x5a,0x1c,0xc2,0x84,0x00,0x2c,0xc0,0x00,0x81,0x90,0xc0,0x02,
+0x00,0xeb,0xc0,0x02,0x80,0xfd,0xc0,0x15,0x00,0x53,0xc0,0x15,0x80,0x78,0xc0,0x16,
+0x00,0xc6,0xc0,0x17,0x00,0xfa,0xc0,0x1a,0x01,0x13,0xc0,0x1e,0x01,0x16,0xc0,0x1f,
+0x01,0x9a,0xc0,0x22,0x80,0xb3,0xc0,0x24,0x01,0x96,0xc0,0x28,0x01,0x9b,0xc0,0x2e,
+0x01,0xa7,0xc0,0x2f,0x81,0xb2,0xc0,0x30,0x01,0xb7,0xc0,0x37,0x01,0xe8,0xc0,0x38,
+0x01,0xd5,0xc0,0x38,0x81,0xd8,0xc0,0x42,0x81,0xf8,0xc0,0x44,0x82,0x19,0xc0,0x4a,
+0x01,0x7e,0xc0,0x51,0x02,0x22,0xc0,0x51,0x81,0x89,0xc0,0x53,0x01,0x19,0xc0,0x53,
+0x81,0x3b,0xc0,0x55,0x81,0x39,0xc0,0x56,0x02,0x29,0xc0,0x5a,0x00,0x47,0xc0,0x5a,
+0x80,0x4a,0xc0,0x5c,0x02,0x2a,0xc0,0x5d,0x82,0xd1,0xc0,0x5e,0x03,0xb1,0xc0,0x60,
+0x04,0x1a,0xc0,0x6d,0x84,0x1f,0xc0,0x6e,0x84,0x22,0xc0,0x6f,0x04,0x27,0xc0,0x6f,
+0x84,0x2d,0xc0,0x71,0x84,0x13,0xc0,0x75,0x84,0x3a,0xc0,0x78,0x81,0x61,0xc0,0x7a,
+0x81,0x76,0x20,0x20,0x4a,0x8b,0xc0,0x01,0x84,0x44,0xc0,0x02,0x84,0x50,0xc0,0x03,
+0x04,0x59,0xc0,0x03,0x84,0x5f,0xc0,0x04,0x04,0x68,0xc0,0x05,0x84,0x79,0xc0,0x09,
+0x84,0x89,0xc0,0x0a,0x05,0x24,0xc0,0x0e,0x05,0x39,0xc0,0x0f,0x05,0x62,0xc0,0x0f,
+0x85,0x90,0xc0,0x11,0x05,0xf2,0xc0,0x19,0x06,0x1a,0xc0,0x1d,0x06,0x2e,0xc0,0x1f,
+0x06,0x46,0xc0,0x20,0x86,0x58,0xc0,0x26,0x86,0x2d,0xc0,0x28,0x86,0x69,0xc0,0x29,
+0x06,0x72,0xc0,0x31,0x03,0xeb,0xc0,0x33,0x04,0x10,0xc0,0x3c,0x84,0x32,0xc0,0x46,
+0x85,0x77,0xc0,0x4c,0x86,0x5e,0xc0,0x4f,0x86,0x62,0xc0,0x50,0x86,0x63,0x20,0x20,
+0x4a,0x8b,0x58,0x00,0x00,0x00,0x67,0xf0,0x46,0x3a,0x20,0x60,0x00,0x00,0x1a,0x22,
+0x7e,0x00,0x67,0xe2,0x02,0x28,0x6f,0xe2,0x02,0x28,0x20,0x7a,0x00,0x00,0x1f,0xe0,
+0xff,0xff,0x67,0xe2,0x02,0x28,0x6f,0xe4,0x41,0xfe,0x20,0x40,0x7d,0x77,0x20,0x20,
+0x00,0x4c,0x79,0x20,0x00,0x09,0x1a,0x22,0x7e,0x00,0x67,0xe4,0x00,0x1e,0x18,0x00,
+0x72,0x50,0xd8,0xa0,0x04,0x3b,0x1a,0x20,0x8c,0x01,0xef,0xe2,0x00,0x06,0x1a,0x22,
+0x0c,0x00,0xc2,0x80,0x7c,0xcf,0xd8,0xa0,0x00,0x30,0x20,0x40,0x7c,0xcf,0x20,0x40,
+0x00,0xa9,0x1f,0xe2,0x0c,0x00,0xd8,0xa0,0x45,0x2f,0xdf,0x20,0x00,0x0e,0x20,0x40,
+0x7c,0xcf,0xef,0xec,0x00,0x06,0x67,0xec,0x42,0x18,0xef,0xe4,0x00,0x06,0x67,0xe4,
+0x42,0x22,0xef,0xe2,0x00,0x06,0x67,0xe2,0x42,0x26,0xef,0xe2,0x00,0x06,0x67,0xe2,
+0x43,0x36,0xef,0xe2,0x00,0x06,0x67,0xe2,0x46,0x79,0xef,0xe4,0x00,0x06,0x67,0xe4,
+0x46,0x52,0xef,0xe2,0x00,0x06,0x67,0xe2,0x48,0x30,0xd8,0xa0,0x40,0xd2,0xdf,0x20,
+0x00,0x20,0x20,0x40,0x7c,0xcf,0xdf,0x20,0x00,0x17,0xd8,0xa0,0x49,0x50,0x20,0x40,
+0x7c,0xcf,0x20,0x20,0x42,0x12,0x6f,0xe4,0x00,0x1e,0x98,0x00,0x0a,0x00,0x18,0x00,
+0x72,0x50,0xd8,0xc0,0x04,0x3b,0x20,0x3b,0x7c,0xcf,0xd8,0xc0,0x00,0x30,0x20,0x40,
+0x7c,0xcf,0x20,0x40,0x00,0xa9,0x1f,0xe2,0x0a,0x00,0xd8,0xc0,0x45,0x2f,0xdf,0x20,
+0x00,0x0e,0x20,0x40,0x7c,0xcf,0x6f,0xec,0x42,0x18,0xe7,0xec,0x00,0x05,0x6f,0xe4,
+0x42,0x22,0xe7,0xe4,0x00,0x05,0x6f,0xe2,0x42,0x26,0xe7,0xe2,0x00,0x05,0x6f,0xe2,
+0x43,0x36,0xe7,0xe2,0x00,0x05,0x6f,0xe2,0x46,0x79,0xe7,0xe2,0x00,0x05,0x6f,0xe4,
+0x46,0x52,0xe7,0xe4,0x00,0x05,0x6f,0xe2,0x48,0x30,0xe7,0xe2,0x00,0x05,0xd8,0xc0,
+0x40,0xd2,0xdf,0x20,0x00,0x20,0x20,0x40,0x7c,0xcf,0xdf,0x20,0x00,0x17,0xd8,0xc0,
+0x49,0x50,0x20,0x20,0x7c,0xcf,0xd8,0xa0,0x00,0x30,0x18,0x00,0x72,0x50,0x20,0x40,
+0x7c,0xaf,0xd8,0xa0,0x45,0x2f,0xdf,0x20,0x00,0x0e,0x20,0x40,0x7c,0xaf,0x58,0x00,
+0x00,0x00,0x67,0xec,0x42,0x18,0x67,0xe4,0x42,0x22,0x67,0xe2,0x42,0x26,0x67,0xe2,
+0x43,0x36,0x67,0xe2,0x46,0x79,0x67,0xe4,0x46,0x52,0x67,0xe2,0x48,0x30,0xd8,0xa0,
+0x40,0xd2,0xdf,0x20,0x00,0x20,0x20,0x20,0x7c,0xaf,0x6f,0xe4,0x00,0x1e,0xd8,0x40,
+0x49,0x67,0x98,0x46,0x7e,0x00,0x1f,0xe6,0xfc,0x50,0x20,0x40,0x7d,0x61,0x18,0x07,
+0xfe,0x00,0x1f,0xef,0xfe,0x52,0xd8,0x40,0x4b,0x97,0x98,0x40,0xfe,0x00,0x20,0x60,
+0x00,0x00,0x20,0x40,0x74,0x38,0x58,0x00,0x00,0x00,0x67,0xec,0x42,0x18,0x67,0xe4,
+0x42,0x22,0x67,0xe2,0x42,0x26,0x67,0xe2,0x00,0x30,0x67,0xec,0x00,0x32,0x67,0xe2,
+0x43,0x36,0x67,0xe4,0x46,0x52,0x67,0xe2,0x49,0x50,0x67,0xe2,0x49,0x52,0x67,0xe2,
+0x49,0x50,0x70,0x49,0x51,0x01,0xdf,0x20,0x00,0x05,0x1f,0x2f,0xf2,0x04,0xd8,0xa0,
+0x49,0x53,0x20,0x40,0x7c,0xaf,0x20,0x40,0x60,0xe5,0x20,0x20,0x44,0x40,0x20,0x40,
+0x00,0xc8,0x20,0x20,0x42,0x3a,0x68,0x42,0x49,0x49,0xd8,0xe0,0x00,0x00,0xa8,0x4f,
+0xff,0xff,0x20,0x20,0x80,0xd9,0xf9,0x20,0x04,0x00,0x60,0x42,0x49,0x49,0x18,0xe2,
+0x7e,0x00,0x67,0xe2,0x00,0x15,0x1f,0xef,0xa2,0x50,0x1f,0xe0,0xfe,0x01,0x67,0xe2,
+0x00,0x46,0xdf,0xe0,0x49,0x67,0x9a,0x20,0xa2,0x00,0x6f,0xe2,0x49,0x4a,0x1f,0xe0,
+0xfe,0x01,0x67,0xe2,0x49,0x4a,0x20,0x20,0x42,0x4c,0x18,0xe0,0x8e,0x01,0x28,0xe0,
+0x1e,0x08,0x24,0x20,0x80,0xca,0x20,0x20,0x42,0x4a,0x6f,0xe4,0x00,0x1e,0xda,0x20,
+0x49,0x67,0x9a,0x26,0x7e,0x00,0x1f,0xe6,0xfc,0x50,0x20,0x40,0x7d,0x61,0x18,0x07,
+0xfe,0x00,0x98,0x00,0x0e,0x00,0x6f,0xe2,0x49,0x49,0xf9,0x3f,0xfe,0x00,0x67,0xe2,
+0x49,0x49,0x6f,0xe2,0x49,0x4a,0x1f,0xe0,0xff,0xff,0x67,0xe2,0x49,0x4a,0x20,0x60,
+0x00,0x00,0x20,0x40,0x40,0x34,0x20,0x40,0x4c,0x86,0x20,0x40,0x00,0xf2,0x20,0x40,
+0x00,0xf5,0x20,0x40,0x40,0x1d,0x20,0x40,0x4b,0x3f,0x20,0x20,0x40,0x0f,0x6f,0xe2,
+0x49,0x4a,0xc1,0x03,0x80,0x00,0x20,0x20,0x42,0xf4,0x6f,0xe2,0x49,0x4a,0xc1,0x03,
+0x80,0x00,0x6f,0xe2,0x49,0x4d,0x24,0x7a,0x00,0x00,0x20,0x20,0x43,0x66,0xda,0x20,
+0x49,0x67,0xdf,0x20,0x00,0x07,0x20,0x20,0x42,0x60,0x20,0x40,0x42,0x5a,0x24,0x22,
+0x81,0x00,0x20,0x20,0x40,0x25,0x20,0x40,0x01,0x03,0x1f,0x26,0x7c,0x00,0x20,0x20,
+0x40,0x2d,0xdf,0x20,0x00,0x07,0x68,0x42,0x00,0x15,0x18,0x40,0x84,0x01,0x18,0x46,
+0x7c,0x06,0x20,0x21,0x01,0x09,0xd8,0x40,0x00,0x00,0x60,0x42,0x00,0x15,0x18,0x4f,
+0xfe,0x50,0xda,0x20,0x49,0x67,0x9a,0x20,0xa2,0x00,0xef,0xe2,0x00,0x11,0xc2,0x80,
+0x81,0x11,0xc3,0x80,0x00,0x00,0xc3,0x81,0x80,0x00,0xc2,0x00,0x01,0x05,0x20,0x60,
+0x00,0x00,0x20,0x40,0x42,0x3f,0x20,0x62,0x80,0x00,0x20,0x20,0x43,0x2f,0x70,0x49,
+0x48,0x00,0x20,0x40,0x48,0xa5,0x20,0x20,0x43,0xcc,0x58,0x00,0x00,0x00,0x1c,0xe2,
+0x7c,0x00,0x20,0x22,0x81,0x23,0x6f,0xe2,0x81,0x24,0x68,0x42,0x81,0x25,0x98,0x46,
+0x7c,0x00,0x20,0x21,0x01,0x21,0x18,0x42,0x7e,0x00,0x9c,0xe6,0x7e,0x00,0x1f,0xe0,
+0xfe,0x01,0x1f,0xe0,0xfe,0x08,0x37,0xd9,0x82,0x00,0x9e,0x20,0xfe,0x00,0x68,0x48,
+0x41,0x5c,0x98,0x40,0xfe,0x00,0x68,0x46,0x41,0x70,0x98,0x4f,0xfe,0x00,0x1f,0xec,
+0xfe,0x00,0x1f,0xf1,0xfe,0x00,0x1f,0xe0,0xfe,0x6e,0xd8,0x40,0x0e,0xa6,0x98,0x46,
+0xfc,0x00,0x20,0x40,0x7d,0x61,0x18,0x07,0xfe,0x00,0x1f,0xf0,0x7e,0x00,0x18,0x07,
+0x04,0x00,0x98,0x41,0xfe,0x00,0x68,0x4c,0x41,0x64,0x20,0x40,0x7d,0x07,0x18,0x42,
+0x32,0x00,0x6f,0xec,0x49,0x6f,0x20,0x20,0x48,0x50,0x6f,0xe2,0x49,0x67,0x20,0x20,
+0x4b,0x74,0x20,0x40,0x4a,0xd8,0x6f,0xe6,0x41,0x70,0x20,0x7a,0x00,0x00,0x6f,0xe2,
+0x40,0x91,0x20,0x7a,0x00,0x00,0x6f,0xe2,0x46,0x2c,0x20,0x3a,0x01,0x44,0x6f,0xe2,
+0x45,0x83,0x20,0x7a,0x00,0x00,0x6f,0xe2,0x44,0x92,0x24,0x7a,0x00,0x00,0x20,0x40,
+0x4b,0xf4,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x49,0x67,0x2f,0xe0,0x0e,0x03,0x24,0x20,
+0xcb,0x72,0x6f,0xe4,0x49,0x69,0x20,0x7a,0x00,0x00,0x20,0x75,0x80,0x00,0x68,0x42,
+0x00,0xa0,0x6f,0xe4,0x49,0x69,0x98,0x4f,0xfe,0x00,0x18,0x51,0x84,0x00,0x18,0x4b,
+0x04,0x00,0x98,0x46,0x7e,0x00,0x68,0x48,0x49,0x6b,0x98,0x40,0xfe,0x00,0x68,0x42,
+0x41,0x56,0x98,0x46,0x7e,0x00,0x1f,0xf0,0x60,0x00,0x6f,0xe4,0x49,0x75,0x1f,0xe3,
+0x7e,0x00,0x20,0x40,0x7d,0x2b,0x1e,0x02,0x7e,0x00,0x20,0x40,0x7d,0x14,0x1b,0x42,
+0x04,0x00,0x20,0x40,0x01,0x8c,0x20,0x20,0x4b,0x67,0x79,0x3f,0x80,0x2c,0x70,0x44,
+0xe1,0x00,0x20,0x40,0x79,0x64,0x20,0x40,0x5f,0xf8,0x78,0x57,0x7c,0x00,0x20,0x40,
+0x5a,0xc0,0x20,0x21,0x57,0x83,0x20,0x40,0x4c,0x27,0x20,0x40,0x57,0xed,0x20,0x40,
+0x58,0x63,0x24,0x2c,0x57,0x75,0x20,0x56,0x85,0x0f,0x6f,0xe2,0x49,0x43,0x24,0x5a,
+0x01,0x73,0x20,0x40,0x57,0x91,0x20,0x36,0xd7,0x62,0xc5,0x16,0x57,0x62,0x20,0x20,
+0x57,0x6f,0x79,0x20,0x00,0x2c,0x78,0x56,0xfc,0x00,0x20,0x60,0x00,0x00,0x78,0x37,
+0x7c,0x00,0x20,0x40,0x58,0x9b,0x20,0x56,0x85,0x0f,0x6f,0xe2,0x49,0x43,0x24,0x5a,
+0x01,0x73,0x20,0x36,0xd7,0x62,0xc5,0x16,0x57,0x62,0x20,0x20,0x57,0x6f,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,0x01,0x8d,0x20,0x20,0x4a,0x2f,0x1b,0x42,0x7e,0x00,0x20,0x40,
+0x01,0x8c,0x20,0x20,0x4a,0xe9,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,
+0x01,0x94,0x20,0x20,0x40,0x0a,0x20,0x75,0x80,0x00,0x20,0x20,0x7b,0x9a,0x70,0x0a,
+0x95,0x02,0x20,0x40,0x7b,0xab,0x20,0x40,0x00,0xdd,0x20,0x20,0x00,0x98,0x20,0x20,
+0x43,0xdf,0x78,0x28,0x7c,0x00,0x6f,0xe4,0x00,0x3e,0x1f,0xe3,0x7e,0x00,0xd8,0x40,
+0x05,0x00,0x98,0x40,0xfe,0x00,0x20,0x40,0x4a,0x23,0x20,0x40,0x48,0xe6,0x18,0x00,
+0x48,0x03,0x20,0x40,0x48,0xc8,0x20,0x40,0x44,0x26,0x20,0x40,0x49,0xf0,0x20,0x20,
+0x44,0xff,0x79,0x3f,0x80,0x00,0x6f,0xe2,0x01,0x7e,0x1f,0xe1,0x7e,0x03,0xd8,0xa0,
+0x05,0x4d,0xc0,0x01,0xc5,0xb6,0xc5,0x08,0xc5,0xe0,0x6f,0xe2,0x49,0x4c,0x20,0x3a,
+0x45,0xb0,0x20,0x40,0x02,0x79,0x24,0x22,0xc6,0x39,0x20,0x20,0x45,0xb0,0x09,0x80,
+0x00,0x10,0x20,0x23,0x46,0x33,0x6f,0xe2,0x43,0x35,0xc0,0x00,0xc6,0x33,0x20,0x20,
+0x45,0xe9,0x6f,0xe2,0x02,0x5d,0xc0,0x00,0x81,0xbb,0xc0,0x01,0x01,0xcb,0x20,0x20,
+0x4a,0x8b,0x6f,0xe4,0x02,0x59,0x68,0x44,0x01,0x5d,0x98,0x40,0xfe,0x00,0x67,0xe4,
+0x02,0x59,0xc0,0x00,0x4a,0x8b,0x68,0x44,0x10,0x00,0x18,0x40,0x84,0x04,0x98,0x46,
+0x7c,0x00,0x20,0x42,0x81,0xc5,0x20,0x20,0x46,0x09,0x6f,0xe2,0x00,0x46,0x67,0xe2,
+0x49,0x4c,0x20,0x20,0x47,0x43,0x6f,0xe2,0x00,0x46,0x67,0xe2,0x49,0x4c,0x20,0x20,
+0x47,0x47,0x6f,0xe4,0x02,0x5b,0x68,0x44,0x01,0x5d,0x98,0x40,0xfe,0x00,0x67,0xe4,
+0x02,0x5b,0xc0,0x00,0x4a,0x8b,0x68,0x44,0x14,0x00,0x18,0x40,0x84,0x04,0x98,0x46,
+0x7c,0x00,0x20,0x42,0x81,0xc8,0x20,0x20,0x46,0x09,0x20,0x40,0x02,0x79,0x24,0x62,
+0x80,0x00,0x20,0x20,0x47,0x25,0x6f,0xe2,0x02,0x66,0xc0,0x00,0x81,0xe2,0x70,0x02,
+0x66,0x00,0x6f,0xe2,0x02,0x5f,0xc4,0x00,0x80,0x00,0xd8,0xc0,0x14,0x00,0x20,0x40,
+0x51,0x53,0x6f,0xe2,0x02,0x66,0xc0,0x00,0x81,0xe6,0x20,0x60,0x00,0x00,0x20,0x40,
+0x47,0x37,0x6f,0xe2,0x02,0x5f,0x24,0x7a,0x00,0x00,0x20,0x20,0x02,0x77,0x20,0x40,
+0x47,0x3d,0x20,0x20,0x01,0xe3,0x78,0x37,0x7c,0x00,0x6f,0xe2,0x00,0x30,0xc2,0x80,
+0x81,0xf7,0x6f,0xe2,0x49,0x48,0x1f,0xe0,0xfe,0x01,0x67,0xe2,0x49,0x48,0x1f,0xe6,
+0x7c,0x03,0x24,0x21,0x46,0xfa,0x6f,0xe2,0x00,0x47,0xc3,0x81,0x80,0x00,0x6f,0xe2,
+0x00,0x48,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x00,0x4b,0xc3,0x83,0x00,0x00,0x20,0x20,
+0x46,0xfa,0x20,0x20,0x47,0x0b,0x20,0x30,0x82,0x08,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,0x02,0x06,0xc0,0x00,0x82,0x16,0xc0,0x01,
+0x02,0x06,0xc0,0x01,0x82,0x16,0xc0,0x02,0x02,0x16,0xc0,0x10,0x02,0x16,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,0x02,0x08,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,
+0x02,0x3b,0x67,0xe4,0x41,0xf4,0x58,0x00,0x00,0x00,0x67,0xe4,0x41,0xf6,0x67,0xe4,
+0x41,0xf2,0x58,0x00,0x02,0x99,0x67,0xe4,0x41,0xfe,0x58,0x00,0x02,0xa3,0x67,0xe4,
+0x41,0xfa,0x58,0x00,0x02,0xb5,0x67,0xe4,0x41,0xea,0x58,0x00,0x02,0xb9,0x67,0xe4,
+0x45,0x41,0x20,0x40,0x4d,0xaf,0x20,0x40,0x4d,0xbc,0x20,0x40,0x4c,0x2a,0x20,0x20,
+0x50,0x4d,0x20,0x40,0x7b,0xc1,0x20,0x40,0x04,0x03,0x20,0x40,0x56,0x48,0x24,0x7a,
+0x00,0x00,0x6f,0xe4,0x4f,0xfc,0x68,0x44,0x4f,0xfe,0x98,0x46,0x7c,0x00,0x20,0x62,
+0x80,0x00,0x20,0x20,0x4e,0x41,0x6f,0xe2,0x0a,0x95,0xc0,0x04,0x82,0x8f,0xc0,0x01,
+0x02,0x6d,0xc0,0x0a,0x02,0x97,0xc0,0x02,0x82,0x60,0xc0,0x04,0x02,0x51,0xc0,0x0c,
+0x67,0xfd,0xc0,0x05,0x82,0x50,0xc0,0x00,0x82,0x4e,0x20,0x20,0x4d,0xdf,0x20,0x40,
+0x4e,0x2c,0x20,0x20,0x4c,0xaa,0x20,0x60,0x00,0x00,0x20,0x40,0x02,0x84,0x6f,0xe4,
+0x46,0x52,0x79,0x20,0x7e,0x04,0x67,0xe4,0x46,0x52,0x70,0x0a,0xff,0x00,0x58,0x00,
+0x00,0x07,0x20,0x40,0x50,0xa5,0x6f,0xe2,0x00,0x46,0x1f,0xf2,0x7e,0x00,0x68,0x42,
+0x45,0x3c,0x98,0x41,0xfe,0x00,0xe7,0xe2,0x00,0x0a,0x6f,0xec,0x00,0x40,0xe7,0xec,
+0x00,0x0a,0x20,0x20,0x67,0xb9,0x6f,0xe2,0x49,0x4a,0x1f,0xef,0xfe,0x50,0xd8,0x40,
+0x01,0x50,0x98,0x40,0x84,0x00,0x60,0x44,0x40,0xb3,0xd8,0x40,0x01,0x00,0x98,0x40,
+0x84,0x00,0x60,0x44,0x40,0xaf,0x6f,0xe2,0x00,0x46,0x67,0xe2,0x49,0x4d,0x6f,0xe2,
+0x49,0x4e,0x20,0x5a,0x4e,0x32,0x20,0x20,0x4d,0xd7,0x70,0x48,0x30,0x00,0x6f,0xe2,
+0x49,0x4e,0x20,0x5a,0x4e,0x2f,0x58,0x00,0x00,0x00,0x67,0xe4,0x46,0x52,0x20,0x40,
+0x02,0x82,0x20,0x40,0x02,0x7d,0x20,0x40,0x02,0x79,0x24,0x62,0x80,0x00,0x70,0x02,
+0x5f,0x00,0x70,0x49,0x4c,0x00,0x20,0x60,0x00,0x00,0x6f,0xe2,0x49,0x4c,0x68,0x42,
+0x00,0x46,0x98,0x46,0x7c,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x04,0x0c,0x24,0x62,
+0x80,0x00,0x58,0x00,0x00,0x00,0x67,0xe6,0x42,0x32,0x20,0x20,0x04,0x25,0x20,0x40,
+0x04,0x08,0x24,0x62,0x80,0x00,0x70,0x49,0x4d,0x00,0x20,0x60,0x00,0x00,0x70,0x0a,
+0xff,0x03,0x58,0x00,0x00,0x01,0x20,0x40,0x50,0xa5,0x6f,0xe2,0x00,0x46,0x1f,0xf2,
+0x7e,0x00,0x68,0x42,0x04,0xf8,0x98,0x41,0xfe,0x00,0xe7,0xe2,0x00,0x0a,0x20,0x20,
+0x67,0xb9,0x20,0x40,0x02,0x86,0x6f,0xe2,0x49,0x52,0x24,0x7a,0x00,0x00,0x6f,0xe4,
+0x46,0x52,0x79,0x3f,0xfe,0x04,0x67,0xe4,0x46,0x52,0x70,0x48,0x30,0x32,0x20,0x60,
+0x00,0x00,0x20,0x40,0x05,0xfc,0x20,0x20,0x4e,0x28,0x20,0x60,0x00,0x00,0xc6,0x84,
+0x80,0x00,0x6f,0xe2,0x48,0x30,0x20,0x7a,0x00,0x00,0x1f,0xe0,0xff,0xff,0x67,0xe2,
+0x48,0x30,0x24,0x7a,0x00,0x00,0x6f,0xe4,0x46,0x52,0xc2,0x80,0x7c,0x0c,0x20,0x60,
+0x00,0x00,0x20,0x40,0x4f,0x11,0x20,0x74,0x00,0x00,0x1a,0x22,0x7e,0x00,0x67,0xe4,
+0x46,0x71,0x20,0x40,0x02,0xaf,0x67,0xe2,0x46,0x70,0x68,0x44,0x04,0x74,0x60,0x44,
+0x46,0x73,0x20,0x40,0x5b,0x6c,0x24,0x3a,0x4a,0x8b,0x6f,0xe2,0x04,0x9e,0x20,0x20,
+0x50,0x42,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x02,0xb3,0x1f,0x22,0x7e,0x00,0x20,0x60,
+0x00,0x00,0x1a,0x42,0x7e,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x04,0xdd,0x24,0x34,
+0x4d,0x4b,0x20,0x20,0x4d,0xbd,0x20,0x20,0x4d,0xc8,0x20,0x40,0x4d,0xd7,0x70,0x0a,
+0xff,0x07,0x6f,0xe4,0x04,0xfb,0x20,0x7a,0x00,0x00,0xd8,0x40,0x00,0xfe,0x20,0x40,
+0x7d,0xb5,0x1f,0xe2,0x72,0x00,0x6f,0xe4,0x04,0xfb,0x9f,0x26,0x7e,0x00,0x67,0xe4,
+0x04,0xfb,0x1f,0x20,0xfe,0x01,0x20,0x40,0x50,0xa5,0x6f,0xe2,0x00,0x46,0x1f,0xf2,
+0x7e,0x00,0x68,0x42,0x04,0xf8,0x98,0x41,0xfe,0x00,0xe7,0xe2,0x00,0x0a,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,0x02,0xba,0x6f,0xe2,0x0a,0xff,0xc0,0x02,
+0x83,0x1f,0xc0,0x13,0x83,0xaf,0xc0,0x06,0x03,0x4a,0xc0,0x3b,0x03,0x53,0xc0,0x3b,
+0x83,0x59,0xc0,0x3c,0x03,0x5e,0xc0,0x0a,0x83,0x98,0xc0,0x7f,0x03,0x9b,0xc0,0x08,
+0x83,0x17,0xc0,0x14,0x03,0x14,0xc0,0x18,0x03,0x11,0xc0,0x14,0x82,0xe9,0xc0,0x01,
+0x02,0xe4,0xc0,0x1c,0x82,0xe1,0x20,0x20,0x4e,0x5c,0xe8,0x42,0x00,0x03,0x60,0x42,
+0x49,0x4e,0x20,0x20,0x50,0x1f,0xe8,0x42,0x00,0x03,0x60,0x42,0x46,0x6f,0x18,0x41,
+0x7e,0x03,0x67,0xe2,0x40,0x93,0x20,0x20,0x50,0x1f,0x20,0x40,0x02,0xfc,0x24,0x7a,
+0x00,0x00,0x6f,0xe4,0x46,0x52,0xc3,0x02,0x03,0x1d,0x6f,0xe2,0x45,0x3d,0xc0,0x00,
+0x03,0x1d,0x1a,0x22,0x06,0x00,0xe8,0xe2,0x00,0x03,0x18,0xe1,0x0e,0x0f,0x60,0xe2,
+0x04,0xf8,0x20,0x40,0x06,0xb9,0x24,0x20,0x83,0x1d,0x20,0x40,0x06,0xe4,0x70,0x0b,
+0x01,0x01,0xef,0xe2,0x00,0x03,0x68,0x42,0x45,0x3b,0x98,0x40,0x84,0x00,0x60,0x42,
+0x45,0x3b,0x20,0x20,0x06,0xd0,0x1a,0x22,0x6e,0x00,0xe8,0x42,0x00,0x03,0x18,0x51,
+0x84,0x00,0x20,0x40,0x42,0x54,0x24,0x22,0x83,0x09,0x70,0x0b,0x01,0x00,0xc5,0x84,
+0xfd,0xc7,0x1e,0xe2,0x22,0x00,0xef,0xe2,0x00,0x11,0x1f,0xf1,0xfe,0x00,0x20,0x40,
+0x04,0x09,0x20,0x22,0xfd,0xc9,0x20,0x20,0x7d,0xc7,0x20,0x40,0x03,0x1d,0x20,0x20,
+0x7d,0xc7,0x70,0x0b,0x01,0x00,0xc5,0x84,0xfd,0xc7,0x20,0x40,0x04,0x08,0x24,0x22,
+0xfd,0xc7,0x70,0x0b,0x01,0x01,0x20,0x20,0x7d,0xc9,0x20,0x40,0x03,0x0b,0x24,0x7a,
+0x00,0x00,0x20,0x20,0x4f,0x94,0x20,0x40,0x03,0x0b,0x24,0x7a,0x00,0x00,0x20,0x20,
+0x4f,0x4a,0x20,0x40,0x02,0xfc,0x24,0x7a,0x00,0x00,0x20,0x40,0x66,0x9e,0x24,0x7a,
+0x00,0x00,0x70,0x0b,0x01,0x01,0x20,0x20,0x7c,0x0c,0x70,0x0b,0x01,0x01,0x20,0x20,
+0x50,0x1c,0x20,0x40,0x02,0xfc,0x24,0x7a,0x00,0x00,0x1a,0x22,0x06,0x00,0xe8,0xe2,
+0x00,0x03,0x18,0xe1,0x0e,0x0f,0x60,0xe2,0x04,0xf8,0x20,0x40,0x06,0xb9,0x24,0x20,
+0x83,0x1d,0x20,0x40,0x06,0xe4,0x6f,0xe2,0x00,0x30,0xc2,0x80,0x83,0x42,0x6f,0xe2,
+0x46,0x52,0xc3,0x02,0x03,0x1d,0x6f,0xe2,0x45,0x3a,0x20,0x7a,0x00,0x00,0x6f,0xe4,
+0x45,0x45,0xc0,0x80,0x03,0x37,0x6f,0xe2,0x0b,0x00,0x1f,0xe0,0xff,0xff,0x67,0xe4,
+0x45,0x45,0x1a,0x22,0x06,0x00,0xef,0xe2,0x00,0x03,0x18,0x62,0x7e,0x00,0x67,0xe4,
+0x45,0x43,0x20,0x40,0x03,0x3d,0x6f,0xe2,0x04,0xf8,0x1f,0xe3,0xfe,0x00,0x67,0xe2,
+0x45,0x2f,0x20,0x40,0x6b,0x0c,0x20,0x20,0x06,0xd0,0x20,0x40,0x4e,0xcb,0xd8,0x40,
+0x00,0x7f,0x20,0x40,0x7d,0xb5,0x67,0xe4,0x46,0x6a,0x20,0x20,0x4e,0xc6,0x6f,0xe2,
+0x46,0x79,0xc3,0x82,0x80,0x00,0x20,0x40,0x66,0x9e,0x24,0x7a,0x00,0x00,0x70,0x00,
+0x7c,0x18,0x20,0x20,0x50,0xda,0x70,0x0b,0x01,0x00,0x20,0x20,0x50,0xbd,0x1a,0x22,
+0x06,0x00,0xef,0xe2,0x00,0x03,0xc0,0x00,0x4f,0x1c,0xc0,0x00,0xcf,0x1f,0xc0,0x01,
+0x4f,0x25,0xc0,0x01,0x83,0x51,0x20,0x20,0x50,0x1c,0x58,0x00,0x00,0x01,0x20,0x20,
+0x4f,0x20,0xd8,0x40,0x00,0x0c,0x20,0x40,0x5b,0x4d,0x18,0xc0,0x8b,0xfe,0x58,0x00,
+0x00,0x00,0xe7,0xe4,0x00,0x05,0x20,0x20,0x50,0x1f,0x20,0x40,0x03,0x62,0x20,0x40,
+0x03,0x7f,0x58,0x00,0x00,0x00,0xe7,0xe4,0x00,0x05,0x20,0x20,0x03,0x91,0xef,0xe2,
+0x00,0x03,0x20,0x40,0x03,0x66,0x20,0x40,0x03,0x6d,0x20,0x20,0x03,0x91,0x20,0x40,
+0x03,0x83,0x58,0x28,0x00,0x02,0xe7,0xe6,0x00,0x05,0x20,0x60,0x00,0x00,0x67,0xe2,
+0x0a,0x96,0x20,0x40,0x03,0x83,0x59,0x28,0x03,0x02,0xe7,0xe8,0x00,0x05,0x6f,0xe2,
+0x0a,0x96,0xe7,0xe6,0x00,0x05,0x20,0x60,0x00,0x00,0x20,0x40,0x03,0x83,0x20,0x40,
+0x03,0x7f,0x20,0x40,0x03,0x7f,0x58,0x00,0x00,0x00,0xe7,0xe4,0x00,0x05,0x18,0x40,
+0x85,0xff,0x20,0x40,0x5b,0x4d,0x18,0xc0,0x8c,0x04,0xef,0xe2,0x00,0x06,0xc2,0x82,
+0x03,0x7a,0xc2,0x82,0x83,0x7a,0x18,0x40,0x84,0x01,0x20,0x60,0x00,0x00,0x20,0x40,
+0x03,0x83,0x5a,0x29,0x02,0x02,0xe7,0xf0,0x00,0x05,0x18,0x40,0x85,0xff,0x20,0x60,
+0x00,0x00,0xef,0xe2,0x00,0x03,0x1f,0xe2,0x72,0x00,0xe7,0xe2,0x00,0x05,0x20,0x20,
+0x67,0xed,0x20,0x40,0x03,0x86,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,0x03,0x88,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,0xef,0xe2,0x00,0x03,0xc0,0x00,0x03,0xa6,0xc0,0x00,0x83,0xa0,0xc0,0x01,
+0x03,0xac,0x20,0x20,0x50,0x1c,0xef,0xe4,0x00,0x03,0x1f,0xe2,0x24,0x00,0xef,0xe2,
+0x00,0x03,0x1f,0xe2,0x22,0x00,0xd8,0x40,0x00,0x00,0x20,0x20,0x50,0x2a,0xef,0xe4,
+0x00,0x03,0x1f,0xe2,0x0a,0x00,0xef,0xe2,0x00,0x03,0x1f,0xe2,0x72,0x00,0x20,0x40,
+0x67,0xda,0x20,0x20,0x50,0x1f,0xef,0xe2,0x00,0x03,0x1f,0xe2,0x2c,0x00,0x20,0x20,
+0x50,0x1f,0x20,0x40,0x50,0x1f,0x20,0x20,0x4d,0x85,0x6f,0xe2,0x46,0x79,0xc2,0x81,
+0x84,0xef,0x6f,0xe2,0x46,0x79,0xc3,0x83,0x80,0x00,0x18,0x40,0xff,0xfd,0xd8,0x40,
+0x00,0xc8,0x20,0x40,0x7d,0xb5,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,0x18,0x40,0x85,0xff,0x20,0x40,0x5b,0x4d,0x20,0x3a,0x03,0xce,0xe8,0x48,
+0x00,0x06,0x59,0x28,0x03,0x02,0x98,0x46,0x7c,0x00,0x24,0x22,0x83,0xce,0xef,0xe2,
+0x00,0x06,0xc2,0x82,0x83,0xca,0xc2,0x82,0x4f,0x01,0x20,0x20,0x03,0xce,0x20,0x40,
+0x06,0x02,0x68,0x44,0x46,0x7b,0x20,0x40,0x5e,0x4d,0x20,0x20,0x4f,0x03,0x70,0x46,
+0x7a,0x00,0x70,0x0b,0x01,0x01,0x20,0x40,0x50,0xe0,0x20,0x20,0x50,0x1c,0x20,0x40,
+0x56,0x48,0x24,0x7a,0x00,0x00,0x6f,0xe4,0x4f,0xfc,0x68,0x44,0x4f,0xfe,0x98,0x46,
+0x7c,0x00,0x20,0x22,0x83,0xd9,0x20,0x20,0x4e,0x41,0x6f,0xe2,0x45,0x3d,0xc1,0x00,
+0x00,0x00,0x20,0x40,0x06,0xbd,0x24,0x62,0x80,0x00,0x62,0x24,0x0a,0xaa,0x1a,0x20,
+0x8c,0x00,0xef,0xe2,0x00,0x06,0x1f,0xe1,0x7e,0x1f,0x1f,0xe3,0xfe,0x00,0x67,0xe2,
+0x45,0x2f,0x20,0x40,0x69,0x33,0x6a,0x24,0x0a,0xaa,0x1a,0x22,0x0c,0x00,0x20,0x40,
+0x06,0xeb,0x20,0x40,0x6a,0xec,0x6a,0x24,0x0a,0xaa,0x1a,0x22,0x0a,0x00,0x20,0x20,
+0x06,0xd7,0x20,0x40,0x03,0xfd,0x6f,0xe2,0x49,0x4d,0x20,0x3a,0x03,0xf0,0x6f,0xe2,
+0x00,0x47,0xc3,0x81,0x80,0x00,0x20,0x40,0x4c,0x8f,0x20,0x40,0x02,0x9a,0x20,0x40,
+0x04,0x03,0x20,0x40,0x03,0xd2,0x20,0x40,0x56,0x48,0x24,0x7a,0x00,0x00,0x20,0x40,
+0x51,0x83,0x20,0x40,0x56,0x48,0x24,0x7a,0x00,0x00,0x20,0x40,0x53,0x3e,0x20,0x40,
+0x56,0x48,0x24,0x7a,0x00,0x00,0x20,0x20,0x6a,0x59,0x20,0x40,0x04,0x08,0x24,0x62,
+0x80,0x00,0x20,0x40,0x66,0xfd,0x20,0x40,0x75,0x91,0x20,0x40,0x75,0x6a,0x20,0x60,
+0x00,0x00,0x20,0x40,0x50,0xcb,0xd8,0x40,0x01,0x00,0x20,0x40,0x50,0xc6,0x20,0x21,
+0x4d,0x54,0x20,0x20,0x4d,0x56,0x6f,0xe2,0x49,0x4d,0x68,0x42,0x00,0x46,0x98,0x46,
+0x7c,0x00,0x20,0x60,0x00,0x00,0x6f,0xe2,0x49,0x4b,0x68,0x42,0x00,0x46,0x98,0x46,
+0x7c,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x04,0x0c,0x24,0x62,0x80,0x00,0x20,0x20,
+0x6b,0x82,0x20,0x40,0x56,0x49,0x24,0x3a,0x4a,0x8b,0x20,0x40,0x56,0x4f,0x20,0x40,
+0x56,0x66,0x6f,0xe2,0x00,0x46,0x67,0xe2,0x49,0x4b,0x20,0x60,0x00,0x00,0x18,0xc2,
+0x22,0x00,0x20,0x40,0x56,0x48,0x24,0x7a,0x00,0x00,0x1a,0x22,0x0c,0x00,0x20,0x20,
+0x51,0x56,0xda,0x40,0x00,0x00,0x20,0x40,0x56,0x49,0x20,0x20,0x56,0x1d,0x20,0x40,
+0x56,0x38,0x6f,0xe6,0x42,0x32,0x24,0x7a,0x00,0x00,0x70,0x49,0x4b,0x00,0x20,0x60,
+0x00,0x00,0x20,0x40,0x56,0x3f,0x20,0x20,0x04,0x23,0x6f,0xe2,0x49,0x4b,0x24,0x7a,
+0x00,0x00,0x6f,0xe6,0x42,0x32,0x20,0x60,0x00,0x00,0x6f,0xe2,0x49,0x4b,0x20,0x3a,
+0x56,0x4c,0x20,0x40,0x04,0x0c,0x20,0x22,0xd6,0x4c,0x20,0x20,0x7d,0xc7,0x6f,0xe2,
+0x49,0x4e,0x20,0x3a,0x6c,0xd1,0x6f,0xe2,0x49,0x4f,0x68,0x44,0x45,0x47,0x98,0x40,
+0x8a,0x00,0x6f,0xe2,0x49,0x51,0xe7,0xe2,0x00,0x05,0x20,0x20,0x6c,0xd1,0x6f,0xe2,
+0x49,0x3e,0x24,0x3a,0x57,0x09,0x20,0x40,0x57,0x09,0x70,0x48,0x3b,0x01,0x70,0x48,
+0x3c,0x00,0x58,0x00,0x00,0x00,0x67,0xf0,0x48,0x31,0x58,0x00,0x00,0x1b,0x67,0xe4,
+0x48,0x39,0x20,0x60,0x00,0x00,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,0x20,0x40,0x57,0xaf,0x20,0x40,
+0x04,0x5c,0x20,0x20,0x58,0xa7,0x20,0x36,0x82,0x1e,0xc5,0x16,0x02,0x1e,0x20,0x20,
+0x57,0xbe,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x58,0xb3,0x6f,0xe2,0x48,0x3b,0x08,0x00,
+0x86,0x08,0xef,0xe2,0x00,0x06,0x1f,0xe2,0x72,0x00,0x08,0x00,0x86,0x08,0x20,0x22,
+0xd8,0xbc,0x20,0x20,0x58,0xb9,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x58,0xc4,0x6f,0xe2,
+0x44,0x56,0xc0,0x00,0xd8,0xd3,0x6f,0xe2,0x44,0x57,0x1f,0xf2,0x7e,0x00,0x1f,0xeb,
+0xfe,0x00,0x67,0xe2,0x48,0x3b,0x68,0x42,0x43,0x41,0x18,0x40,0xfe,0x06,0x67,0xe2,
+0x48,0x3c,0x6f,0xec,0x44,0x72,0x67,0xec,0x48,0x3d,0x18,0x42,0x72,0x00,0xd8,0xc0,
+0x43,0x42,0x20,0x40,0x7c,0xcf,0x20,0x20,0x58,0xde,0x6f,0xe2,0x49,0x3e,0x24,0x3a,
+0x58,0xf7,0xd8,0x40,0x00,0x04,0x6f,0xe2,0x44,0x57,0x7d,0x3a,0x04,0x06,0x60,0x42,
+0x48,0x3b,0x68,0x42,0x43,0x61,0x18,0x40,0xfe,0x06,0x67,0xe2,0x48,0x3c,0x6f,0xec,
+0x44,0x72,0x67,0xec,0x48,0x3d,0xd8,0xc0,0x43,0x62,0x18,0x42,0x72,0x00,0x20,0x40,
+0x7c,0xcf,0x20,0x40,0x58,0xa1,0x20,0x20,0x5a,0xe2,0x20,0x40,0x5a,0xc9,0xc6,0x16,
+0x00,0x00,0x20,0x40,0x59,0x9a,0x6f,0xe2,0x02,0xd5,0x2f,0xef,0xfe,0x04,0x79,0x20,
+0x80,0x2a,0x1f,0xe3,0x7e,0x00,0x98,0x42,0xfe,0x00,0x2f,0xef,0xfe,0x02,0x79,0x20,
+0x80,0x0f,0xc6,0x07,0x80,0x00,0x6f,0xe2,0x02,0xd6,0x20,0x3a,0x04,0x9c,0x6f,0xe2,
+0x04,0x3b,0xc3,0x02,0x04,0x9c,0x20,0x40,0x73,0x42,0x20,0x40,0x72,0xb2,0x7d,0x3a,
+0x00,0x0f,0x24,0x7a,0x00,0x00,0x68,0x42,0x04,0x52,0x79,0x40,0x04,0x02,0x60,0x42,
+0x04,0x52,0x6f,0xe2,0x49,0x3e,0x24,0x7a,0x00,0x00,0x20,0x20,0x04,0xa2,0x6f,0xe2,
+0x02,0xd6,0x20,0x7a,0x00,0x00,0x6f,0xe2,0x02,0xd5,0x2f,0xe0,0x06,0x01,0x20,0x20,
+0x84,0xca,0x2f,0xe0,0x06,0x02,0x20,0x20,0x84,0xaa,0x20,0x60,0x00,0x00,0x6f,0xe4,
+0x02,0xd9,0xc1,0x82,0x00,0x00,0xef,0xe6,0x00,0x06,0x67,0xe6,0x04,0x73,0x79,0x20,
+0x00,0x0f,0xc0,0x09,0x04,0xbe,0xc0,0x29,0x04,0xc0,0xc0,0x0b,0x04,0xb7,0xc0,0x0c,
+0x5e,0x3b,0xc0,0x01,0x5c,0xa1,0xc0,0x0f,0x05,0xfc,0x79,0x3f,0x80,0x0f,0x20,0x60,
+0x00,0x00,0x58,0x00,0x0b,0x1e,0x67,0xe4,0x48,0x35,0x20,0x40,0x04,0xc3,0x1f,0x20,
+0xf3,0xfe,0xda,0x20,0x02,0xe0,0x20,0x40,0x5a,0xbe,0x20,0x20,0x04,0xe3,0x20,0x40,
+0x04,0xc0,0x20,0x20,0x04,0xda,0x20,0x40,0x04,0xc3,0xda,0x20,0x02,0xde,0x20,0x20,
+0x5a,0xbe,0x6f,0xe2,0x02,0xd6,0x1f,0xe0,0xf3,0xf9,0x1f,0xe0,0xff,0xfc,0x67,0xe4,
+0x48,0x31,0xe8,0x44,0x00,0x06,0x60,0x44,0x48,0x33,0x20,0x60,0x00,0x00,0x79,0x20,
+0x00,0x0f,0x20,0x40,0x04,0xd2,0x6f,0xe2,0x04,0x73,0xc0,0x09,0x04,0xda,0xc0,0x0b,
+0x04,0xd9,0xc1,0x29,0x00,0x00,0x79,0x3f,0x80,0x0f,0x20,0x60,0x00,0x00,0x6f,0xe2,
+0x02,0xd6,0x68,0x44,0x48,0x31,0x98,0x40,0x84,0x00,0x60,0x44,0x48,0x31,0x1f,0xe2,
+0x72,0x00,0xda,0x20,0x02,0xd7,0x20,0x20,0x5a,0xbe,0x20,0x20,0x04,0xe3,0x20,0x40,
+0x04,0xdd,0x24,0x74,0x00,0x00,0x20,0x20,0x5e,0x13,0x20,0x40,0x7d,0xc1,0x6f,0xe4,
+0x48,0x33,0x68,0x44,0x48,0x31,0x98,0x46,0x7c,0x00,0x24,0x62,0x80,0x00,0x20,0x20,
+0x7d,0xbf,0x6f,0xe4,0x48,0x35,0x1f,0xe2,0x0a,0x00,0x6f,0xe2,0x02,0xd6,0x1f,0xe2,
+0x72,0x00,0x20,0x40,0x7c,0xdc,0x18,0xa2,0x7e,0x00,0x67,0xe4,0x48,0x35,0x20,0x40,
+0x04,0xdd,0x24,0x74,0x00,0x00,0xd8,0xe0,0x00,0x03,0x20,0x40,0x50,0xe6,0x20,0x20,
+0x04,0xef,0x20,0x40,0x5c,0x74,0x24,0x7a,0x00,0x00,0x70,0x0b,0x22,0x17,0x58,0x00,
+0x0b,0x1e,0x67,0xe4,0x48,0x37,0x68,0x44,0x0b,0x1e,0x18,0x40,0x84,0x04,0x58,0x00,
+0x00,0xf9,0x20,0x40,0x7d,0xb5,0x1f,0xe0,0xa5,0xfc,0x18,0x00,0x02,0x02,0x1f,0xe2,
+0x22,0x00,0x20,0x40,0x5c,0x32,0x6f,0xe4,0x48,0x37,0x1f,0xe2,0x0c,0x00,0x1a,0x22,
+0x72,0x00,0x20,0x40,0x7c,0xcf,0x18,0xc2,0x7e,0x00,0x67,0xe4,0x48,0x37,0x6f,0xe4,
+0x0b,0x1e,0x9a,0x46,0x7e,0x00,0x67,0xe4,0x0b,0x1e,0x20,0x3a,0x05,0x0b,0xd8,0x40,
+0x00,0xf9,0x20,0x40,0x7d,0xb5,0x1f,0xe2,0x24,0x00,0x18,0x00,0x02,0x01,0x20,0x20,
+0x04,0xfa,0x58,0x00,0x00,0x00,0x67,0xe4,0x48,0x35,0xd8,0xe0,0x00,0x03,0x20,0x20,
+0x50,0xe2,0x70,0x49,0x43,0x00,0x68,0x44,0x4f,0xf0,0x6f,0xe4,0x4f,0xf2,0x98,0x46,
+0x22,0x00,0x68,0x44,0x4f,0xf4,0x6f,0xe4,0x4f,0xf6,0x60,0x44,0x49,0x46,0x67,0xe4,
+0x49,0x44,0x98,0x46,0x7e,0x00,0x20,0x21,0x05,0x1f,0x20,0x22,0x85,0x1f,0x1a,0x22,
+0x04,0x00,0x6f,0xe4,0x49,0x44,0x98,0x40,0xfe,0x00,0x68,0x44,0x49,0x46,0x98,0x46,
+0x7e,0x00,0xd8,0x40,0x03,0x00,0x98,0x46,0x7c,0x00,0x24,0x61,0x00,0x00,0x70,0x49,
+0x43,0x01,0x20,0x60,0x00,0x00,0x68,0x42,0x04,0x52,0x28,0x4c,0x00,0x05,0x20,0x60,
+0x80,0x00,0x6f,0xe2,0x02,0xd5,0x1f,0xe3,0xfe,0x00,0x98,0x42,0xfe,0x00,0xc4,0x01,
+0x80,0x00,0x79,0x3f,0x84,0x05,0x79,0x40,0x04,0x03,0x60,0x42,0x04,0x52,0x28,0x40,
+0x06,0x03,0x24,0x60,0x80,0x00,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x05,0x34,0x6f,0xe2,
+0x48,0x3d,0x20,0x20,0x05,0x35,0x6f,0xe2,0x43,0xb0,0xc0,0x02,0xd9,0xac,0x6f,0xe2,
+0x44,0x97,0xc0,0x01,0x59,0xb0,0x20,0x60,0x00,0x00,0x6f,0xe2,0x04,0x52,0xc3,0x82,
+0x80,0x00,0x20,0x40,0x5a,0x1c,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x59,0xfc,0x20,0x40,
+0x5c,0x53,0x20,0x3a,0x5a,0x3e,0xef,0xe2,0x00,0x06,0xe8,0x42,0x00,0x06,0x18,0x42,
+0x22,0x00,0x9a,0x26,0x7e,0x00,0x20,0x40,0x05,0x5e,0x20,0x40,0x7d,0xb5,0x1f,0xe2,
+0x04,0x00,0xef,0xe2,0x00,0x06,0x1f,0xe2,0x02,0x00,0x1a,0x22,0x7e,0x00,0x98,0xc0,
+0x8c,0x00,0xd8,0xa0,0x48,0x3d,0x18,0x42,0x72,0x00,0x20,0x40,0x7c,0xcf,0x20,0x40,
+0x5a,0x2e,0x20,0x40,0x5a,0x40,0x20,0x40,0x5c,0x53,0xef,0xe2,0x00,0x06,0x1f,0xe2,
+0x22,0x00,0x18,0xc2,0x26,0x00,0xe8,0x42,0x00,0x06,0x18,0x42,0x24,0x00,0x9a,0x46,
+0x7e,0x00,0x20,0x40,0x05,0x5e,0x20,0x40,0x7d,0xb5,0x9a,0x40,0xfe,0x00,0xe7,0xe2,
+0x00,0x13,0x9a,0x26,0x7c,0x00,0x24,0x62,0x80,0x00,0x20,0x20,0x5c,0x76,0x18,0xc2,
+0x0a,0x00,0x68,0x44,0x48,0x39,0x18,0xa2,0x0c,0x00,0x20,0x60,0x00,0x00,0x6f,0xe2,
+0x49,0x3e,0x24,0x3a,0x5a,0x41,0x60,0x42,0x48,0x3c,0x68,0x42,0x04,0x52,0x79,0x20,
+0x04,0x05,0x18,0x41,0x7e,0xfc,0x98,0x21,0xfe,0x00,0x67,0xe2,0x04,0x52,0x1f,0xe1,
+0x7e,0x1f,0x28,0x0f,0xfe,0x29,0x79,0x20,0xfe,0x04,0x67,0xe2,0x48,0x3b,0x6f,0xe2,
+0x48,0x3b,0x28,0x20,0x06,0x01,0x24,0x20,0x85,0x73,0x6f,0xe2,0x48,0x3c,0x20,0x7a,
+0x00,0x00,0x6f,0xe2,0x04,0x3b,0xc4,0x02,0x00,0x00,0x20,0x40,0x73,0x42,0x20,0x20,
+0x72,0x99,0x6f,0xe2,0x49,0x3e,0x24,0x3a,0x72,0x9a,0xda,0x60,0x48,0x3b,0x68,0x4a,
+0x43,0xd5,0x20,0x40,0x72,0x77,0x18,0x00,0x70,0x08,0x98,0x00,0x5e,0x00,0x18,0x00,
+0x22,0x00,0x20,0x40,0x72,0x63,0x20,0x40,0x72,0xe8,0xda,0x60,0x48,0x3d,0x6f,0xe2,
+0x48,0x3c,0x1f,0xe0,0xa5,0xff,0x9a,0x60,0x8a,0x00,0x18,0x00,0x70,0x0c,0x1d,0xe2,
+0x7e,0x00,0xe7,0xe8,0x00,0x05,0x20,0x40,0x72,0x8e,0x6f,0xe2,0x48,0x3c,0x1f,0xe0,
+0xfe,0x04,0x67,0xe2,0x48,0x3c,0x68,0x4a,0x43,0xd5,0x18,0x40,0x84,0x01,0x60,0x4a,
+0x43,0xd5,0x20,0x60,0x00,0x00,0xc6,0x07,0x80,0x00,0xc6,0x16,0x00,0x00,0x20,0x40,
+0x5c,0x70,0x24,0x7a,0x00,0x00,0x6f,0xe2,0x02,0xd5,0x1f,0xe1,0x7e,0x03,0x67,0xe2,
+0x44,0xde,0xef,0xe2,0x00,0x06,0x67,0xe2,0x44,0xdd,0x20,0x7a,0x00,0x00,0x18,0xc2,
+0x7e,0x00,0x67,0xe4,0x44,0xdf,0x6f,0xe2,0x44,0xde,0xc0,0x01,0x85,0xd1,0x20,0x40,
+0x05,0xa3,0xd8,0xe0,0x00,0x03,0x24,0x34,0x4b,0xec,0x20,0x40,0x4b,0xf0,0x20,0x20,
+0x5a,0x6b,0x6f,0xe2,0x44,0xde,0xc0,0x01,0x05,0xa7,0xc0,0x00,0x85,0xbb,0x20,0x60,
+0x00,0x00,0x6f,0xe4,0x44,0xdf,0x1f,0xe2,0x0c,0x00,0xef,0xe4,0x00,0x06,0x67,0xe4,
+0x44,0xce,0xef,0xe4,0x00,0x06,0x20,0x40,0x5a,0x7a,0x24,0x74,0x00,0x00,0x68,0x42,
+0x44,0xdd,0x60,0x42,0x44,0xd0,0x6f,0xe4,0x44,0xce,0x1f,0xe0,0xfe,0x04,0x98,0x46,
+0x7c,0x00,0x20,0x22,0xfd,0xbf,0x6f,0xe2,0x44,0xdd,0x1f,0xe2,0x72,0x00,0xd8,0xa0,
+0x0d,0x7d,0x6f,0xe4,0x44,0xdf,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x7c,0xdc,0x20,0x20,
+0x7d,0xc1,0x20,0x40,0x5a,0x99,0x24,0x74,0x00,0x00,0x6f,0xe2,0x44,0xd0,0xd8,0xa0,
+0x0d,0x7d,0x98,0xa0,0xa2,0x00,0x68,0x42,0x44,0xdd,0x98,0x40,0xfe,0x00,0x67,0xe2,
+0x44,0xd0,0x6f,0xe2,0x44,0xdd,0x1f,0xe2,0x72,0x00,0x1a,0x22,0x0a,0x00,0x6f,0xe4,
+0x44,0xdf,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x7c,0xcf,0x58,0x00,0x0d,0x7d,0x67,0xe4,
+0x44,0xdf,0x6f,0xe4,0x44,0xce,0x1f,0xe0,0xfe,0x04,0x68,0x42,0x44,0xd0,0x98,0x46,
+0x7c,0x00,0x20,0x22,0xfd,0xbf,0x20,0x20,0x7d,0xc1,0x6f,0xe2,0x02,0xd7,0xc0,0x04,
+0x05,0xd5,0xc0,0x0a,0x05,0xe3,0x20,0x20,0x60,0x45,0xda,0x20,0x00,0x09,0xda,0x40,
+0x00,0x09,0x20,0x40,0x5c,0x22,0x58,0x00,0x00,0x21,0xe7,0xf0,0x00,0x05,0x20,0x40,
+0x05,0xdc,0x20,0x60,0x00,0x00,0x6f,0xe2,0x02,0xd8,0x1f,0xe1,0x7e,0x20,0x20,0x3a,
+0x05,0xe1,0x70,0x49,0x3e,0x00,0x20,0x60,0x00,0x00,0x70,0x49,0x3e,0x01,0x20,0x60,
+0x00,0x00,0xef,0xe4,0x00,0x06,0x67,0xe4,0x48,0x39,0x20,0x20,0x05,0xe6,0xda,0x20,
+0x00,0x09,0xda,0x40,0x00,0x15,0x20,0x40,0x5c,0x22,0x58,0x00,0x00,0xfb,0xe7,0xe4,
+0x00,0x05,0x58,0x00,0x08,0x48,0xe7,0xe4,0x00,0x05,0x58,0x00,0x00,0xfb,0xe7,0xe4,
+0x00,0x05,0x58,0x00,0x08,0x48,0xe7,0xe4,0x00,0x05,0x20,0x60,0x00,0x00,0xef,0xe4,
+0x00,0x06,0xc0,0x02,0x05,0xf7,0xc0,0x03,0x5e,0xd4,0xc0,0x02,0xde,0x96,0x20,0x60,
+0x00,0x00,0xef,0xe6,0x00,0x06,0x67,0xe6,0x04,0x73,0xc0,0x08,0x05,0xfe,0xc0,0x04,
+0x06,0x07,0x20,0x20,0x5c,0x8d,0xd8,0xe0,0x00,0x07,0x20,0x20,0x50,0xe2,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,0xa9,0x67,0xe4,0x44,0x78,0x20,0x20,
+0x5c,0xa2,0x20,0x40,0x5e,0x91,0x20,0x40,0x5a,0xbb,0x20,0x20,0x06,0x0a,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,0x86,0x16,0x20,0x20,0x5d,0x2d,0xd8,0x40,
+0x2a,0x00,0x20,0x40,0x5b,0x5c,0x20,0x3a,0x5e,0x56,0x20,0x20,0x5d,0x8b,0x6f,0xe2,
+0x49,0x3e,0x24,0x3a,0x5b,0xd5,0x78,0x55,0xfc,0x00,0x20,0x37,0x06,0x1f,0x24,0x36,
+0xdb,0xe6,0x20,0x40,0x4b,0xa0,0x6f,0xe4,0x40,0xc1,0x67,0xe4,0x04,0x49,0x24,0x36,
+0xcb,0xb3,0xc5,0x07,0xcb,0xb3,0x6f,0xe2,0x44,0xdd,0x24,0x3a,0x4b,0xb3,0x6f,0xe2,
+0x48,0x3c,0x24,0x3a,0x4b,0xb3,0x6f,0xe2,0x44,0xbb,0xc2,0x82,0xcb,0xb3,0x6f,0xe2,
+0x04,0x3b,0xc2,0x82,0xcb,0xb3,0x20,0x20,0x4b,0x95,0x20,0x20,0x68,0x46,0x6f,0xe2,
+0x00,0x7d,0xc0,0x08,0x06,0x3f,0xc0,0x0b,0x86,0x45,0xc0,0x1e,0x86,0x3c,0xc0,0x04,
+0x06,0x38,0xc0,0x03,0x86,0x35,0x20,0x20,0x60,0xfe,0x20,0x40,0x62,0x17,0x70,0x00,
+0x72,0x05,0x20,0x60,0x00,0x00,0x20,0x40,0x63,0xdb,0x70,0x04,0xd0,0x01,0x20,0x40,
+0x62,0x2f,0x20,0x20,0x7c,0x12,0x20,0x40,0x62,0xf2,0x70,0x09,0xb3,0x00,0x20,0x60,
+0x00,0x00,0x68,0x42,0x05,0x4e,0x18,0x46,0x7c,0x06,0x20,0x21,0x06,0x43,0x20,0x20,
+0x62,0x06,0x70,0x00,0x7e,0x24,0x20,0x20,0x61,0x34,0x20,0x20,0x62,0xd2,0x78,0x54,
+0x7c,0x00,0x20,0x40,0x66,0xa3,0x6f,0xe2,0x00,0x48,0x20,0x7a,0x00,0x00,0xc2,0x83,
+0x86,0x4c,0x20,0x20,0x63,0xf2,0xc0,0x42,0x06,0x4f,0xc0,0x41,0x86,0x52,0x20,0x20,
+0x64,0x21,0x20,0x40,0x06,0x55,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0x7b,0x20,0x40,
+0x06,0x55,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,
+0x44,0x90,0x20,0x3a,0x5e,0xd0,0x20,0x40,0x74,0x38,0x20,0x20,0x79,0x32,0x20,0x20,
+0x02,0x44,0xda,0x20,0x46,0x42,0x20,0x40,0x7d,0x9c,0x20,0x7a,0x00,0x00,0xc0,0x00,
+0xfb,0xff,0xc0,0x01,0x7c,0x04,0x20,0x60,0x00,0x00,0x6f,0xe2,0x46,0x51,0xc0,0x00,
+0x06,0x6c,0x20,0x20,0x6a,0x0d,0x6f,0xe4,0x02,0x60,0x1f,0xe2,0x0c,0x00,0x20,0x40,
+0x69,0x79,0x6f,0xe2,0x04,0xf8,0xc0,0x00,0x06,0x72,0x20,0x20,0x06,0x78,0x6f,0xe2,
+0x04,0xf9,0xc0,0x1f,0xe9,0x3e,0xc0,0x39,0xe9,0x47,0xc0,0x77,0x86,0x7f,0xc0,0x29,
+0xea,0x07,0x20,0x60,0x00,0x00,0x6f,0xe2,0x04,0xf9,0xc0,0x39,0xe9,0xe2,0xc0,0x1f,
+0xe9,0xe6,0xc0,0x77,0x86,0xf5,0xc0,0x7f,0x86,0xf7,0xc0,0x29,0x87,0x09,0x20,0x60,
+0x00,0x00,0x6f,0xe4,0x04,0xfd,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x69,0x84,0x6f,0xe2,
+0x04,0xff,0xc0,0x20,0x86,0x89,0xc0,0x20,0x69,0x6e,0xc0,0x38,0x86,0x8c,0xc0,0x38,
+0x06,0xa0,0xc0,0x24,0xe9,0xbe,0x20,0x20,0x6a,0x58,0x20,0x40,0x69,0x70,0x20,0x40,
+0x06,0xcd,0x20,0x20,0x69,0x68,0x20,0x40,0x69,0x72,0x20,0x20,0x69,0xa9,0x6f,0xe2,
+0x45,0x3c,0x1f,0xe2,0x04,0x00,0x79,0x20,0x04,0x07,0x20,0x40,0x06,0x9b,0xe0,0x42,
+0x00,0x05,0x20,0x60,0x00,0x00,0x6f,0xe2,0x45,0x2f,0x20,0x7a,0x00,0x00,0x1f,0xe3,
+0x7e,0x00,0xd8,0x40,0x00,0x00,0x20,0x40,0x06,0x9b,0xe0,0x42,0x00,0x05,0x20,0x60,
+0x00,0x00,0xd8,0xa0,0x49,0x53,0x1f,0xe0,0xff,0xff,0x1f,0xef,0xfe,0x05,0x98,0xa0,
+0x8a,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x06,0x8e,0x20,0x40,0x06,0xd2,0x6f,0xe2,
+0x49,0x52,0x1f,0xe0,0xfe,0x01,0x67,0xe2,0x49,0x52,0x20,0x40,0x06,0xaa,0x70,0x0a,
+0x95,0x08,0x20,0x40,0x7b,0xab,0x20,0x40,0x69,0x72,0x20,0x20,0x69,0xba,0x68,0x42,
+0x49,0x50,0x6f,0xe2,0x45,0x3c,0x1f,0xe0,0x8f,0xff,0xf9,0x20,0x04,0x00,0x60,0x42,
+0x49,0x50,0xd8,0xe0,0x00,0x00,0xa8,0x4f,0xff,0xff,0x20,0x20,0x86,0xb5,0x18,0xe0,
+0xfe,0x01,0x67,0xe2,0x49,0x51,0x20,0x60,0x00,0x00,0x18,0xe0,0x8e,0x01,0x18,0xe6,
+0x7c,0x03,0x20,0x21,0x06,0xb0,0x20,0x60,0x00,0x00,0x18,0xe0,0x8f,0xff,0x6f,0xe2,
+0x49,0x50,0xaf,0xef,0xff,0xff,0x20,0x60,0x00,0x00,0xd8,0xe0,0x00,0x00,0x6f,0xe2,
+0x49,0x50,0x20,0x3a,0x7d,0xbb,0xaf,0xef,0xff,0xff,0x24,0x20,0x86,0xc9,0x18,0xef,
+0xfe,0x05,0xda,0x20,0x49,0x53,0x9a,0x20,0xa2,0x00,0x1a,0x20,0x8c,0x02,0xef,0xe2,
+0x00,0x06,0x20,0x3a,0x06,0xc9,0x20,0x20,0x7d,0xbd,0x18,0xe0,0x8e,0x01,0x18,0xe6,
+0x7c,0x03,0x24,0x21,0x7d,0xbb,0x20,0x20,0x06,0xbe,0x6f,0xe2,0x45,0x2f,0x1f,0xe3,
+0x7e,0x00,0x20,0x20,0x06,0xd3,0x6f,0xe2,0x04,0xf8,0x20,0x20,0x06,0xd3,0x6f,0xe2,
+0x45,0x3c,0x1f,0xe0,0xff,0xff,0x1f,0xef,0xfe,0x05,0xd8,0xa0,0x49,0x53,0x98,0xa0,
+0x8a,0x00,0x18,0xa0,0x8a,0x01,0x6f,0xe2,0x45,0x3a,0xe7,0xe2,0x00,0x05,0x6f,0xe2,
+0x45,0x3b,0xe7,0xe2,0x00,0x05,0x6f,0xe2,0x45,0x37,0xe7,0xe2,0x00,0x05,0x6f,0xe2,
+0x45,0x38,0xe7,0xe2,0x00,0x05,0x20,0x60,0x00,0x00,0x6f,0xe2,0x45,0x2f,0x1f,0xe3,
+0x7e,0x00,0x20,0x20,0x06,0xe7,0x6f,0xe2,0x04,0xf8,0x20,0x20,0x06,0xe7,0x6f,0xe2,
+0x45,0x3c,0x1f,0xe0,0xff,0xff,0x1f,0xef,0xfe,0x05,0xd8,0xc0,0x49,0x53,0x98,0xc0,
+0x8c,0x00,0x18,0xc0,0x8c,0x01,0xef,0xe2,0x00,0x06,0x67,0xe2,0x45,0x3a,0xef,0xe2,
+0x00,0x06,0x67,0xe2,0x45,0x3b,0xef,0xe2,0x00,0x06,0x67,0xe2,0x45,0x37,0xef,0xe2,
+0x00,0x06,0x67,0xe2,0x45,0x38,0x20,0x60,0x00,0x00,0x20,0x40,0x06,0xe4,0x20,0x20,
+0x07,0x00,0x20,0x40,0x06,0xe4,0x6f,0xe4,0x04,0xfd,0x1f,0xe2,0x0c,0x00,0x1f,0xe0,
+0xfe,0x01,0x67,0xe4,0x04,0xfd,0xef,0xe2,0x00,0x06,0x68,0x42,0x45,0x3a,0x98,0x40,
+0xfe,0x00,0x67,0xe2,0x45,0x3a,0x6f,0xe2,0x04,0xf7,0x1f,0xeb,0x7e,0x00,0x67,0xe2,
+0x45,0x2f,0x20,0x40,0x6b,0x01,0x20,0x40,0x69,0x33,0x20,0x40,0x6a,0xe9,0x20,0x40,
+0x06,0xd0,0x20,0x40,0x6b,0x0a,0x20,0x20,0x6a,0x58,0x20,0x40,0x06,0x94,0x68,0xe2,
+0x04,0xf8,0x60,0xe2,0x49,0x51,0x18,0xe0,0x8f,0xff,0x6f,0xe2,0x49,0x50,0xf9,0x3f,
+0xfe,0x00,0x67,0xe2,0x49,0x50,0x6f,0xe2,0x49,0x52,0x1f,0xe0,0xff,0xff,0x67,0xe2,
+0x49,0x52,0x70,0x0a,0x95,0x09,0x20,0x40,0x7b,0xab,0x20,0x20,0x6a,0x07,0x6a,0x59,
+0xaa,0x55,0x40,0x00,0x00,0x40,0x32,0x00,0x00,0x00,0x00,0x5c,0x10,0x50,0x20,0x01,
+0x01,0x90,0x01,0x40,0x03,0x00,0x20,0x02,0x10,0x00,0xcc,0x18,0x30,0x19,0x01,0x00,
+0x00,0xe8,0x08,0x08,0x22,0x00,0xe8,0x09,0x18,0xd0,0x04,0x00,0x04,0x44,0x02,0x20,
+0x06,0x00,0x44,0x00,0x00,0x02,0x00,0x20,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,0x01,0x00,0x4e,0x49,0x01,0xaa,0x55,0x03,0x00,0x14,0x42,0x41,0x47,0x07,
+0xaa,0x55,0x03,0x00,0x3e,0x45,0x7f,0x00,0x03,0xaa,0x55,0x01,0x00,0x3d,0x45,0x01,
+0xaa,0x55,0x03,0x00,0x2d,0x46,0x03,0x00,0x04,0xaa,0x55,0x01,0x00,0x2c,0x46,0x01,
+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,0xe0,0x4d,0xe0,0x4f,0xe0,0x4d,
+0xe0,0x4d,0xaa,0x55,0x03,0x00,0x40,0x49,0x00,0x80,0x02,0xaa,0x55,0x02,0x00,0x68,
+0x46,0x10,0x0b,0xaa,0x55,0x01,0x00,0x6c,0x46,0x03,0xaa,0x55,0x01,0x00,0x6f,0x46,
+0x03,0xaa,0x55,0x03,0x00,0xaa,0x40,0x24,0x04,0x04,0xaa,0x55,0x01,0x00,0x79,0x46,
+0x00,0xaa,0x55,0x01,0x00,0x2f,0x48,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,0x03,0xaa,0x55,0x01,0x00,0x6d,0x46,0x00,0xaa,0x55,0x06,
+0x00,0xa0,0x40,0xa7,0xab,0x2a,0x21,0x10,0x55,0xaa,0x55,0x06,0x00,0xe7,0x44,0x05,
+0x33,0x31,0x32,0x31,0x2d,0xaa,0x55,0x03,0x00,0xe4,0x41,0x20,0x00,0x02,0xaa,0x55,
+0x01,0x00,0xe8,0x41,0x01,0xaa,0x55,0x01,0x00,0x90,0x44,0x01,0xaa,0x55,0x01,0x00,
+0x5f,0x44,0x07,0xaa,0x55,0x01,0x00,0x98,0x44,0x00,0xaa,0x55,0x04,0x00,0x75,0x46,
+0x2d,0x00,0x2f,0x00,0xaa,0x55,0x01,0x00,0x40,0x43,0x00,0xaa,0x55,0x02,0x00,0x54,
+0x44,0x40,0x00,0xaa,0x55,0x01,0x00,0x6e,0x46,0x05,0xaa,0x55,0x06,0x00,0x72,0x44,
+0x21,0xaa,0x01,0x33,0x02,0x3a,0xaa,0x55,0x09,0x00,0x81,0x43,0x08,0x33,0x31,0x32,
+0x31,0x2d,0x6c,0x65,0x20,0xaa,0x55,0x04,0x00,0x41,0x43,0x03,0x02,0x01,0x02,0xaa,
+0x55,0x12,0x00,0x61,0x43,0x0e,0x02,0x01,0x02,0x0d,0x09,0x33,0x31,0x32,0x31,0x20,
+0x4d,0x6f,0x75,0x20,0x42,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,0xf0,0xaa,0x55,0x01,0x00,0x7a,0x44,0x17,
+0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x01,0x00,0xd1,0x40,0x01,0xaa,
+0x55,0x0c,0x00,0x49,0x45,0x05,0x03,0x00,0x12,0x00,0x01,0x01,0x00,0x01,0x11,0x03,
+0x00,0xaa,0x55,0x01,0x00,0x5f,0x45,0x00,0xaa,0x55,0x01,0x00,0x4f,0x49,0x96,0xaa,
+0x55,0x02,0x00,0x47,0x45,0x83,0x46,0xaa,0x55,0xb6,0x00,0x83,0x46,0x03,0x12,0x00,
+0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x36,0x00,0x52,0x09,0x00,0x00,0x0a,0x00,
+0x01,0x00,0x01,0x09,0x00,0x01,0x35,0x03,0x19,0x12,0x00,0x09,0x00,0x04,0x35,0x0d,
+0x35,0x06,0x19,0x01,0x00,0x09,0x00,0x01,0x35,0x03,0x19,0x00,0x01,0x09,0x00,0x09,
+0x35,0x08,0x35,0x06,0x19,0x12,0x00,0x09,0x01,0x00,0x09,0x02,0x00,0x09,0x01,0x03,
+0x09,0x02,0x01,0x09,0x05,0xac,0x09,0x02,0x02,0x09,0x02,0x39,0x09,0x02,0x03,0x09,
+0x06,0x44,0x09,0x02,0x04,0x28,0x01,0x09,0x02,0x05,0x09,0x00,0x02,0x03,0x11,0x01,
+0x00,0x03,0x01,0x00,0x00,0x01,0x00,0x03,0x36,0x00,0x46,0x09,0x00,0x00,0x0a,0x00,
+0x01,0x00,0x03,0x09,0x00,0x01,0x35,0x03,0x19,0x11,0x01,0x09,0x00,0x02,0x0a,0x00,
+0x00,0x00,0x00,0x09,0x00,0x04,0x35,0x0c,0x35,0x03,0x19,0x01,0x00,0x35,0x05,0x19,
+0x00,0x03,0x08,0x01,0x09,0x00,0x06,0x35,0x09,0x09,0x65,0x6e,0x09,0x00,0x6a,0x09,
+0x01,0x00,0x09,0x01,0x00,0x25,0x0a,0x53,0x50,0x50,0x20,0x73,0x6c,0x61,0x76,0x65,
+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,0x3c,0xcc
+};
Index: patch/patch.prog
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/patch/patch.prog	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/patch/patch.prog	(working copy)
@@ -0,0 +1,2602 @@
+
+
+/******************************************/
+/**************   Start   *****************/
+/******************************************/
+//define GPIO_DEBUG
+
+p_start:
+	bbit1 8,pf_patch_ext
+	beq patch00_1,p_soft_reset
+	beq patch00_4,p_main_loop
+	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 patch06_4,p_send_eir
+	beq patch07_4,p_slave_dispatch
+	beq patch07_6,p_slave_notmatch
+	beq patch08_5,p_newconn_init
+	beq patch09_0,p_quit_connection_cont
+	beq patch0a_0,p_slave_receive_sniff
+	beq patch0b_4,p_process_dmh_common
+	beq patch0b_7,p_process_dmh_data_end1
+	beq patch0c_0,p_process_dmh_data_end
+	beq patch0d_6,p_check_attempt
+	beq patch0e_0,p_parse_l2cap
+	beq patch0e_1,p_parse_l2cap2
+	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 patch14_6,p_lpm_recover_clk
+	beq patch14_7,p_lpm_dispatch
+	beq patch15_3,p_lpm_dispatch_unconn
+	beq patch15_4,p_lpm_unconn_nossp
+//	beq patch16_1,p_lpm_check_wake_lock
+	beq patch16_4,p_app_process_bb_event
+	beq patch16_5,p_app_evt_timer
+	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 patch18_0,p_process_rx_l2cap_pkt
+	beq patch1b_3,p_l2cap_malloc
+	beq patch1b_5,p_l2cap_malloc_free
+	beq patch1b_6,p_l2cap_malloc_discard
+	beq patch1b_7,p_l2cap_malloc_is_fifo_full
+	beq patch1c_3,p_l2cap_malloc_into_fifo
+	beq patch1d_3,p_le_init_conn
+	beq patch1e_1,p_le_slave_dispatch
+	beq patch1e_5,p_le_slave_more_data
+	branch assert
+	
+pf_patch_ext:
+	beq patch20_3,p_le_receive_skip
+	beq patch20_5,p_le_transmit_receive_sifs
+	beq patch20_6,p_le_transmit
+	beq patch20_7,p_le_transmit0
+	beq patch21_0,p_le_send_adv_ind
+	beq patch21_3,p_le_send_scan_response
+	beq patch22_3,p_le_acknowledge
+	beq patch22_4,p_le_check_wak
+	beq patch23_4,p_le_prepare_tx
+	beq patch23_6,p_le_send_packet
+	beq patch23_7,p_le_parse
+	beq patch24_2,p_le_parse_l2cap	
+	beq patch26_2,p_le_lpm_set_mult
+	beq patch27_2,p_parse_lmp
+	beq patch27_6,p_send_lmp
+	beq patch28_1,p_ssp_disable
+	beq patch29_5,p_find_addr_from_bd_list_ble_mode
+	beq patch2a_1,p_rfcomm_rx_process
+	beq patch2a_2,p_parse_dlci0_rp
+	beq patch2c_2,p_scheduler_process
+	beq patch2c_6,p_scheduler_tx_l2cap_pkt
+	beq patch2f_1,p_sdp_process
+	beq patch31_5,p_le_encrypt
+	beq patch33_1,p_sp_initialize_256
+	beq patch33_7,p_ui_ipc_send_event
+	beq patch34_1,p_check_51cmd
+	branch assert
+
+p_app_process_bb_event:
+//	bpatch patch16_4,mem_patch16
+	//return if c51 need to process bb event
+	setarg 0
+	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	rtn
+
+p_app_evt_timer:
+//	bpatch patch16_5,mem_patch16
+	copy rega,pdata
+	store 1,mem_app_evt_timer_count
+p_app_evt_100ms_loop:
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count
+//	call app_lpm_wake_auto_lock_timer
+//	call app_unsniff_delay_timer
+//	call app_discovery_timer
+	fetch 2,mem_cb_event_timer
+	call callback_func
+	branch p_app_evt_100ms_loop
+	
+p_context_load:
+//	bpatch patch05_2,mem_patch05
+	set1 mark_context,mark
+	deposit rega
+	store 2,mem_context_ptr
+	force context_size,loopcnt
+	arg mem_le_state,contw
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	copy rega,contr
+	bbit1 mode_le,memcpy_fast
+	arg mem_state,contw
+	call memcpy_fast
+	call p_context_extend_ptr
+	copy pdata,contr
+	arg mem_pn_dlci,contw
+	arg CONTEXT_SIZE_EXTEND,loopcnt
+	call memcpy_fast
+//call ice_break	
+	ifetch 6,contr
+	store 6,mem_l2cap_tx_multi_offset
+	ifetch 2,contr
+	store 2,mem_sdp_state
+	ifetch 1,contr
+	store 1,mem_spp_state	
+	ifetch 1,contr
+	store 1,mem_l2cap_pending_item
+	ifetch 1,contr
+	store 1,mem_module_flag
+	ifetch 2,contr
+	store 2,mem_ui_state_map
+	ifetch 1,contr
+	store 1,mem_module_rfcomm_disconnect_count
+	arg  mem_afh_instant,contw
+	arg 32,loopcnt
+	call memcpy_fast	
+	arg SPP_CONTEXT_ALL_SIZE,loopcnt
+	arg  mem_rfcomm_channel_map,contw
+	call memcpy_fast
+	branch context_load+12
+	
+
+p_context_save:
+//	bpatch patch05_3,mem_patch05
+	fetch 2,mem_context_ptr
+	iforce contw
+	force context_size,loopcnt
+	arg mem_le_state,contr
+	branch memcpy_fast,le
+	arg mem_state,contr
+	call memcpy_fast
+	
+	call p_context_extend_ptr
+	copy pdata,contw
+	arg mem_pn_dlci,contr
+	arg CONTEXT_SIZE_EXTEND,loopcnt
+	call memcpy_fast
+	fetch 6,mem_l2cap_tx_multi_offset
+	istore 6,contw
+	fetch 2,mem_sdp_state
+	istore 2,contw
+	fetch 1,mem_spp_state
+	istore 1,contw
+	fetch 1,mem_l2cap_pending_item
+	istore 1,contw
+	fetch 1,mem_module_flag
+	istore 1,contw
+	fetch 2,mem_ui_state_map
+	istore 2,contw
+	fetch 1,mem_module_rfcomm_disconnect_count
+	istore 1,contw
+	arg  mem_afh_instant,contr
+	arg 32,loopcnt
+	call memcpy_fast
+	arg SPP_CONTEXT_ALL_SIZE,loopcnt
+	arg  mem_rfcomm_channel_map,contr
+	branch memcpy_fast
+
+p_context_clear:
+	arg mem_state, contw
+	force context_size,loopcnt
+	call  clear_mem
+	
+	arg mem_pn_dlci,contw
+	arg CONTEXT_SIZE_EXTEND,loopcnt
+	call clear_mem
+	setarg 0
+	store 6,mem_l2cap_tx_multi_offset
+	store 2,mem_sdp_state
+	store 1,mem_spp_state
+	store 1,mem_l2cap_pending_item
+	store 1,mem_module_flag
+	store 2,mem_ui_state_map
+	store 1,mem_module_rfcomm_disconnect_count
+	arg  mem_afh_instant,contw
+	arg 32,loopcnt
+	branch clear_mem	
+	
+	
+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	
+	mul32 pdata,CONTEXT_SIZE_EXTEND+68,pdata
+	arg mem_context_extend,temp
+	iadd temp,pdata
+	rtn
+
+p_newconn_init:
+//	bpatch patch08_5,mem_patch08	
+	call sp_clear_flags
+	setarg 0
+	store 6,mem_l2cap_tx_multi_offset
+	store 2,mem_sdp_state
+	store 1,mem_spp_state	
+	store 1,mem_state
+	store 6,mem_tsniff
+	store 1,mem_l2cap_pending_item
+	store 2,mem_ui_state_map
+	store  1,mem_rfcomm_channel_map
+	store 1,mem_rfcomm_channel_cnt
+	store 1,mem_rfcomm_channel_map
+	jam 1,mem_rfcomm_next_channal
+	arg SPP_CONTEXT_SIZE,loopcnt
+	mul32 loopcnt,SPP_CONTEXT_NUMBER,loopcnt
+	arg mem_spp_context1,contw
+	call clear_mem
+	call init_lmp_reinit
+//p_new_conn_handle:
+//	call new_conn_handle
+//	branch p_newconn_init,blank
+//	store 1,mem_conn_handle
+	branch newconn_init+4
+
+p_context_new:
+//fetch 1,2
+//increase 1,pdata
+//store 1,2
+	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_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
+//call ice_break
+	branch context_check_esco_wack + 3
+
+p_context_free:
+//fetch 1,3
+//increase 1,pdata
+//store 1,3	
+	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_main_loop:	
+	call idle_dispatch
+	call app_process_idle
+//	call inquiry_dispatch
+	call p_inquiry_scan_dispatch
+	call p_page_scan_dispatch
+	call connection_dispatch
+	call lpm_dispatch
+	branch main_loop
+
+p_inquiry_scan_dispatch:
+	fetch 1,mem_context_cnt
+	rtneq CONTEXT_NUM_NEW	
+	branch inquiry_scan_dispatch
+	
+p_page_scan_dispatch:
+	fetch 1,mem_context_cnt
+	rtneq CONTEXT_NUM_NEW
+	fetch 1,mem_scheduler_handle_flag
+	nrtn blank
+	branch page_scan_dispatch
+	
+p_context_search:
+//	bpatch patch05_6,mem_patch05
+	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
+
+p_send_eir:
+//	bpatch patch06_4,mem_patch06
+	call context_check_all_wack		
+	rtn zero
+//fetch 1,4
+//increase 1,pdata
+//store 1,4
+	branch send_eir+1
+
+p_slave_dispatch:
+//	bpatch patch07_4,mem_patch07
+	jam 0,mem_retransmit_attempt
+	call afh_process_freq_map
+	branch slave_dispatch+1
+
+	
+p_lpm_recover_clk:
+//	bpatch patch14_6,mem_patch14
+	setarg 0
+	copy auxcnt,null
+	branch p_lpm_recover_timeout,zero
+	hfetch 1,core_lpm_xtalcnt
+	hfetcht 1,core_lpm_buckcnt
+	isub temp,null
+	branch p_lpm_recover_xtal,positive
+	deposit temp
+p_lpm_recover_xtal:
+	isub auxcnt,pdata
+	increase 1,pdata
+p_lpm_recover_timeout:
+	increase 8,pdata
+	until null,lpo_edge
+	iadd lpo_time,pdata
+	fetcht 4,mem_sleep_counter
+	iadd temp,pdata
+	fetcht 3,mem_clks_per_lpo
+	imul32 temp,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	increase param_lpm_fix,pdata
+	arg 3750,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	fetcht 6,mem_sleep_clkn
+	call clk_add
+	copy temp,clkn
+	fetch 6,mem_context_new + coffset_clk_offset
+	branch calc_clke2
+	
+p_lpm_dispatch_unconn:
+//	bpatch patch15_3,mem_patch15
+	fetch 1,mem_context_new
+	branch lpm_dispatch_unconn+2
+
+p_lpm_dispatch:
+//	bpatch patch14_7,mem_patch14
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_ssp_enable
+	branch p_lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+p_lpm_dispatch_next:
+	fetch 1,mem_le_sc_calc
+	nrtn blank	
+	call lpm_check_wake_lock
+	nrtn blank
+	fetch 1,mem_context_new
+	compare 3,pdata,0x7							/* sco won't sleep */
+	nbranch lpm_dispatch_unconn,true
+	fetch 2,mem_context_new + coffset_tsniff
+	rtn blank										/* role switch */
+	rtn wake
+//	bpatch patch15_0,mem_patch15
+	fetcht 1,mem_lpm_current_mult
+	fetch 2,mem_context_new + coffset_tsniff
+	imul32 temp,pdata
+	rshift4 temp,temp
+	rshift2 temp,temp
+	isub temp,pdata
+	fetcht 4,mem_context_new + coffset_sniff_anchor
+	iadd temp,pdata
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	lshift16 pdata,alarm
+//	bpatch patch15_1,mem_patch15
+	fetch 2,mem_context_new + 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_le_slave_dispatch:
+//	bpatch patch1e_1,mem_patch1e
+	set0 mark_buf_full,mark
+	jam 0,mem_le_md_count
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+	call le_secure_connect_sm
+endif
+	disable attempt
+	call le_supervision_update
+	branch le_slave_disconn,positive
+	call check_ble_disabled
+	call le_setup
+	call le_receive_slave
+	nbranch le_slave_unsync,sync	// vol.6 part B 4.5.1 respond even crc error
+	call p_check_ipcbuf_size,match
+	fetch 1,mem_ipcbuf_bt2m0_flag
+	ncall p_buf_full,blank
+	call le_got_first_packet
+	branch le_slave_match,match
+	bmark1 mark_buf_full,le_slave_match
+	branch le_slave_cont	
+p_buf_full:
+	set1 mark_buf_full,mark
+	disable match
+	rtn
+p_le_slave_more_data:
+//	bpatch patch1e_5,mem_patch1e
+	enable attempt
+	call le_transmit_receive_sifs_notx
+	call p_check_ipcbuf_size,match
+	fetch 1,mem_ipcbuf_bt2m0_flag
+	ncall p_buf_full,blank
+	branch le_slave_match,match
+	bmark1 mark_buf_full,le_slave_match
+	branch le_slave_cont
+	
+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_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_quit_connection_cont:
+//	bpatch patch09_0,mem_patch09
+	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+//	call quit_connection_cont+1
+//	fetch 1,mem_scheduler_handle_flag	 
+	call  p_context_free 
+	branch p_context_clear
+
+
+p_slave_notmatch:
+//	bpatch patch07_6,mem_patch07
+ifdef GPIO_DEBUG
+	call p_match,match
+endif
+//	call ui_dispatch
+	branch slave_notmatch+1
+	
+ifdef GPIO_DEBUG
+p_match:
+	arg 0x0f,addhi 
+	jam 0x3f,0x18728 
+	jam 0x3e,0x18728
+	arg 0,addhi	
+	rtn
+endif
+	
+p_slave_receive_sniff:
+	enable swfine
+	fetch 2,mem_rx_window
+	rshift pdata,pdata
+	arg param_pll_setup,temp
+	iadd temp,pdata
+	call ahead_window
+	call fetch_extm_bt_adr
+	force 0x03,freq_mode          /* connection hop */
+	call rx_radio_freq
+	call init_rx_packet_flags
+	call prep_crypt
+ifdef GPIO_DEBUG
+	arg 0x0f,addhi 
+	jam 0x3f,0x18727 
+	jam 0x3e,0x18727
+	arg 0,addhi	
+endif	
+//	bpatch patch0a_0,mem_patch0a
+	branch slave_receive_sniff+12
+
+p_process_dmh_common:	
+//	bpatch patch0b_4,mem_patch0b
+	set0 mark_fhs_eir,mark
+	fetch 1,mem_lch_code
+	and_into 0x03,pdata
+	arg mem_rxbuf,contw //lmp_data or test packet
+	beq LLID_LMP,process_lmp
+	bmark1 mark_testmode,process_dmh_data
+	//non-HCI mode
+	fetch 1,mem_l2cap_rx_handle
+	branch process_dmh_common+12,blank
+	call p_check_l2cap_rx_handle
+	nbranch error_payload,zero
+	branch process_dmh_common+12
+	
+p_process_dmh_data_end1:	
+//	bpatch patch0b_7,mem_patch0b
+	parse demod,bucket,16  /* cycle through the crc */
+	branch error_payload_crc,crc_failed
+	fetch 1,mem_l2cap_flow_ctrl_flag
+	beq L2CAP_FLOW_CTRL_ENABLE,error_payload_crc
+	branch process_dmh_data_end+5
+ 
+p_process_dmh_data_end:
+//	bpatch patch0c_0,mem_patch0c
+	fetch 1,mem_l2cap_rxbuff_new
+	beq 1,p_process_l2cap_pass_crc_buff1
+	beq 2,p_process_l2cap_pass_crc_buff2
+	branch assert
+	
+p_process_l2cap_pass_crc_buff1:
+	fetch 2,mem_l2cap_rxbuff1_len
+	fetcht 2,mem_len
+	iadd temp,pdata
+	store 2,mem_l2cap_rxbuff1_len
+	beq 0,assert
+	fetcht 2,mem_l2cap_rxbuff1// l2cap payload length
+	increase 4,temp
+	isub temp,null
+	call p_l2cap_buff1_inuse,zero //l2cap pkts not ended
+	branch process_dmh_cont
+
+p_l2cap_buff1_inuse:
+	fetch 1,mem_conn_handle
+	store 1,mem_l2cap_rx_handle
+	branch l2cap_buff1_inuse
+
+p_l2cap_buff2_inuse:
+	fetch 1,mem_conn_handle
+	store 1,mem_l2cap_rx_handle
+	branch l2cap_buff2_inuse
+	 
+p_process_l2cap_pass_crc_buff2:
+	fetch 2,mem_l2cap_rxbuff2_len
+	fetcht 2,mem_len
+	iadd temp,pdata
+	store 2,mem_l2cap_rxbuff2_len
+	beq 0,assert
+	fetcht 2,mem_l2cap_rxbuff2// l2cap payload length 
+	add temp,4,temp
+	isub temp,null
+	call p_l2cap_buff2_inuse,zero //l2cap pkts not ended
+	branch process_dmh_cont
+
+p_parse_l2cap:	
+//	bpatch patch0e_0,mem_patch0e
+	call p_check_l2cap_rx_handle
+	nrtn zero
+	branch parse_l2cap+1
+
+p_parse_l2cap2:	
+//	bpatch patch0e_1,mem_patch0e
+	fetch 1,mem_l2cap_rx_done
+	beq L2CAP_RX_DONE,p_parse_l2cap_release_buff1
+	jam L2CAP_RX_CLEAR,mem_l2cap_rx_done
+	fetch 1,mem_l2cap_rxbuff_inuse
+	rtnbit0 L2CAP_INUSE_BUFF2
+	arg mem_l2cap_rxbuff2,contr	
+	call process_rx_l2cap_pkt
+	fetch 1,mem_l2cap_rx_done
+	beq L2CAP_RX_DONE,p_parse_l2cap_release_buff2
+	rtn
+
+p_parse_l2cap_release_buff1:
+	call parse_l2cap_release_buff1
+p_clear_l2cap_handle:
+	fetch 1,mem_l2cap_rxbuff_inuse
+	nrtn blank
+	branch p_clear_l2cap_rx_handle
+	
+p_parse_l2cap_release_buff2:
+	call parse_l2cap_release_buff2
+	branch p_clear_l2cap_handle
+
+p_check_attempt:
+//	bpatch patch0d_6,mem_patch0d
+	enable attempt
+	fetch 1,mem_state
+	bbit1 state_insniff,p_check_attempt_sniff
+//	rtnmark1 mark_testmode						/* pdata won't be blank now, try attempt */
+	fetch 1,mem_retransmit_attempt
+	increase 1,pdata
+	store 1,mem_retransmit_attempt
+	sub pdata,3,null
+	nbranch check_attempt_nomore,positive
+	fetch 1,mem_arq
+	rtnbit1 wack
+	fetch 1,mem_lmp_to_send
+	nrtn blank
+	fetch 1,mem_op
+	rtnbit1 op_txl2cap
+	branch check_attempt_nomore
+
+p_check_attempt_sniff:
+//	bbit0 state_insco,check_attempt_not_sco
+//check_attempt_not_sco:
+	branch check_attempt_not_sco
+	
+	
+
+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_idle
+	store 2,mem_cb_idle_process
+
+//	setarg p_module_process_bb_event
+	setarg 0
+	store 2,mem_cb_bb_event_process
+//	setarg p_module_bt_conn_process
+	store 2,mem_cb_bt_process
+
+	setarg p_module_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg p_module_le_receive_data
+	store 2,mem_cb_att_write
+
+	setarg p_module_lpm_lock
+	store 2,mem_cb_check_wakelock
+
+
+	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_process_idle:
+	call check_51cmd
+	call p_module_control_air_flow
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	fetch 2,IPC_M02BT_READ_PTR
+	fetcht 2,IPC_M02BT_WRITE_PTR
+	isub temp,null
+	rtn zero
+	branch module_process+4
+	
+p_module_process_bb_event:
+//	copy regc,pdata
+//	fetch 1,mem_fifo_temp
+//	call app_event_normal_process
+	fetch 1,mem_fifo_temp
+	beq BT_EVT_SPP_DISCONNECTED,p_module_process_spp_disconnected
+	beq BT_EVT_BB_DISCONNECTED,p_module_process_bb_event_disconned
+	beq BT_EVT_LE_CONNECTED,p_module_process_le_conn
+	beq BT_EVT_SETUP_COMPLETE,p_module_process_setup_complete
+	beq BT_EVT_SPP_CONNECTED,p_module_process_spp_connected
+	beq BT_EVT_LINKKEY_GENERATE,eeprom_store_bd_reconn_info
+	beq BT_EVT_ENTER_SNIFF,p_module_process_enter_sniff
+	beq BT_EVT_BB_CONNECTED,p_module_process_bb_conn
+	branch module_process_bb_event + 1
+
+p_module_process_bb_conn:
+	call module_process_bb_conn
+	branch app_evt_bt_conn
+	
+p_module_process_enter_sniff:
+	rtn
+
+
+	
+p_module_process_spp_connected:
+	call p_clear_sch_handle
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SPP_CONN,pdata
+	store 2,mem_ui_state_map
+	jam HCI_EVENT_SPP_CONN_REP,mem_module_uart_opcode
+	setarg 7
+	call module_hci_prepare_tx
+	fetch 1,mem_conn_handle
+	lshift4 pdata,pdata
+	fetcht 1,mem_ms_channel
+	ior temp,pdata
+	istore 1,contwu
+	fetch 6,mem_plap
+	istore 6,contwu
+	branch uartd_send		
+	
+p_module_process_setup_complete:
+	fetch 1,mem_context_cnt
+	mul32 pdata,0x50,pdata
+	arg 0x150,temp
+	iadd temp,temp
+	storet 2,mem_pscan_interval
+	arg 0x100,temp
+	iadd temp,temp
+	storet 2,mem_iscan_interval
+	fetch 1,mem_conn_handle
+	store 1,mem_scheduler_handle_flag 
+	fetch 1,mem_multi_piconet_flag
+	call module_conn_start,blank
+	branch 	module_spp_clear_last_transmite_clock
+
+p_module_process_bb_event_disconned:
+   	jam 0,mem_module_rfcomm_disconnect_count
+//	fetch 2,mem_ui_state_map
+//	isolate1 UI_STATE_BT_SPP_CONN,pdata
+//	call p_module_hci_event_spp_disconnect,true
+	fetch 1,mem_multi_piconet_flag
+	call module_disconn_start,blank
+	setarg 0
+	store 2,mem_ui_state_map
+	
+	call p_dis_check_sch_handle
+	call p_dis_check_l2cap_tx_handle
+
+p_dis_check_l2cap_rx_handle:
+	call p_check_l2cap_rx_handle
+	nrtn zero
+	jam 0,mem_l2cap_rxbuff_inuse
+p_clear_l2cap_rx_handle:
+	jam 0,mem_l2cap_rx_handle
+	rtn
+	
+	
+p_check_l2cap_rx_handle:
+	fetch 1,mem_l2cap_rx_handle
+	fetcht 1,mem_conn_handle
+	isub temp,null
+	rtn
+	
+p_dis_check_l2cap_tx_handle:	
+	call p_check_l2cap_tx_handle
+	nrtn zero
+	setarg 0
+	store 3,mem_tx_fifo3
+	branch p_l2cap_clear_tx_handle
+
+p_dis_check_sch_handle:	
+	call p_check_scheduler_handle
+	nrtn zero
+p_clear_sch_handle:
+	jam 0,mem_scheduler_handle_flag
+	rtn
+
+p_module_hci_event_spp_disconnect:
+	jam HCI_EVENT_SPP_DIS_REP,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	fetch 1,mem_conn_handle
+	lshift4 pdata,pdata
+	fetcht 1,mem_current_channel
+	ior temp,pdata
+	istore 1,contwu
+	branch uartd_send	
+
+p_module_process_spp_disconnected:
+//	fetch 1,mem_rfcomm_lmp_dis_flag
+//	ncall p_set_rfcomm_disconnect_count,blank
+	call p_module_hci_event_spp_disconnect
+	fetch 1,mem_rfcomm_channel_cnt
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_SPP_CONN ,pdata
+	store 2,mem_ui_state_map
+	jam 50,mem_module_rfcomm_disconnect_count
+	rtn
+	
+p_module_process_le_conn:
+	call module_clear_recv_confirm_flag
+	branch module_process_le_conn
+
+
+p_module_bb_event_timer:
+	rtn
+	
+p_module_rfcomm_disconnect_timer:
+	rtnmark0 mark_context
+	fetch 1,mem_module_rfcomm_disconnect_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_module_rfcomm_disconnect_count
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED, check_51cmd_disconnect
+	rtn
+
+p_module_le_receive_data:
+	call module_check_ble_encrypt_state
+	rtn user
+	copy rega,pdata
+	store 2,mem_module_le_rx_data_address
+	call p_check_ble_40_or_42
+//	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
+	branch module_hci_event_receive_le_data
+	
+p_check_ble_40_or_42:
+	fetch 1,mem_ble_dle_enable
+	nbranch p_check_ble_40,blank
+p_check_ble_42:
+	copy loopcnt,pdata
+	rtn	
+p_check_ble_40:
+	copy regb,pdata
+	rtn
+	
+
+p_module_lpm_lock:
+	call p_le_check_complete_packet
+	nbranch app_get_lpm_wake_lock,user
+	branch module_lpm_lock
+
+//p_module_bt_conn_process:
+//	call p_module_spp_enter_sniff
+//	branch module_process_idle
+
+p_module_spp_enter_sniff:
+//call ice_break
+	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 254,temp
+	call not_greater_than
+	copy pdata,loopcnt
+	fetch 2,mem_current_length
+	isub loopcnt,pdata
+	store 2,mem_current_length
+	add loopcnt,1,pdata	
+	call module_hci_prepare_tx
+
+	fetch 1,mem_conn_handle
+	lshift4 pdata,pdata
+	fetcht 1,mem_current_channel
+	ior temp,pdata
+	istore 1,contwu
+	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_control:
+	fetch 1,mem_module_uart_opcode
+	beq HCI_CMD_SPP_DATA_REQ,p_module_hci_cmd_receive_spp_data
+	beq HCI_CMD_SLEEP,p_module_hci_cmd_enter_sleep
+	beq HCI_CMD_SET_PAIRING_REQ,p_module_hci_cmd_set_pairing_mode
+	beq HCI_CMD_DELETE_CUSTOMIZE_SERVICE,module_hci_cmd_delete_customize_service
+	beq HCI_CMD_ADD_SERVICE_UUID,module_hci_cmd_add_service_uuid
+	beq HCI_CMD_ADD_CHARACTERISTIC_UUID,module_hci_cmd_add_characteristic_uuid
+	beq HCI_CMD_SET_COD,module_hci_cmd_le_set_adv_data_set_cod
+	beq HCI_CMD_ALL_ROUND,module_hci_cmd_all_round
+	beq HCI_CMD_BT_DISCONNECT,p_module_hci_cmd_bt_disconnect
+	beq HCI_CMD_CONFIRM_GKEY,p_module_hci_cmd_confirm_gkey
+	beq HCI_CMD_PASSKEY_ENTRY,p_module_hci_cmd_passkey_entry
+	beq HCI_CMD_SET_CREDIT_GIVEN,p_module_hci_cmd_set_credit_given
+	beq HCI_CMD_SET_VISIBILITY_REQ,p_module_hci_cmd_set_visibility	
+	beq HCI_CMD_SET_MULTI_PICONET,p_module_hci_cmd_set_multi_piconet
+	branch module_hci_cmd_control + 2
+
+p_module_hci_cmd_set_multi_piconet:
+	ifetcht 1,contru
+	storet 1,mem_multi_piconet_flag
+	branch  module_hci_event_receive_valid_cmd
+
+p_module_hci_cmd_set_visibility:
+	ifetcht 1,contru
+	storet 1,mem_module_bluetooth_stauts_by_command
+	and temp,0x03,pdata
+	store 1,mem_scan_mode
+	branch  module_hci_event_receive_valid_cmd
+
+p_module_hci_cmd_set_credit_given:
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BT_SPP_CONN,p_module_hci_event_receive_invalid_cmd
+	fetch 1,mem_credit_flag
+	beq  CREDIT_DISABLE,p_module_hci_event_receive_invalid_cmd
+	copy rega,contru
+	ifetchr queue, 1,contru
+	and queue,0xf,queue
+	storer queue,1,mem_current_channel
+	call  p_check_conn_channel
+	nbranch p_module_hci_event_receive_invalid_cmd, true
+	call p_parse_uih_spp_uih_current_channel_getnewpara
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet	
+	ifetch 1,contru
+	fetcht 1,mem_credit_given
+	iadd temp,temp
+	storet 1,mem_credit_given	
+	branch p_parse_uih_spp_uih_current_channel_savenewpara
+	
+p_module_hci_check_conn_handle:
+	copy rega,rege
+	ifetcht 1,contru
+	rshift4 temp,temp
+	call 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_module_hci_event_invalid_cmd_disblank:
+	call p_module_hci_event_receive_invalid_cmd
+	branch disable_blank
+
+//return blank continue parse 
+p_module_hci_check_sch_handle:
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	bmark0 mark_context,disable_blank
+	call p_check_scheduler_handle
+	nbranch disable_blank,zero
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	branch enable_blank
+	
+p_module_hci_cmd_passkey_entry:
+	call p_module_hci_check_sch_handle
+	nrtn blank
+	branch module_hci_cmd_passkey_entry
+
+p_module_hci_cmd_confirm_gkey:
+	call p_module_hci_check_sch_handle
+	nrtn blank
+	branch module_hci_cmd_confirm_gkey+2
+
+p_module_hci_cmd_bt_disconnect:
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	call lmo_fifo_check
+	nrtn blank	
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	branch check_51cmd_disconnect
+//	jam LMP_DETACH,mem_lmo_opcode2
+//	jam OTHER_END_TERMINATED,mem_disconn_reason_send
+//	rtn
+
+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_spp_data:
+	call p_module_hci_check_conn_handle
+	nrtn blank
+	copy rega,contru
+	ifetchr queue, 1,contru
+	and queue,0xf,queue
+	storer queue,1,mem_current_channel
+	call p_check_conn_channel
+	nbranch p_module_hci_event_receive_invalid_cmd,true
+	call p_parse_uih_spp_uih_current_channel_getnewpara
+	
+	fetch 1,mem_state
+	bbit1 state_insniff,p_module_exit_sniff
+	fetch 1,mem_ui_state_map
+	bbit0 UI_STATE_BT_SPP_CONN,p_module_hci_event_receive_invalid_cmd
+//	call app_check_sniff
+//	branch module_hci_cmd_spp_exit_sniff,true
+//	branch module_hci_cmd_receive_spp_data+4
+
+//	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+//	call p_nl_clear_last_transmite_clock
+//	call module_spp_clear_last_transmite_clock
+	fetch 1,mem_remote_credits
+	rtn blank
+	fetch 2,mem_nl_rx_len_all
+	bne 0,p_module_hci_cmd_pass_init_ng_rx_len_all
+	fetch 1,mem_module_uart_len
+	add pdata,-1,pdata
+	store 2,mem_nl_rx_len_all
+
+	copy  rega,contru 
+	ifetch 1,contru
+//	store 2,mem_nl_rx_handle
+	copy contru,pdata
+	store 2,mem_nl_rx_data_src
+//	branch p_module_hci_cmd_pass_init_ng_rx_len_all
+p_module_hci_cmd_pass_init_ng_rx_len_all:
+	call p_module_hci_cmd_get_current_packet_len_and_remain_len
+	fetch  1,mem_current_channel
+	lshift pdata,pdata
+	store 1,mem_pn_dlci
+	call spp_tx_rfcomm_packet
+	branch p_parse_uih_spp_uih_current_channel_savenewpara
+
+p_module_hci_cmd_get_current_packet_len_and_remain_len:
+	call module_hci_cmd_get_current_patcket_len
+	arg 0x7f,temp
+	call not_greater_than
+	store 2,mem_current_packet_length
+	branch module_hci_cmd_get_current_packet_len_and_remain_len+1
+
+
+p_module_exit_sniff:
+	fetch 1,mem_module_flag
+	rtnbit1 MOUDLE_TASK_UNSNIFF
+	call lmo_fifo_check
+	nrtn blank	
+	jam LMP_UNSNIFF_REQ,mem_lmo_opcode2
+	branch module_set_unsniff_task_flag	
+	
+
+p_module_hci_cmd_spp_exit_sniff:
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	branch module_exit_sniff
+
+p_module_hci_cmd_set_pairing_mode:
+	copy rega,contru
+	ifetch 1,contru
+	beq PAIRING_PINCODE,module_hci_pairing_pincode_mode
+	beq PAIRING_JUSTWORK,module_hci_pairing_just_work_mode
+	beq PAIRING_PASSKEY,module_hci_pairing_passkey
+	beq PAIRING_CONFIRM,p_module_hci_pairing_numeric_comparison
+	branch module_hci_event_receive_invalid_cmd
+
+p_module_hci_pairing_numeric_comparison:
+	setarg 0x000001
+	branch module_hci_sspairing_mode
+
+module_hci_cmd_delete_customize_service:
+	arg 0x000c,temp
+	call le_att_get_handle_ptr2
+	add contr,-2,contw
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_add_service_uuid:
+	call module_hci_cmd_add_service_uuid_set_uuid
+	call uart_copy_rx_bytes_len_data
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_uuid_handle
+
+module_hci_cmd_add_characteristic_uuid:
+	ifetch 1,contru	//Characteristic
+	call module_hci_cmd_add_characteristic_uuid_set_handle
+	call module_hci_cmd_add_characteristic_uuid_set_uuid
+	branch module_hci_event_uuid_handle
+
+module_hci_cmd_add_service_uuid_set_uuid:
+	call le_att_creat_new_handle
+	setarg 0x280002
+	istore 3,contw
+	rtn
+
+module_hci_cmd_add_characteristic_uuid_set_handle:
+	store 1,mem_pdatatemp
+	call le_att_creat_new_handle
+	setarg 0x01280302
+	istore 4,contw
+	fetch 1,mem_pdatatemp
+	istore 3,contw
+	rtn
+
+module_hci_cmd_add_characteristic_uuid_set_uuid:
+	call le_att_creat_new_handle
+	call uart_copy_rx_bytes_len_data		//uuid
+	call uart_copy_rx_bytes_len_data		//data
+	setarg 0
+	istore 2,contw
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	add contr,4,contr
+	ifetch 1,contr		//characteristic data
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	bbit1 BIT_CHARACTERISTIC_INDICATE,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	increase 1,temp
+	rtn
+
+module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+	call le_att_creat_new_handle
+	setarg 0x02290202
+	istore 8,contw
+	increase -1,temp
+	rtn
+
+
+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
+	
+module_hci_cmd_all_round:
+	ifetch 1,contru
+	beq 0x00,module_hci_cmd_all_round_write
+	beq 0x01,module_hci_cmd_all_round_read
+	beq 0x02,module_hci_cmd_all_round_write_addhi
+	branch module_hci_event_receive_invalid_cmd
+	
+module_hci_cmd_all_round_read:
+	ifetch 2,contru
+	copy pdata,regb
+	ifetch 1,contru
+	copy pdata,rega
+	arg 0x00,temp
+	branch module_hci_event_set_cmd
+
+module_hci_cmd_all_round_write:
+	ifetch 2,contru
+	copy pdata,contw
+	ifetch 1,contru
+	copy pdata,loopcnt
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_all_round_write_addhi:
+	ifetch 1,contru
+	copy pdata,addhi
+	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_le_notify:
+	fetch 1,mem_module_flag
+	bbit1 MODULE_RECEIVE_COMPLETE_PREPARE_WRITE_REQ,p_le_send_att_prepare_write_response
+	fetch 1,mem_module_flag
+	rtnbit1 MODULE_RECV_CONFIRM
+	add temp,-3,pdata		//sub handle and opcode
+	arg 200,temp	
+	call not_greater_than
+	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
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	branch p_module_hci_cmd_transmit_handle_error,blank
+	ifetcht 4,contr		//flag
+	setarg 0x01280302
+	isub temp,null
+	nbranch p_module_hci_cmd_transmit_handle_error,zero
+	ifetch 1,contr			//Characteristic
+	bbit1 BIT_CHARACTERISTIC_INDICATE,p_module_hci_cmd_transmit_le_indicate
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,module_hci_cmd_transmit_le_notify + 13
+	branch p_module_hci_cmd_transmit_handle_error
+
+p_module_hci_cmd_transmit_le_indicate:
+	call module_set_recv_confirm_flag
+	fetcht 2,mem_module_hci_notify_handle
+	call le_att_malloc_tx_indication
+	branch module_hci_cmd_transmit_le_notify+15
+
+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_scheduler_process_idle:
+//	call module_control_air_flow
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	fetch 2,IPC_M02BT_READ_PTR
+	fetcht 2,IPC_M02BT_WRITE_PTR
+	isub temp,null
+	branch p_module_process_with_credit,zero	
+	branch module_process+4
+
+
+p_module_process_with_credit:
+	fetch 1,mem_credit_flag
+	rtneq CREDIT_DISABLE
+//	fetch 1,mem_credit_given
+	call p_check_given_credit
+	nrtn zero
+	storer rega,2,mem_rega
+	add rega,SPP_CONTEXT_OFFSIT_CREDIT_CHANNEL,contr
+	ifetch 1,contr
+	and pdata,SPP_COM_CHANNEL,pdata
+	lshift pdata,pdata
+	store 1,mem_pn_dlci
+	call get_rfcomm_snd_adss
+	fetchr rega,2,mem_rega
+	copy rega,contr
+	call p_parse_uih_spp_uih_getnewpara1
+	call rfcomm_send_uih_without_payload+3
+	fetchr rega,2,mem_rega
+	copy rega,contw
+	branch p_parse_uih_spp_uih_savenewpara1
+	
+p_scheduler_process:
+//	bpatchx patch2c_2,mem_patch2c
+	call p_scheduler_process3
+	fetch 1,mem_scheduler_handle_flag
+	branch p_scheduler_process2,blank
+	fetch 1,mem_arq
+	rtnbit1 wack
+p_scheduler_process2:
+	call app_process_bb_event
+	call p_module_rfcomm_disconnect_timer
+	call p_module_control_air_flow
+//	call ui_dispatch
+//	call process_conn_sm
+	call p_scheduler_process_idle
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	//for conn to MTK 
+	call l2cap_call_proc_sigal_pending
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	call l2cap_send_config_req	
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	branch rfcomm_send_more_pkt//use this function to send msc_cmd after msc_rep sent
+
+
+p_scheduler_process3:
+	call p_check_scheduler_handle
+	nrtn zero
+
+	call process_conn_sm
+	call sp_calc_sequence
+	call simple_pairing_sequence
+//	call master_simple_paring_sequence
+//notify BB to tx a l2cap packet
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+	//for conn to MTK 
+//	call l2cap_call_proc_sigal_pending
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+//to generat a new l2cap packet
+//	call process_upper_sm
+//	call l2cap_send_config_req
+//	call rfcomm_send_more_pkt//use this function to send msc_cmd after msc_rep sent
+//	call scheduler_tx_disconnect_hid //may not used
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+	//branch app_process_bt
+	rtn
+	
+p_module_control_air_flow:
+	call get_ipc_tx_buff
+	arg UART_AIR_CONTROL_THRESHOLD_NEW,temp
+	call pdata_sub_temp
+//	call check_ipc_tx_buff
+	branch app_l2cap_flow_control_enable,positive
+	branch app_l2cap_flow_control_disable
+
+	
+p_check_scheduler_handle:
+	fetch 1,mem_scheduler_handle_flag
+p_check_handle:	
+	fetcht 1,mem_conn_handle
+	isub temp,null
+	rtn
+	
+p_check_l2cap_tx_handle:	
+	fetch 1,mem_l2cap_malloc_handle
+	fetcht 1,mem_conn_handle
+	isub temp,null
+	rtn
+
+p_scheduler_tx_l2cap_pkt:
+//	bpatchx patch2c_6,mem_patch2c
+//	call l2cap_malloc_is_fifo_empty
+//	rtn blank //empty
+	call p_check_l2cap_tx_handle
+	nrtn zero
+	branch scheduler_tx_l2cap_pkt+1
+
+p_l2cap_malloc_into_fifo:
+//	bpatch patch1c_3,mem_patch1c
+	call l2cap_malloc_is_fifo_full+1
+	nbranch assert,blank //fifo full
+	call l2cap_malloc_is_fifo_empty+1	
+	call l2cap_malloc_into_fifo+4
+	fetch 1,mem_conn_handle
+	store 1,mem_l2cap_malloc_handle
+//fetch 1,0
+//increase 1,pdata
+//store 1,0
+	rtn
+
+p_process_rx_l2cap_pkt:
+//	bpatch patch18_0,mem_patch18
+	copy contr,rega
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	copy rega,contr
+	branch process_rx_l2cap_pkt+3
+	
+p_l2cap_malloc:
+//	bpatch patch1b_3,mem_patch1b
+	arg 0,regb
+	call l2cap_malloc_is_fifo_full+1
+	branch l2cap_malloc+3
+
+p_l2cap_malloc_free:
+//	bpatch patch1b_5,mem_patch1b
+	call l2cap_malloc_free+1
+p_l2cap_malloc_clear:	
+//fetch 1,1
+//increase 1,pdata
+//store 1,1
+	fetch 3,mem_tx_fifo3
+	nrtn blank
+p_l2cap_clear_tx_handle:
+	jam 0,mem_l2cap_malloc_handle
+	rtn	
+
+p_l2cap_malloc_discard:
+//	bpatch patch1b_6,mem_patch1b
+	call l2cap_malloc_discard+1
+	branch p_l2cap_malloc_clear
+
+p_l2cap_malloc_is_fifo_empty:
+//	bpatch patch1c_1,mem_patch1c
+	fetch 1,mem_l2cap_malloc_handle
+	nrtn blank
+	fetch 3,mem_tx_fifo3
+	rtn
+
+p_l2cap_malloc_is_fifo_full:
+/*
+//bmark0 mark_context,assert
+//	bpatch patch1b_7,mem_patch1b
+	fetch 1,mem_l2cap_malloc_handle
+	nrtn blank
+	fetch 3,mem_tx_fifo0
+	rtn
+*/
+	fetch 1,mem_l2cap_malloc_handle
+	branch l2cap_malloc_is_fifo_nearly_full+1,blank
+	call p_check_l2cap_tx_handle
+	branch l2cap_malloc_is_fifo_nearly_full+1,zero
+	branch disable_blank
+
+p_sdp_process:
+	fetch 1,mem_multi_piconet_flag
+	branch sdp_process+1,blank
+	fetch 1,mem_sdp_channel_offset
+	fetcht 2,mem_ui_uuid_table
+	iadd temp,contw
+	fetch 1,mem_rfcomm_next_channal 
+//	increase 1,pdata
+	istore 1,contw
+	branch sdp_process+1
+	
+p_le_init_conn:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_init_conn+1,blank
+
+	call le_init_conn+1
+	jam 1,mem_le_txheader_temp
+	jam 0,mem_le_txlen_temp
+	setarg 0
+	store 8,mem_le_buff_len
+	setarg 27
+	store 2,mem_module_master_rx_max
+	rtn
+
+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_le_transmit:
+	call le_prep
+	call p_letx_setfreq
+	branch le_transmit0
+
+p_letx_setfreq:
+	branch p_txon,match
+	bmark1 mark_buf_full,p_txon
+	branch letx_setfreq+1
+
+p_le_transmit0:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_transmit0+12,blank
+	
+	fetch 1,mem_le_txheader_temp
+	inject mod,8
+	ifetch 1,contr
+	copy pdata,loopcnt
+	inject mod,8
+	branch letr_nopayload,zero
+	branch letr_loop
+
+p_le_send_adv_ind:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_send_adv_ind+1,blank
+
+	fetch 1,mem_le_adv_type
+	beq ADV_DIRECT_IND,le_send_adv_direct_ind
+	fetch 1,mem_le_adv_own_addr_type
+	lshift4 pdata,pdata
+	lshift2 pdata,pdata
+	store 1,mem_le_txheader_temp
+	fetcht 1,mem_le_adv_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen_temp
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload_temp
+	copy temp,loopcnt
+	arg mem_le_adv_data,contr
+	call memcpy_fast
+	branch le_send_adv_transmit
+
+
+p_le_send_scan_response:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_send_scan_response+1,blank
+
+	arg SCAN_RSP,temp
+	fetch 1,mem_le_adv_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,temp
+	storet 1,mem_le_txheader_temp
+	fetcht 1,mem_le_scan_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen_temp
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload_temp
+	arg mem_le_scan_data,contr
+	copy temp,loopcnt
+	call memcpy_fast
+	call le_transmit_norx
+	branch le_adv_not_match
+
+p_le_acknowledge:
+	call le_supervision_flush
+	rtnmark1 mark_buf_full
+	call le_check_wak
+	fetch 1,mem_le_rxbuf
+	isolate1 md,pdata
+	setflag true,mark_ble_rx_md,mark
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setflag true,mark_old_packet,mark	/* retransmit */
+	rtnmark1 mark_old_packet
+	fetch 1,mem_le_rxbuf+1			
+	branch p_le_ack_unenc,blank		/* empty packet, no decryption */
+	fetch 1,mem_le_state
+	bbit0 lestate_encryption,p_le_ack_unenc
+	call load_sk
+	call le_decrypt
+	nsetflag blank,mark_old_packet,mark
+	nrtn blank
+p_le_ack_unenc:
+	fetcht 1,mem_le_arq
+	setflip nesn,temp
+	storet 1,mem_le_arq
+
+	fetch 1,mem_ble_dle_enable
+	nrtn blank
+
+	branch p_le_parse_writing_attribute
+
+p_le_parse_writing_attribute:
+	fetch 1,mem_le_rxbuf+1
+	rtn blank		//empty packet
+	fetch 1,mem_le_rxbuf
+	compare 1,pdata,3
+	branch p_le_parse_writing_attribute_continue,true //ACL-U continue
+	compare 2,pdata,3
+	branch p_le_parse_writing_attribute_start,true
+	rtn
+
+p_le_parse_writing_attribute_start:
+	fetch 2,mem_le_rxbuf+4//CID
+	rtnne LE_L2CAP_CID_ATT
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	set1 mark_old_packet,mark
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,p_le_parse_att_write_command
+	beq ATTOP_PREPARE_WRITE_REQUEST,p_le_parse_att_prepare_write_request
+	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
+	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
+	beq ATTOP_HANDLE_VALUE_CONFIRMATION,p_le_parse_handle_value_confirmation
+	set0 mark_old_packet,mark
+	rtn
+
+p_le_parse_att_prepare_write_request:
+	setarg mem_module_prepare_write_request_packet
+	store 2,mem_module_prepare_write_request_contw
+	call p_le_long_packet_patch
+	increase -2,loopcnt			//attribute value offset
+	arg mem_le_rxbuf+11,rega
+	call le_writeatt_cb
+	branch p_le_parse_att_prepare_write_request_finish
+
+	
+p_le_parse_att_write_request:
+	call p_le_parse_att_write_command
+	branch p_le_send_att_write_response_check_auth
+
+
+p_le_parse_att_write_command:
+	call p_le_long_packet_patch
+	arg mem_le_rxbuf+9,rega
+	branch le_writeatt_cb
+
+
+p_le_long_packet_patch:
+	fetch 1,mem_le_rxbuf+1
+	add pdata,-7,loopcnt
+	increase -4,pdata
+	store 2,mem_le_buff_len	//payload length
+	ifetcht 2,contr		//l2cap length
+	storet 2,mem_le_buff_len_all
+	rtn
+
+
+p_le_parse_writing_attribute_continue:
+	set1 mark_old_packet,mark
+	call p_parse_l2cap_continue_common
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,p_parse_l2cap_continue_write_request
+	beq ATTOP_PREPARE_WRITE_REQUEST,p_parse_l2cap_continue_prepare_write_request
+	rtneq ATTOP_WRITE_COMMAND
+	set0 mark_old_packet,mark
+	rtn
+
+p_parse_l2cap_continue_write_common:
+p_parse_l2cap_continue_common:
+	fetch 1,mem_le_rxbuf+1
+	fetcht 2,mem_le_buff_len
+	iadd temp,temp
+	storet 2,mem_le_buff_len
+	copy pdata,loopcnt
+	arg mem_le_rxbuf+2,rega
+	branch le_writeatt_cb
+
+p_parse_l2cap_continue_prepare_write_request:
+	branch p_le_parse_att_prepare_write_request_finish
+
+p_parse_l2cap_continue_write_request:
+p_le_send_att_write_response_check_auth:
+	call p_le_check_complete_packet
+	nrtn user
+	branch le_send_att_write_response_check_auth
+
+//enable user,recevie complete packet
+p_le_check_complete_packet:
+	call disable_user
+	fetch 2,mem_le_buff_len_all
+	fetcht 2,mem_le_buff_len
+	isub temp,null
+	nrtn zero
+	branch enable_user
+
+p_le_parse_att_prepare_write_request_finish:
+	fetch 2,mem_module_prepare_write_request_contw
+	copy pdata,contw
+
+	fetch 1,mem_le_rxbuf+1	//payload length
+	copy pdata,loopcnt
+	call memcpy
+	copy contw,pdata
+	store 2,mem_module_prepare_write_request_contw
+
+	call p_le_check_complete_packet
+	nrtn user
+	arg MODULE_RECEIVE_COMPLETE_PREPARE_WRITE_REQ,queue
+	call module_set_state
+	branch p_le_send_att_prepare_write_response
+
+
+p_le_send_att_prepare_write_response:
+	call le_fifo_check_empty
+	nrtn blank
+	jam ATTOP_PREPARE_WRITE_RESPONSE,mem_module_prepare_write_request_opcode
+	setarg mem_module_prepare_write_request_packet
+	store 2,mem_module_prepare_write_request_contr
+	fetcht 2,mem_module_prepare_write_request_PDU_length
+	increase 4,temp
+	setarg LE_BASEBAND_MAX_BUFFER
+	call not_greater_than
+	add pdata,-4,regb
+	force LLID_START,type
+p_le_send_att_prepare_write_response_continue:
+	copy pdata,rega
+	call le_fifo_malloc_tx + 2
+	fetch 2,mem_module_prepare_write_request_contr
+	copy pdata,contr
+	copy rega,loopcnt
+	call memcpy_fast
+	copy contr,pdata
+	store 2,mem_module_prepare_write_request_contr
+	fetch 2,mem_module_prepare_write_request_PDU_length
+	isub regb,pdata
+	store 2,mem_module_prepare_write_request_PDU_length
+	branch p_le_send_att_prepare_write_response_ending,blank
+	arg LE_BASEBAND_MAX_BUFFER,temp
+	call not_greater_than
+	copy pdata,regb
+	force LLID_CONTINUE,type
+	branch p_le_send_att_prepare_write_response_continue
+
+p_le_send_att_prepare_write_response_ending:
+	setarg 0
+	store 2,mem_module_prepare_write_request_contw
+	arg MODULE_RECEIVE_COMPLETE_PREPARE_WRITE_REQ,queue
+	branch module_clr_state
+
+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_check_wak:	
+//	call p_check_ipcbuf_size
+	fetcht 1,mem_le_arq
+	isolate0 wak,temp
+	rtn true
+	fetch 1,mem_le_rxbuf
+	lshift pdata,pdata
+	ixor temp,pdata
+	rtnbit0 sn			/* received NESN is same as SN, NAK */
+	set0 wak,temp
+	setflip sn,temp
+p_le_check_wak_1:
+	storet 1,mem_le_arq
+	compare 3,temp,3
+	nrtn true
+
+	fetch 1,mem_ble_dle_enable
+	nbranch  le_check_wak_2,blank
+	
+	fetch 1,mem_le_txpayload_temp
+	branch le_check_wak_3
+le_check_wak_2:
+	fetch 1,mem_le_txpayload
+le_check_wak_3:
+	beq LL_START_ENC_REQ,le_set_enc
+	fetch 1,mem_le_enc_state
+	beq FLAG_LE_ENC_PAUSE,le_clear_enc
+	rtn
+
+p_le_prepare_tx:
+	fetch 1,mem_le_arq
+	rtnbit1 wak
+	call le_check_tx_md
+
+
+	fetch 1,mem_ble_dle_enable
+	nbranch le_prepare_tx+4,blank
+	
+	call le_fifo_get_first_tx_ptr	//no packet to send
+	branch le_send_empty,blank
+	ifetch 1,contr
+	ifetcht 1,contr
+	copy temp,rega
+	isub rega,pdata
+	call p_le_get_master_rx_max
+	call not_greater_than
+	copy pdata,temp
+	ifetch 1,contr
+	copy pdata,type
+	copy rega,pdata
+	iadd contr,contr
+	arg mem_le_txpayload_temp,contw
+	copy temp,loopcnt
+	call memcpy_fast
+	call le_update_tx_type
+	call le_send_packet
+	
+	call le_fifo_get_first_tx_ptr
+	ifetch 1,contr
+	copy pdata,rega
+	copy contr,regc
+	ifetcht 1,contr
+	copy temp,regb
+	isub regb,pdata
+	call p_le_get_master_rx_max
+	call not_greater_than
+	iadd regb,pdata
+	istore 1,regc
+	isub rega,null
+	nrtn zero
+	branch le_fifo_release_first_node
+
+
+p_le_get_master_rx_max:
+	copy contr,contw
+	fetcht 2,mem_module_master_rx_max
+	copy contw,contr
+	rtn
+
+p_le_send_packet:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_send_packet+1,blank
+
+	storet 1,mem_le_txlen_temp
+	fetcht 1,mem_le_arq
+	set1 wak,temp
+	and temp,0xfc,pdata
+	ior type,pdata
+	store 1,mem_le_arq
+	and_into 0x1f,pdata
+	isolate1 mark_ble_tx_md,mark
+	setflag true,md,pdata
+	store 1,mem_le_txheader_temp
+
+	fetch 1,mem_le_txheader_temp
+	compare 1,type,3
+	nbranch p_le_send_no_txlen,true
+	fetch 1,mem_le_txlen_temp
+	rtn blank
+p_le_send_no_txlen:
+	fetch 1,mem_le_state
+	rtnbit0 lestate_encryption
+	call load_sk
+	branch le_encrypt
+
+p_le_encrypt:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_encrypt+1,blank
+
+	arg mem_le_txheader_temp,regc
+	fetcht 5,mem_le_pcnt_tx
+	call generate_mic
+	force regidx_xor,regext_index
+	iforce regext
+	force 0,rega					/* rega is block counter */
+	call first_block_data
+	call aes_init				// 1021s ->  do_aes_ctr
+	arg mem_le_txpayload_temp,regc
+	fetch 1,mem_le_txlen_temp
+	add pdata,-1,regb
+	iadd regc,contw
+	force regidx_result,regext_index
+	deposit regext
+	istore 4,contw	
+	call aes_crypt_data
+	fetch 1,mem_le_txlen_temp
+	increase 4,pdata
+	store 1,mem_le_txlen_temp
+	fetcht 5,mem_le_pcnt_tx
+	increase 1,temp
+	storet 5,mem_le_pcnt_tx
+	rtn
+
+p_le_parse:
+	rtnmark1 mark_old_packet
+	rtnmark1 mark_buf_full
+	call le_fifo_check_full
+	nrtn blank
+	fetch 1,mem_le_rxbuf
+	and pdata,0x3,pdata
+	store 1,mem_le_packet_llid
+	ifetch 1,contr
+	store 1,mem_le_packet_size
+	rtn blank							//empty rtn
+	copy contr,pdata
+	store 2,mem_le_payload_ptr
+	fetch 1,mem_le_packet_llid
+	beq LLID_LE_LL,p_le_parse_ll
+	call p_le_check_l2cap_complete
+	arg wake_lock_ble_rx_patch,queue
+	nbranch lpm_get_wake_lock,user
+	call lpm_put_wake_lock
+	branch le_parse_l2cap + 3
+
+
+p_le_check_l2cap_complete:
+	fetch 1,mem_le_packet_llid
+	beq LLID_START,p_le_check_l2cap_llid_start
+	beq LLID_CONTINUE,p_le_check_l2cap_llid_continue
+	rtn
+	
+p_le_check_l2cap_llid_start:
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	ifetch 2,contr
+	store 2,mem_le_l2cap_size
+	ifetch 2,contr			//CID
+	call le_check_l2cap_CID_legal
+	nrtn user
+	fetcht 1,mem_le_packet_size
+	storet 1,mem_le_packet_len_recved
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	isub temp,null
+	branch enable_user,zero
+	fetch 1,mem_le_packet_size
+	copy pdata,loopcnt
+	arg mem_le_l2capbuf_new,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy
+	branch disable_user
+	
+p_le_check_l2cap_llid_continue:
+	call le_check_l2cap_continue_legal
+	nrtn user
+	fetch 1,mem_le_packet_len_recved
+	arg mem_le_l2capbuf_new,contw
+	iadd contw,rega
+	fetcht 1,mem_le_packet_size
+	iadd temp,pdata
+	store 1,mem_le_packet_len_recved
+	fetch 1,mem_le_packet_size
+	copy pdata,loopcnt
+	copy rega,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	setarg mem_le_l2capbuf_new
+	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	fetcht 1,mem_le_packet_len_recved
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+
+p_le_parse_ll:
+//	fetch 1,mem_ble_dle_enable
+//	nbranch le_parse_ll,blank
+	fetch 1,mem_le_rxbuf+2
+	beq LL_FEATURE_REQ,p_le_parse_feature_req
+	beq LL_LENGTH_REQ,le_parse_length_request
+	branch le_parse_ll+1
+	
+p_le_parse_feature_req:
+p_le_send_feature_rsp:
+	arg 9,rega
+	arg LL_FEATURE_RSP,regb
+	call le_fifo_malloc_tx_ll
+	//bit0 LE encryption
+	//bit5 LE Data packet Length extension
+	setarg 0x21	
+	istore 8,contw
+	call p_check_ble_dle_enable
+	rtn
+p_check_ble_dle_enable:
+	fetch 1,mem_le_rxbuf+3
+	and pdata,0x20,pdata
+	branch p_set_ble_dle_disable,blank
+	jam DLE_ENABLE,mem_ble_dle_enable
+	rtn
+p_set_ble_dle_disable:
+	jam DLE_DISABLE,mem_ble_dle_enable
+	rtn
+
+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 251
+	istore 2,contw
+	//MaxRxTime >=328ms <=2120
+	setarg 2120
+	istore 2,contw
+	//MaxTxOctets >=27B
+	setarg 251
+	istore 2,contw
+	//MaxTxTime >=328ms
+	setarg 2120
+	istore 2,contw
+	rtn
+
+
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	beq LE_L2CAP_CID_SMP,le_parse_smp
+	beq LE_L2CAP_CID_SIGNAL,le_parse_signaling
+	rtn
+
+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
+	branch le_parse_att+2
+
+p_le_parse_handle_value_confirmation:
+module_clear_recv_confirm_flag:
+	arg MODULE_RECV_CONFIRM,queue
+	branch module_clr_state
+
+p_le_parse_att_read_by_group_type_request:
+	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_parse_att_exchange_mtu_response
+	store 2,mem_le_local_mtu
+	branch le_send_att_exchange_mtu_response
+
+p_le_parse_att_read_by_type_request:
+	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_lpm_set_mult:
+	fetch 1,mem_ble_dle_enable
+	nbranch le_lpm_set_mult+1,blank
+	
+	disable wake
+	branch p_le_lpm_set_mult_attempt,attempt
+	nbranch le_lpm_lost,match
+p_le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+
+	nbranch lpm_mult_short,match
+	bmark1 mark_old_packet,lpm_mult_short
+
+	fetch 1,mem_le_packet_size
+	nbranch lpm_mult_short,blank		// rx not empty, short interval
+	fetch 1,mem_le_txlen_temp
+	nbranch lpm_mult_short,blank		// tx not empty, short interval
+	
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
+	
+	fetch 1,mem_le_state
+	bbit1 lestate_update_param,lpm_mult_short
+	branch lpm_mult_wait_timeout
+
+
+p_find_addr_from_bd_list_ble_mode:
+//	bpatchx patch29_5,mem_patch29
+	branch find_addr_from_bd_list_SPP_mode
+
+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
+	beq LMP_ENCAPSULATED_HEADER,p_parse_lmp_encapsulated_header
+ 	beq LMP_IN_RAND,p_parse_lmp_in_rand
+	beq LMP_DETACH,p_parse_lmp_detach
+	branch parse_lmp + 21
+
+p_parse_lmp_detach:
+	call parse_lmp_detach
+	jam 5,mem_conn_timer
+	rtn
+
+p_parse_lmp_in_rand:
+	call lmp_copy_rand
+	jam pincode_state_wait_pincode,mem_pincode_state
+	call parse_lmp_inrand_res
+//	jam BT_EVT_PINCODE_REQ,mem_fifo_temp
+//	call ui_ipc_send_event
+
+	branch check_51cmd_pincode
+	
+ 	
+p_parse_lmp_encapsulated_header:
+	call parse_lmp_encapsulated_header
+	jam 0,mem_sp_remote_key_recv_count
+	rtn
+	
+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 lmp_reject_sniff
+//	branch parse_lmp_sniff_req+8
+
+
+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_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_ui_ipc_send_event:
+//	bpatchx patch33_7,mem_patch33
+	branch p_module_process_bb_event
+
+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
+ 	rtn
+  	
+
+p_rfcomm_rx_process:
+	fetch 1,memui_reconnect_mode
+	beq NO_RECONNECTION,p_rfcomm_rx_process_remote_page
+	branch rfcomm_rx_process_reconn
+	
+	
+p_rfcomm_rx_process_remote_page:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	call get_rfcomm_head_struct
+	fetch 1,mem_current_channel
+	beq 0,p_parse_dlci0_rp
+	branch p_parse_uih_rp
+	
+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
+	rtn
+p_parse_uih_rp:
+	//fetch 1,mem_current_channel
+	//sub pdata,SPP_SLAVE_CHANNEL,null
+//	branch p_parse_uih_rp_spp//,zero
+
+p_parse_uih_rp_spp:
+	fetch 1,mem_current_frame_type
+	beq RFCOMM_FRAME_TYPE_UA,parse_uih_rp_spp_ua
+	beq RFCOMM_FRAME_TYPE_SABM,parse_uih_rp_spp_sabm
+	beq RFCOMM_FRAME_TYPE_UIH,p_parse_uih_spp_uih
+	beq RFCOMM_FRAME_TYPE_UIH_CREDITS,p_parse_uih_spp_uih_credits
+	beq RFCOMM_FRAME_TYPE_DISCONN,p_parse_uih_rp_spp_disconn
+	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,p_parse_dcli0_rp_uih_pn_cmd
+	beq UIH_PARAM_NEG_RES,parse_DLCI0_rp_uih_pn_res
+	beq UIH_MODEM_STATUS_CMD,p_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_dcli0_rp_uih_pn_cmd:
+	call parse_DLCI0_rp_uih_pn_res_common
+	call p_parse_uih_spp_pn_channel_savenewpara
+	branch parse_DLCI0_rp_uih_pn_cmd_spp 
+
+p_parse_DLCI0_rp_uih_ms_cmd:
+	call get_rfcomm_param_modem_status
+	branch parse_DLCI0_rp_uih_ms_cmd_spp
+
+
+p_parse_DLCI0_rp_uih_ms_cmd_savesppcom:
+	fetch 1,mem_ms_channel
+	copy pdata,temp
+	set1 SPP_COM_EXSITBIT,temp
+	call p_get_rfcomm_write_ptr
+	istoret 1,contw
+	rtn
+
+p_parse_DLCI0_rp_uih_ms_cmd_release:
+	fetch 1,mem_pn_dlci
+	rtn blank
+	rshift pdata,pdata
+//	copy pdata,temp
+	arg 0,temp
+//	set0 SPP_COM_EXSITBIT,temp
+	call p_get_rfcomm_write_ptr
+	istoret 1,contw
+	rtn
+	
+//input pdata
+p_get_rfcomm_write_ptr:	
+	arg mem_spp_context1,contw
+	increase -1,pdata
+	mul32 pdata,SPP_CONTEXT_SIZE,pdata
+	iadd contw,contw
+	rtn
+	
+p_parse_DLCI0_rp_uih_ms_res:
+	//spp connected OK, save spp com
+	call p_parse_DLCI0_rp_uih_ms_cmd_savesppcom	
+	call p_parse_uih_spp_uih_ms_channel_savenewpara
+	fetch 1,mem_rfcomm_channel_cnt
+	increase 1,pdata
+	store 1,mem_rfcomm_channel_cnt
+	call p_rfcomm_channel_set
+	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_rfcomm_channel_set:	
+	fetcht 1,mem_rfcomm_channel_map
+	fetch 1,mem_ms_channel
+	add pdata,-1,queue
+	qset1 temp
+	storet 1,mem_rfcomm_channel_map
+	
+	arg 0,queue
+p_rfcomm_channel_get_unused_loop:
+	qisolate1 temp
+	branch p_rfcomm_channel_used2,true
+	add queue, 1,pdata
+	store 1,mem_rfcomm_next_channal
+	rtn
+
+p_rfcomm_channel_used2:
+	increase 1,queue
+	sub queue,SPP_CONTEXT_NUMBER+-1,null
+	branch  p_rfcomm_channel_get_unused_loop,positive
+	rtn
+	
+
+
+//input queue:channel ; retrun true
+p_check_conn_channel:
+	increase -1,queue
+	fetch 1,mem_rfcomm_channel_map
+	qisolate1  pdata
+	rtn
+
+p_check_given_credit:
+	arg 0,queue
+p_check_given_credit_loop:
+	fetch 1,mem_rfcomm_channel_map
+	branch disable_zero,blank
+	qisolate1  pdata
+	nbranch p_check_given_credit_notuse,true
+	mul32 queue,SPP_CONTEXT_SIZE,pdata
+	arg mem_spp_context1,rega
+	iadd rega,rega
+	add rega, SPP_CONTEXT_OFFSIT_CREDIT_GIVEN,contr
+	ifetch 1,contr
+	branch p_check_given_credit_notuse,blank
+	branch enable_zero
+
+p_check_given_credit_notuse:
+	increase 1,queue
+	sub queue,SPP_CONTEXT_NUMBER+-1,null
+	nbranch disable_zero ,positive
+	branch p_check_given_credit_loop
+	
+p_parse_uih_spp_pn_channel_savenewpara:
+	fetch 1,mem_pn_dlci
+	rshift pdata,pdata
+	branch p_parse_uih_spp_uih_savenewpara
+p_parse_uih_spp_uih_current_channel_savenewpara:
+	fetch 1,mem_current_channel
+	branch p_parse_uih_spp_uih_savenewpara
+p_parse_uih_spp_uih_ms_channel_savenewpara:
+	fetch 1,mem_ms_channel
+//	branch p_parse_uih_spp_uih_savenewpara
+p_parse_uih_spp_uih_savenewpara:
+	increase -1,pdata
+	mul32 pdata,SPP_CONTEXT_SIZE,pdata
+	arg mem_spp_context1,contw
+	iadd contw,contw
+p_parse_uih_spp_uih_savenewpara1:
+	increase 1,contw
+	fetch 1,mem_remote_credits
+	istore 1,contw
+	fetch 1,mem_credit_given
+	istore 1,contw
+	fetch 1,mem_HIUfcs_SPP
+	istore 1,contw
+	fetch 1,mem_HIUfcs_SPP_WCredits
+	istore 1,contw
+	rtn
+	
+
+p_parse_uih_spp_pn_channel_getnewpara:
+	fetch 1,mem_pn_dlci
+	rshift pdata,pdata
+	branch p_parse_uih_spp_uih_getnewpara
+p_parse_uih_spp_uih_current_channel_getnewpara:
+	fetch 1,mem_current_channel
+	branch p_parse_uih_spp_uih_getnewpara
+p_parse_uih_spp_uih_ms_channel_getnewpara:
+	fetch 1,mem_ms_channel
+//	branch p_parse_uih_spp_uih_getnewpara
+
+p_parse_uih_spp_uih_getnewpara:
+	increase -1,pdata
+	mul32 pdata,SPP_CONTEXT_SIZE,pdata	
+	arg mem_spp_context1,contr
+	iadd contr,contr
+p_parse_uih_spp_uih_getnewpara1:
+	increase 1,contr
+	ifetch 1,contr
+	store 1,mem_remote_credits
+	ifetch 1,contr
+	store 1,mem_credit_given
+	ifetch 1,contr
+	store 1,mem_HIUfcs_SPP
+	ifetch 1,contr
+	store 1,mem_HIUfcs_SPP_WCredits
+	rtn
+	
+p_parse_uih_spp_uih:
+	call p_parse_uih_spp_uih_current_channel_getnewpara
+	branch p_parse_uih_spp_uih2
+
+p_parse_uih_spp_uih_credits:
+	call p_parse_uih_spp_uih_current_channel_getnewpara
+	fetch 2,mem_rfcomm_uih_payload_ptr
+	copy pdata,contr
+	increase 1,pdata
+	store 2,mem_rfcomm_uih_payload_ptr  //rfcomm info
+	ifetch 1,contr //remote credits
+	fetcht 1,mem_remote_credits
+	iadd temp,pdata
+	store 1,mem_remote_credits
+p_parse_uih_spp_uih2:
+	fetch 1,mem_current_adss
+	rshift2 pdata,pdata
+	store 1,mem_pn_dlci
+	call rfcomm_increase_credit_given
+	call get_rfcomm_snd_adss
+	call rfcomm_send_uih_without_payload
+	call p_parse_uih_spp_uih_current_channel_savenewpara
+	call spp_process_rx_data
+	branch rfcomm_rx_process_end
+	
+p_parse_uih_rp_spp_disconn:
+	call p_parse_DLCI0_rp_uih_ms_cmd_release
+	
+	fetchr queue, 1,mem_current_channel
+	storer queue ,1, mem_rfcomm_next_channal
+	increase -1,queue
+	fetch 1,mem_rfcomm_channel_map
+	qset0 pdata
+	store 1,mem_rfcomm_channel_map
+	
+	fetch 1,mem_rfcomm_channel_cnt
+	increase -1,pdata
+	store 1,mem_rfcomm_channel_cnt
+	
+	jam BT_EVT_SPP_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	branch parse_uih_rp_spp_disconn
+
+	
+
Index: sched/109x.dat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/sched/109x.dat	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/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/print/branches/mult_connect/sched/DM_module.dat	(nonexistent)
+++ /YC3121_demo/ModuleDemo/BlueTooth/print/branches/mult_connect/sched/DM_module.dat	(working copy)
@@ -0,0 +1,302 @@
+
+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
+
+mem_multi_piconet_flag:01
+
+##############NVRAM CONFIG##############
+mem_nv_data_ptr:mem_module_nv_data
+mem_nv_data_number:07
+#####################################
+
+##############SPP CONFIG##############
+mem_rfcomm_max_frame_size:7f 00 
+mem_rfcomm_credit_init_data:03
+mem_credit_flag:01
+#####################################
+
+##############SSP CONFIG##############
+mem_sp_iocap_local:03 00 04
+mem_ssp_enable:01
+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:e0 4d
+4FFA:E0 4F
+4FFC:e0 4d
+4FFE:e0 4d
+#####################################
+mem_2m0_tmier_address: 00 80 02#0x28000
+
+##############BLUETOOTH CONFIG##############
+###commom###
+mem_soft_version_num:10 0b
+mem_module_state:03
+mem_module_bluetooth_stauts_by_command:03
+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_rfcomm_lmp_dis_flag:00
+# 1: tianyu    MPOS
+# 0: wobosi  printer
+mem_lpm_mode:00
+mem_lpm_interval:00 01
+mem_lpm_overhead:08
+mem_lpm_mult_timeout:02
+
+
+###3.0###
+mem_scan_mode:03
+mem_module_spp_lpm_mult:00
+mem_lap:a7 ab 2a 21 10 55
+mem_local_name_length:
+'3121-
+
+###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:01
+mem_le_adv_channel_map:07
+mem_le_pairing_mode:00
+
+mem_module_data_write_handle:2d 00
+mem_module_data_write_handle2:2f 00
+
+
+mem_le_adv_enable:00
+mem_le_adv_interval:40 00
+mem_module_le_lpm_mult:05
+mem_le_lap:21 aa 01 33 02 3a
+mem_le_name_len:
+'3121-le 
+
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 02
+
+mem_le_scan_data_len:0e
+
+mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+02 01 02
+'\093121 Mou Ble
+
+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:f0
+mem_le_remote_mtu:17
+
+mem_le_pairing_handle:31 00
+
+#####################################
+
+
+mem_eir_enable:01
+mem_all_uuid_16bits: 
+05
+03#Type: Complete list of 16-bit UUIDs
+0012 0001 0100 0111 0300 
+
+mem_all_uuid_128bits:
+00
+
+
+mem_sdp_channel_offset:96
+
+mem_ui_uuid_table:mem_module_uuid_list
+
+mem_module_uuid_list:
+03
+1200 0100 0001
+00010001
+36
+00
+52
+09
+00
+00
+0a
+00010001
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+05
+ac
+09
+02
+02
+09
+02
+39
+09
+02
+03
+09
+06
+44
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+
+03 110100030100
+00010003
+36
+00
+46
+09
+00
+00
+0a
+00010003
+09
+00
+01
+35
+03
+19
+11
+01
+09
+00
+02
+0a
+00
+00
+00
+00
+09
+00
+04
+35
+0c
+35
+03
+19
+01
+00
+35
+05
+19
+00
+03
+08
+01 # channel number
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+01
+00
+25
+0a
+53
+50
+50
+20
+73
+6c
+61
+76
+65
+00
+
+00 00
+
+
+
+
